Oracle SQL에서 스키마의 모든 테이블을 어떻게 나열합니까?
Oracle SQL에서 스키마의 모든 테이블을 어떻게 나열합니까?
다른 스키마의 모든 테이블을 보려면 다음 시스템 권한 중 하나 이상이 있어야합니다.
SELECT ANY DICTIONARY
(SELECT | INSERT | UPDATE | DELETE) ANY TABLE
또는 큰 망치, DBA 역할.
이들 중 하나를 사용하여 다음을 선택할 수 있습니다.
SELECT DISTINCT OWNER, OBJECT_NAME
FROM DBA_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'
AND OWNER = '[some other schema]'
이러한 시스템 권한이 없으면 직접 또는 역할을 통해 어느 정도의 액세스 권한이 부여 된 테이블 만 볼 수 있습니다.
SELECT DISTINCT OWNER, OBJECT_NAME
FROM ALL_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'
AND OWNER = '[some other schema]'
마지막으로, 테이블에 대한 권한을 취소 할 수 없으므로 (10g 기준) 언제든지 자신의 테이블에 대한 데이터 사전을 쿼리 할 수 있습니다.
SELECT DISTINCT OBJECT_NAME
FROM USER_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'
SELECT table_name from all_tables where owner = 'YOURSCHEMA';
당신은 쿼리 할 수 있습니다 USER_TABLES
select TABLE_NAME from user_tables
DBA 권한없이 일반 사용자로 로그인 한 경우 다음 명령을 사용하여 고유 한 스키마의 모든 테이블 및 뷰를 볼 수 있습니다.
select * from tab;
이것을 시도하고 교체 하시겠습니까? 스키마 이름으로
select TABLE_NAME from INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA =?
AND TABLE_TYPE = 'BASE TABLE'
JDBC (Java)로 Oracle에 액세스하는 경우 DatabaseMetadata 클래스를 사용할 수 있습니다 . ADO.NET을 사용하여 Oracle에 액세스하는 경우 비슷한 접근 방식을 사용할 수 있습니다.
ODBC로 Oracle에 액세스하는 경우 SQLTables 함수를 사용할 수 있습니다 .
그렇지 않으면 SQLPlus 또는 유사한 Oracle 클라이언트의 정보 만 필요한 경우 이미 언급 한 쿼리 중 하나가 수행합니다. 예를 들어 :
select TABLE_NAME from user_tables
select * from cat;
user_catalog의 스키마 cat 동의어에있는 모든 테이블을 표시합니다.
select TABLE_NAME from user_tables;
위의 쿼리는 해당 사용자에 존재하는 모든 테이블의 이름을 제공합니다.
select * from user_tables;
(모든 테이블 표시)
SELECT table_name, table_name에 의한 owner = 'schema_name'순서의 all_tables에서 소유자
내 간단한 유틸리티 를보고 db 스키마에 대한 정보를 표시하십시오. : 그것은 기반으로 오라클 데이터 사전을 사용하여 데이터 모델 리버스 엔지니어링
테이블 크기도 가져와야 할 경우 편리합니다.
select SEGMENT_NAME, PARTITION_NAME, BYTES from user_segments where SEGMENT_TYPE='TABLE' order by 1
OWNER
스키마 아래의 모든 테이블에 대한 테이블 및 행 카운터 이름 :
SELECT table_name, num_rows counter from DBA_TABLES WHERE owner = 'OWNER'
소유자 이름을 알고 있으면 두 번째 쿼리를 직접 실행할 수 있습니다.
-먼저 존재하는 모든 소유자를 선택할 수 있습니다.
SELECT DISTINCT(owner) from SYS.ALL_TABLES;
그런 다음 해당 소유자가 아래 표를 볼 수 있습니다.
SELECT table_name, owner from all_tables where owner like ('%XYZ%');
참고 URL : https://stackoverflow.com/questions/2247310/how-do-i-list-all-tables-in-a-schema-in-oracle-sql
'Programing' 카테고리의 다른 글
바인드로 추가 된 이벤트 리스너 제거 (0) | 2020.06.16 |
---|---|
프로세스가 실행 중인지 어떻게 알 수 있습니까? (0) | 2020.06.16 |
Django를 통해 이메일을 보내는 방법은 무엇입니까? (0) | 2020.06.16 |
하나의 SQL 쿼리로 데이터베이스에서 모든 테이블을 삭제하는 방법은 무엇입니까? (0) | 2020.06.16 |
부모 프로세스가 종료 될 때 자식 프로세스 종료 (0) | 2020.06.16 |