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'
당신은 USER_TABLES
select TABLE_NAME from user_tables
이것은 스키마에있는 모든 테이블이며 스키마의 모든 테이블은 아닙니다. 또한 * _TABLES 데이터 딕셔너리 뷰 (DBA_TABLES, ALL_TABLES, USER_TABLES)에는 뷰가 포함됩니다. –
"보기 포함"을 "세미 버전의 Oracle에보기 포함 가능"으로 바꿉니다. –
@ Adam Musch Oracle 10g R2를 사용하여 테스트했지만보기를 반환하지 않았습니다. – Sathya
이 시도 조회 할 수 있습니다, 대체? 스키마 이름 사용
select TABLE_NAME from INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA =?
AND TABLE_TYPE = 'BASE TABLE'
이것은 더 많은 데이터베이스에 무관심하므로이 유형의 솔루션이 모든 대안보다 우수하다고 생각합니다. 나는 INFORMATION_SCHEMA가 내가 본 모든 거의 모든 주요 데이터베이스에서 작동한다고 생각한다. 어떤 정보는 당신이 나갈 수있는 점에서 차이가 있지만, 적어도 일관된 곳입니다. 그러나 빠른 인터넷 검색을 통해 오라클은 SQL-92 표준의 일부 임에도 불구하고 Information_Schema를 지원하지 않는 유일한 데이터베이스 일뿐입니다. – Kibbee
물론 OP는 오라클 솔루션을 요구합니다 ... – DCookie
db 스키마에 대한 정보를 보려면 내 simple utility을보십시오. Reverse Engineering a Data Model Using the Oracle Data Dictionary
SELECT table_name from all_tables where owner = 'YOURSCHEMA';
schemanaame은 대문자이어야합니다 –
YOURSCHEMA가 실행하거나 Adam Musch가 언급 한 권한을 가진 사용자가 실행하면 YOURSCHEMA의 모든 테이블 만 표시됩니다. 그렇지 않으면 우리에게 권한이 부여 된 테이블이 YOURSCHEMA에 표시됩니다. – APC
당신이 JDBC (자바)와 오라클 액세스하는 경우 DatabaseMetadata 클래스를 사용할 수 있습니다 : 그것은 기반으로합니다. ADO.NET을 사용하여 Oracle에 액세스하는 경우 비슷한 방법을 사용할 수 있습니다.
ODBC를 사용하여 Oracle에 액세스하는 경우 SQLTables 기능을 사용할 수 있습니다.
SQLPlus 또는 유사한 Oracle 클라이언트에 정보가 필요하면 이미 언급 한 쿼리 중 하나가 수행됩니다. 예를 들어 :
select TABLE_NAME from user_tables
당신이 일반 사용자로 로그인 한 경우 DBA 권한이 없으면 다음 명령을 사용하여 자신의 스키마의 모든 테이블과 뷰를 볼 수 있습니다.
select * from tab;
select * from cat;
이 user_catalog의 스키마 고양이 동의어에있는 모든 테이블을 표시합니다
당신에게 해당 사용자에 존재하는 모든 테이블의 이름을 줄 것이다 쿼리 위select TABLE_NAME from user_tables;
;
select * from user_tables;
당신은뿐만 아니라 테이블의 크기를 얻을 필요가있는 경우,이 편리 할 것입니다
(모든 테이블을 표시) : ALL_TABLES 곳에서
select SEGMENT_NAME, PARTITION_NAME, BYTES from user_segments where SEGMENT_TYPE='TABLE' order by 1
SELECT TABLE_NAME, 소유자 owner = 'schema_name'order by table_name
- 1. Perl을 사용하여 디렉토리의 모든 파일을 나열하려면 어떻게합니까?
- 2. 사용 가능한 모든 컨텍스트 변수를 나열하려면 어떻게합니까?
- 3. Windows에서 실행중인 모든 프로세스를 나열하려면 어떻게합니까?
- 4. GAC에 등록 된 모든 어셈블리를 나열하려면 어떻게합니까?
- 5. Django에서 모든 양식 관련 오류를 나열하려면 어떻게합니까?
- 6. Tomcat의 폴더에있는 모든 파일을 나열하려면 어떻게합니까?
- 7. show 페이지에서 다른 레코드에 속한 모든 레코드를 나열하려면 어떻게합니까?
- 8. 다른 스키마의 테이블을 업데이트하는 oracle 함수를 작성하는 방법
- 9. MATLAB에서 전역 변수를 나열하려면 어떻게합니까?
- 10. Oracle 데이터베이스에서 모든 저장 프로 시저를 나열하려면 어떤 SQL을 사용해야합니까?
- 11. SQLite에서 특정 테이블의 사용 가능한 모든 뷰를 나열하려면 어떻게합니까?
- 12. 배포 된 모든 jax-ws 웹 서비스를 나열하려면 어떻게합니까?
- 13. 원격 컴퓨터에 연결하고 디렉터리의 모든 파일을 나열하려면 어떻게합니까?
- 14. Android 모바일에 설치된 모든 응용 프로그램을 나열하려면 어떻게합니까?
- 15. Oracle 스키마의 모든 오브젝트에 대한 작성 스크립트를 생성하는 옵션
- 16. Oracle 용 전체 스키마의 모든 필드에서 주어진 문자열 검색
- 17. Wordpress에서 특정 태그가있는 항목을 모두 나열하려면 어떻게합니까?
- 18. Oracle SQL에서 날짜 계산
- 19. Oracle SQL에서 (+) 무엇을합니까?
- 20. 프로그래밍 방식으로 내 LinkedIn 연락처를 나열하려면 어떻게합니까?
- 21. WMI를 사용하여 장치 유형을 나열하려면 어떻게합니까?
- 22. 두 테이블을 비교하고 SQL에서 중복 행을 삭제하려면 어떻게합니까?
- 23. oracle sql에서 다음 달에 항목을 얻으려면 어떻게해야합니까?
- 24. Oracle SQL에서 OR 문 사용
- 25. Oracle SQL에서 기본 제약 만들기
- 26. SQL에서 테이블을 조인하고 업데이트하는 방법
- 27. SQL에서 주석 테이블을 만드는 방법
- 28. SQL에서 조회 테이블을 채우는 방법?
- 29. sql에서 대/소문자를 비교하려면 어떻게합니까?
- 30. SQL에서 WHERE 문을 수정하려면 어떻게합니까?
은'% _TABLES' 대신'% _OBJECTS'를 사용하는 것과는 별개로 "가장 완벽한 답변"입니다. – APC
9i에서 뷰가 % _TABLES에 나열된다는 것을 기억합니다. 예를 들어, 스키마 비우기를 자동화하려고하면 DROP TABLE REALLY_A_VIEW CASCADE CONSTRAINTS 오류가 발생합니다. 따라서 MINUS/NOT IN/NOT EXISTS로보기를 제거하거나 % _OBJECTS를 다시 이동해야합니다. 게다가 % _OBJECTS와 (과)가는 것은 그 밖에 무엇이 있을지를 암시합니다. –
쿼리에 'DISTINCT'가 필요하지 않습니다. 'owner, object_name'는 ALL_OBJECTS에서 유일합니다. –