Oracle SQL Developer - 테이블을 볼 수 없습니다.
SQL Developer 1.1을 사용하고 있었습니다.최근에 SQL Developer 3으로 업그레이드했습니다.업그레이드 후 일부 접속에 테이블이 표시되지 않는 것을 알게 되었습니다.테이블에서 선택을 하면 데이터가 표시됩니다.뷰 등 다른 사물을 볼 수 있습니다.이전 버전을 계속 사용할 수 있으며 동일한 스키마에 대해 나열된 모든 테이블을 볼 수 있습니다.다른 연결도 잘 나오지만
이에 대한 정보를 찾을 수 없는 것 같습니다.필터를 제거하려고 했지만 효과가 없었어요.
누가 이걸 마주쳤나요?제발 도와주세요.
찾고 있는 테이블이 다른 스키마에 있을 수 있습니다.몇 가지 옵션이 있습니다.연결 아래의 트리에서 Other Users를 클릭하거나 연결을 마우스 오른쪽 버튼으로 클릭하고 Schema Browser를 선택한 후 원하는 스키마를 선택할 수 있습니다.
에서 [Other Users]를 선택하고 테이블과 뷰를 표시할 사용자(스케마)를 선택합니다.

나는 마이클 먼지가 제안한 두 가지 옵션을 모두 시도해 보았고 나를 위해 일한다.
필터링된 테이블을 볼 수 있는 다른 옵션을 제공하려고 했습니다.마우스 오른쪽 버튼 테이블 트리 노드를 누른 후 "필터 적용"을 선택하고 "동의어 포함" 확인란을 선택한 후 확인을 누릅니다.그래, 바로 저기 테이블이 보일 거야.저는 좋아요.
우대 : http://www.thatjeffsmith.com/archive/2013/03/why-cant-i-see-my-tables-in-oracle-sql-developer/
sqlDeveloper64-3.0.44와 sqlDeveloper64-3.1.07.42에서도 같은 문제가 발생하고 있습니다.
https://forums.oracle.com/forums/thread.jspa?threadID=2202388 에 의하면, JDBC 드라이버에 「Out Of Band Breaks」(기본적으로 낮은 레벨의 TCP 문제)와 관련된 버그가 있는 것 같습니다.
해결 방법은 JVM 속성 -Doracle.net.disableOob=true를 사용하여 sql developer를 시작하는 것입니다. 이 솔루션을 3.0 및 3.1에 대해 시도했는데 작동했습니다.
여기에서는 포럼의 솔루션을 인용합니다.
이러한 문제의 원인을 특정하고 있는 유저가 아닌 유저도 있습니다.JDBC 드라이버에는, 「Out Of Band Breaks」라고 하는 버그가 있는 것 같습니다.이것은 기본적으로 낮은 수준의 TCP 문제입니다.그 버그는 여러 가지 방법으로 나타나는 것 같다.지금까지 일반적인 시나리오로서 공유 접속(특히 Vista 또는 Windows 7)과 VPN 경유 접속(모든 OS)을 사용하고 있습니다.모든 경우에 DBA 액세스 권한이 없는 것도 문제입니다.
먼저 DBA 액세스에 따른 차이점을 설명하겠습니다.특정 데이터 사전 뷰에 처음 액세스할 때 먼저 DBA 버전의 뷰(또는 일부 사례 탭$ 등)에 액세스할 수 있는지 확인합니다.이러한 뷰는 일반 USER 버전보다 훨씬 효율적이기 때문에 가능하면 사용하고 싶습니다.각 DBA 뷰는 세션당 1회(필요한 경우에만)만 확인하지만, 결국 여러 뷰에 액세스할 수 있는지 확인할 수 있습니다.
이 체크를 하면 OOB 버그가 고개를 드는 것 같습니다.데이터베이스에서 친절하고 간단한 답변을 얻을 수 있을 겁니다.다만, 이 버그가 발생하고 있는 시나리오에서는, 이 저레벨의 네트워크 버그로 인해, 에러가 발생해 접속을 사용할 수 없는 상태가 됩니다.그러면 모든 Connection Closed 오류가 발생합니다.회피책이 있는 것 같습니다.JDBC 드라이버는 OOB 비활성화를 지원합니다.다만, 이 조작은 실행 스테이트먼트를 취소하는 기능에 영향을 미치기 때문에, 일반적인 회피책을 사용하는 것은 추천하지 않습니다만, 유저가 이 특정의 문제에 직면하고 있는 상황에서는, 이 문제를 해결할 수 있습니다.
해결 방법을 사용하려면 Java 시스템 속성인 oracle.net.disableOob=true를 설정해야 합니다.이것은 두 가지 방법으로 설정할 수 있습니다.첫 번째는 명령줄에 sqldeveloper -J-Doracle.net.disableOb=true로 전달합니다.물론 이 기능은 명령줄에서 정상적으로 실행 중인 경우에만 작동합니다.sqldeveloper.conf 파일(+sqldeveloper\bin+ 아래에 있음)에 행을 추가할 수도 있습니다.행에는 AddVMotion -Doracle.net.disableOb=true가 표시됩니다.
추가 해결 방안을 검토 중이지만 현재 해결 방법을 통해 SQL Developer와 협력할 수 있습니다.
- 존
SQL 개발자 팀
「기타 유저」아래에 들어가는 것에 대한 회답은 가깝지만, 그다지 명확하지 않기 때문에, 이하와 같이 이 회답을 추가할 필요가 있다고 느꼈습니다.
Oracle에서는 로그인한 계정에서 소유하는 스키마(MS SQL Server의 데이터베이스)에 속하는 테이블만 표시합니다.계정이 아무것도 소유/생성하지 않은 경우 데이터베이스 내의 모든 항목에 대한 권한/권한을 가지고 있어도 아무것도 표시되지 않습니다(이것은 MS SQL Server Management Studio와 반대됩니다.MS SQL Server Management Studio에서는 권한이 있는 모든 것을 볼 수 있으며 소유자는 항상 "dbo"이기 때문에 일부 관리자가 예기치 않은 이유로 계정을 변경할 필요가 없습니다).
트리의 "테이블" 아래에 있는 테이블을 볼 수 있는 것은 소유자가 유일합니다.사용자가 소유자가 아니기 때문에 해당 사용자가 표시되지 않으면 "기타 사용자"에서 해당 스키마를 작성/소유한 사용자를 찾을 때까지 각 사용자를 확장해야 합니다.계정에 테이블에 대한 사용 권한이 있는지 여부는 중요하지 않습니다. "Other Users"에서 해당 계정을 소유한 사용자를 "Tables"에서 찾아야 합니다.
한 가지 도움이 되는 것은 쿼리를 작성할 때 실제로 소유자가 누구인지 명명법에 명시해야 한다는 것입니다.
Select * from admin.mytable
는 "admin"이 소유자인 사용자임을 나타냅니다.따라서 [Other Users]> [ Admin ]아래에서 [Tables]를 펼치면 여기에 표시됩니다.
SQL Developer 3이 쿼리하는 메타 테이블 중 하나에 액세스할 수 없습니다.올바른 쿼리를 선택하면 다음 SELECT 문이 실행됩니다.
select * from (
SELECT o.OBJECT_NAME, o.OBJECT_ID ,'' short_name, decode(bitand(t.property, 32), 32, 'YES', 'NO') partitioned,
decode(bitand(t.property, 64), 64, 'IOT',
decode(bitand(t.property, 512), 512, 'IOT_OVERFLOW',
decode(bitand(t.flags, 536870912), 536870912, 'IOT_MAPPING', null))) iot_type,
o.OWNER OBJECT_OWNER, o.CREATED, o.LAST_DDL_TIME, O.GENERATED, O.TEMPORARY, case when xt.obj# is null then 'N' else 'Y' end EXTERNAL
FROM SYS.Dba_OBJECTS O ,sys.tab$ t, sys.external_tab$ xt
WHERE O.OWNER = :SCHEMA
and o.object_id = t.obj#(+)
and o.object_id = xt.obj#(+)
AND O.OBJECT_TYPE = 'TABLE'
union all
SELECT OBJECT_NAME, OBJECT_ID , syn.SYNONYM_NAME short_NAME, decode(bitand(t.property, 32), 32, 'YES', 'NO') partitioned,
decode(bitand(t.property, 64), 64, 'IOT',
decode(bitand(t.property, 512), 512, 'IOT_OVERFLOW',
decode(bitand(t.flags, 536870912), 536870912, 'IOT_MAPPING', null))) iot_type,
SYN.TABLE_OWNER OBJECT_OWNER, o.CREATED, o.LAST_DDL_TIME, O.GENERATED, O.TEMPORARY, case when xt.obj# is null then 'N' else 'Y' end EXTERNAL
FROM SYS.Dba_OBJECTS O, sys.user_synonyms syn,sys.tab$ t, sys.external_tab$ xt
WHERE syn.table_owner = o.owner
and syn.TABLE_NAME = o.object_NAME
and o.object_id = t.obj#
and o.object_id = xt.obj#(+)
and o.object_type = 'TABLE'
and :INCLUDE_SYNS = 1
)
where /**/object_name not in (select object_name from recyclebin)
AND not object_name like 'BIN$%'
이 문을 실행하여 존재하지 않는 테이블을 나타내는 완전한 오류 메시지('접근권 누락으로 인해 표시되지 않음'과 동일)를 표시해 보십시오.SQL Developer는 다음 값을 요구합니다.SCHEMA그리고.INCLUDE_SYNS.세트SCHEMA사용자 이름과INCLUDE_SYNS0으로 설정합니다.
SQL Developer 1.1에서는 액세스 권한과 함께 작동하는 더 단순한 쿼리를 사용했을 수 있습니다.
연결을 만드는 데 사용되는 ID는 Oracle에서 볼 수 있는 테이블을 정의합니다.새 버전의 연결을 설정할 때 다른 자격 증명을 제공했습니까?
3.1은 나에게 중요하지 않았다.
시간이 좀 걸렸지만, 2.1 릴리즈를 찾아서 사용해볼 수 있었습니다.http://www.oracle.com/technetwork/testcontent/index21-ea1-095147.html
1.2 http://www.oracle.com/technetwork/testcontent/index-archive12-101280.html
그것도 안 돼요. 테이블이 없어서 허락받은 것처럼 보여요.
sys.external_tab$를 [myUser]에게 부여하여 나를 위해 기능했다.thanx Codo
내 Mac에서 이 문제가 발생했습니다.언인스톨 해, /Users/a7768/.sqldeveloper 폴더를 삭제해 수정.해당 폴더를 삭제하지 않고 제거해도 수정되지 않았습니다.
그 후 재다운로드 후 재설치.
시동을 걸고 연결을 추가했는데 잘 작동했어요.
종료하고 여러 번 재시작하면 지금까지 테이블 등이 올바르게 표시됩니다.
- open oracle sql developer 도구
- 창으로 이동(맨 위 메뉴바)
- 초기설정으로 리셋 창을 클릭합니다.제게는 효과가 있습니다.
SQL Developer 3.1에서는 이 문제가 해결되었습니다.지금은 얼리어답터 릴리즈입니다.
저에게 있어서 이것은 결국 허가 문제가 되었습니다.
역할슈퍼 유저 역할)을 했습니다.CREATE ROLE root WITH SUPERUSER LOGIN PASSWORD 'XXXXX';그런 다음 해당 슈퍼유저 슈퍼유저 계정을 사용합니다.
이것은 분명히 모든 상황에서 실행 가능한 해결책은 아닙니다.
All_users 보기에 대한 선택 권한이 필요합니다.
관리자로 SQL Developer 부팅
언급URL : https://stackoverflow.com/questions/5749318/oracle-sql-developer-tables-cannot-be-seen
'programing' 카테고리의 다른 글
| MongoDB가 모든 쿼리를 로깅합니다. (0) | 2023.03.11 |
|---|---|
| 2012년에 권장되는 jQuery 템플릿은 무엇입니까? (0) | 2023.03.11 |
| 커스텀 포스트 타입의 특집 이미지의 메타박스 제목과 텍스트 라벨을 변경하는 방법 (0) | 2023.03.11 |
| wordpress에서 기본 템플릿 파일을 커스텀으로 설정하는 방법이 있습니까? (0) | 2023.03.11 |
| Jersey 서비스에서 JSON 개체를 사용하고 있습니다. (0) | 2023.03.06 |