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
소유자 이름을 알고 있는 경우 두 번째 조회를 직접 실행할 수 있습니다.
--먼저 존재하는 모든 OWNER를 선택할 수 있습니다.
SELECT DISTINCT(owner) from SYS.ALL_TABLES;
--그 후, 그 소유자의 아래 표를 표시할 수 있습니다.
SELECT table_name, owner from all_tables where owner like ('%XYZ%');
DBA 권한 없이 일반 사용자로 로그인한 경우 다음 명령을 사용하여 자체 스키마의 모든 테이블 및 보기를 볼 수 있습니다.
select * from tab;
select * from cat;
스키마 cat 동의어 user_disma의 모든 테이블이 표시됩니다.
JDBC(Java)를 사용하여 Oracle에 액세스하는 경우 DatabaseMetadata 클래스를 사용할 수 있습니다.ADO를 사용하여 Oracle에 액세스하는 경우NET 유사한 접근 방식을 사용할 수 있습니다.
ODBC를 사용하여 Oracle에 액세스하는 경우 SQLTables 기능을 사용할 수 있습니다.
그렇지 않으면 SQLPlus 또는 유사한 Oracle 클라이언트에 있는 정보만 필요한 경우 이미 언급된 쿼리 중 하나로 충분합니다.예:
select TABLE_NAME from user_tables
시도해보십시오. ?을(를) 스키마 이름으로 바꿉니다.
select TABLE_NAME from INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA =?
AND TABLE_TYPE = 'BASE TABLE'
select TABLE_NAME from user_tables;
위의 쿼리는 해당 사용자에게 존재하는 모든 테이블의 이름을 제공합니다.
select * from user_tables;
(모든 테이블 표시)
table_name, owner FROM all_downs에서 table_name을 선택합니다. 여기서 owner='table_name'은 table_name별로 정렬됩니다.
아래의 모든 테이블에 대한 테이블 및 행 카운터 이름OWNER스키마:
SELECT table_name, num_rows counter from DBA_TABLES WHERE owner = 'OWNER'
간단한 유틸리티를 통해 db 스키마에 대한 정보를 볼 수 있습니다.Oracle Data Dictionary를 사용한 데이터 모델의 리버스 엔지니어링을 기반으로 합니다.
테이블의 사이즈도 입수할 필요가 있는 경우는, 다음과 같이 편리합니다.
select SEGMENT_NAME, PARTITION_NAME, BYTES from user_segments where SEGMENT_TYPE='TABLE' order by 1
언급URL : https://stackoverflow.com/questions/2247310/how-do-i-list-all-tables-in-a-schema-in-oracle-sql
'programing' 카테고리의 다른 글
| ObjectResult와 JsonResult의 차이점 (0) | 2023.03.20 |
|---|---|
| useEffect 내의 Redx 저장소에서 상태 가져오기 반응 (0) | 2023.03.20 |
| Backbone.js 모델 데이터를 저장하는 방법 (0) | 2023.03.20 |
| WordPress wp_head - 새로운 스크립트 파일을 상단에 추가하려면 어떻게 해야 합니까? (0) | 2023.03.20 |
| NoSQL 사용 사례 (0) | 2023.03.20 |