Oracle의 모든 테이블 목록을 가져오시겠습니까?
Oracle 데이터베이스에 있는 모든 테이블의 이름을 표시하려면 어떻게 쿼리해야 합니까?
SELECT owner, table_name
FROM dba_tables
은, 「 」, 「 」에 할수 있는 것을 전제는, 「 」DBA_TABLES
에 의해 해당 DBA에 DBA가 부여되도록 요구할 수 .SELECT ANY DICTIONARY
「」를 해 주세요.SELECT_CATALOG_ROLE
역할(어느 쪽이든 데이터 사전 테이블을 쿼리할 수 있습니다).이런 .SYS
★★★★★★★★★★★★★★★★★」SYSTEM
Oracle 테이블이 많이 포함되어 있기 때문에 아마 신경 쓰지 않을 것입니다.
, 「」에 액세스 할 수 없는 .DBA_TABLES
경우 수 모든 ALL_TABLES
표시:
SELECT owner, table_name
FROM all_tables
이는 에서 사용 수 ( 「 」 、 「 」 。ALL_TABLES
에, 유저에게 액세스가 허가된 모든 테이블의 정보를 나타냅니다).
이 아닌하고 있는 이 있는 를 사용할 수 .USER_TABLES
:
SELECT table_name
FROM user_tables
★★USER_TABLES
에는 사용자가, 이 테이블에는 가 소유한 테이블에 대한 가 없습니다.OWNER
yourcolumn – "column" 입니다.
에는 Oracle과 같은 여러 데이터 .TAB
,DICT
,TABS
, , , , 입니다.CAT
6으로 가 없는 한하는 것은 하지 않습니다일반적으로 스크립트를 Oracle 6으로 백포트할 필요가 없는 한 이러한 레거시 뷰를 사용하는 것은 권장하지 않습니다.Oracle은 오랫동안 이러한 보기를 변경하지 않았기 때문에 새로운 유형의 개체에서 문제가 발생하는 경우가 많습니다.를 들면, 「」는,TAB
★★★★★★★★★★★★★★★★★」CAT
모두 에 대한 줍니다.또, 「휴지통」은 「휴지통」에 있습니다.[DBA|ALL|USER]_TABLES
뷰는 모두 필터링합니다. CAT
에는, 「」, 「」, 「」, 「」, 「」를 뷰에 대한 도 나타냅니다.TABLE_TYPE
테이블을 정말 게 것 표' 탭LE'는요. DICT
는 테이블과 동의어를 조합하여 오브젝트의 소유자를 알리지 않습니다.
중user_tables
★★★★★★★★★★★★★★★★★」dba_tables
효과가 없었습니다.
했어요, 하다, 하다, 하다.
select table_name from all_tables
한 걸음 더 나아가 cols(all_tab_columns)라고 하는 다른 뷰가 있습니다.이 뷰는 특정 컬럼 이름이 포함된 테이블을 확인하는 데 사용할 수 있습니다.
예를 들어 다음과 같습니다.
SELECT table_name, column_name
FROM cols
WHERE table_name LIKE 'EST%'
AND column_name LIKE '%CALLREF%';
EST로 시작하는 이름과 CALLREF가 포함된 컬럼이 있는 모든 테이블을 검색합니다.
예를 들어 테이블 및 열 명명 규칙에 따라 조인할 열을 계산할 때 도움이 됩니다.
「 」로 , 「 」로 표시하기 위해서.sqlplus
★★★★★★★★★를 사용하고 있는 경우는sqlplus
있는 후 를 보다 하기 위해 몇 가지 할 수 .sqlplus
명령어):
set colsep '|'
set linesize 167
set pagesize 30
set pagesize 1000
모든 테이블 표시
그런 다음 다음과 같은 기능을 사용하여 모든 테이블 이름을 볼 수 있습니다.
SELECT table_name, owner, tablespace_name FROM all_tables;
소유한 테이블 표시
@Justin Cave에서 설명한 바와 같이 이를 사용하여 자신이 소유한 테이블만 표시할 수 있습니다.
SELECT table_name FROM user_tables;
뷰에 대해 잊지 마세요
일부 "테이블"은 실제로 "보기"일 수 있으므로 다음과 같은 작업을 실행할 수도 있습니다.
SELECT view_name FROM all_views;
결과
이렇게 하면 다음과 같이 상당히 만족스러운 결과를 얻을 수 있습니다.
현재 사용자의 테이블을 선택하는 단순 쿼리:
SELECT table_name FROM user_tables;
select object_name from user_objects where object_type='TABLE';
-------------------------------------------
select * from tab;
-------------------------------------------
select table_name from user_tables;
아래 데이터 사전 보기를 사용해 보십시오.
tabs
dba_tables
all_tables
user_tables
다음 명령을 실행합니다.
Oracle 데이터베이스의 모든 테이블 표시
sql> SELECT table_name FROM dba_tables;
현재 사용자가 소유한 테이블 표시
sql> SELECT table_name FROM user_tables;
현재 사용자가 액세스할 수 있는 테이블 표시
sql> SELECT table_name FROM all_tables ORDER BY table_name;
아래 쿼리를 사용하여 모든 테이블의 이름을 표시하는 Oracle 데이터베이스
dba_tables에서 소유자 table_name을 선택합니다. all_tables에서 소유자 table_name을 선택합니다. user_tables에서 table_name을 선택합니다.
기타 : http://www.plsqlinformation.com/2016/08/get-list-of-all-tables-in-oracle.html
현재 사용자가 소유한 테이블을 나열하는 user_tables에서 선택하십시오.
이 중 하나를 사용하여 다음을 선택할 수 있습니다.
SELECT DISTINCT OWNER, OBJECT_NAME
FROM DBA_OBJECTS
WHERE OBJECT_TYPE = 'TABLE' AND OWNER='SOME_SCHEMA_NAME';
SELECT DISTINCT OWNER, OBJECT_NAME
FROM ALL_OBJECTS
WHERE OBJECT_TYPE = 'TABLE' AND OWNER='SOME_SCHEMA_NAME';
select * from dba_tables
가 "사용하고 " 에만 모든 을 보여줍니다.이는 로그인한 사용자가 다음 명령을 사용하고 있는 경우 뿐입니다.sysdba
특권
사용할 수 있는 답을 찾지 못했습니다.
DBA_ALL_TABLES (ALL_ALL_TABLES/USER_ALL_TABLES)
제 버전도 추가하기로 했어요.이 뷰에서는 실제로 DBA보다 더 많은 정보가 반환됩니다.오브젝트 테이블도 반환할 때 TABLEs(http://docs.oracle.com/cd/E11882_01/server.112/e40402/statviews_1003.htm)).
SQLcl(Oracle Database용 무료 명령줄 인터페이스)에서 사용할 수 있는 새로운 기능은 다음과 같습니다.
Tables
에일리어스
다음은 기능의 사용 방법과 추가 측면을 보여주는 몇 가지 예입니다.하다'에 접속합니다.sql
명령줄)sql.exe
를 참조해 주세요.데이터를 표시하는 다른 명령 또는 쿼리를 실행하기 전에 이 sqlcl 고유 명령을 입력하는 것이 좋습니다.
SQL> set sqlformat ansiconsole -- resizes the columns to the width of the
-- data to save space
SQL> tables
TABLES
-----------
REGIONS
LOCATIONS
DEPARTMENTS
JOBS
EMPLOYEES
JOB_HISTORY
..
「 」의 를 부여합니다.tables
'', '아름다움', '아름다움'을 말합니다alias list <alias>
SQL> alias list tables
tables - tables <schema> - show tables from schema
--------------------------------------------------
select table_name "TABLES" from user_tables
SQLcl에 기본적으로 포함되어 있기 때문에 이 별칭을 정의할 필요는 없습니다. 특정 스키마의 테이블을 나열하고, 새 사용자 정의 별칭을 사용하고 스키마 이름을 바인딩 인수로 전달하고 열 집합만 표시하는 경우 다음을 사용하여 정의할 수 있습니다.
SQL> alias tables_schema = select owner, table_name, last_analyzed from all_tables where owner = :ownr;
그런 다음 스키마 이름을 인수로 전달할 수 있습니다.
SQL> tables_schema HR
OWNER TABLE_NAME LAST_ANALYZED
HR DUMMY1 18-10-18
HR YOURTAB2 16-11-18
HR YOURTABLE 01-12-18
HR ID_TABLE 05-12-18
HR REGIONS 26-05-18
HR LOCATIONS 26-05-18
HR DEPARTMENTS 26-05-18
HR JOBS 26-05-18
HR EMPLOYEES 12-10-18
..
..
보다 정교한 사전 정의 에일리어스는 로 알려져 있으며, 이 에일리어스에는 다른 여러 열이 표시됩니다.
SQL> tables2
Tables
======
TABLE_NAME NUM_ROWS BLOCKS UNFORMATTED_SIZE COMPRESSION INDEX_COUNT CONSTRAINT_COUNT PART_COUNT LAST_ANALYZED
AN_IP_TABLE 0 0 0 Disabled 0 0 0 > Month
PARTTABLE 0 0 0 1 0 1 > Month
TST2 0 0 0 Disabled 0 0 0 > Month
TST3 0 0 0 Disabled 0 0 0 > Month
MANAGE_EMPLYEE 0 0 0 Disabled 0 0 0 > Month
PRODUCT 0 0 0 Disabled 0 0 0 > Month
ALL_TAB_X78EHRYFK 0 0 0 Disabled 0 0 0 > Month
TBW 0 0 0 Disabled 0 0 0 > Month
DEPT 0 0 0 Disabled 0 0 0 > Month
백그라운드에서 실행되는 쿼리를 확인하려면 다음과 같이 입력합니다.
alias list tables2
더 사전 정의된 쿼리가 됩니다.column
SQL*Plus를 사용합니다.
Jeff Smith가 가명에 대해 자세히 설명합니다.
Oracle Data Dictionary를 사용하여 Oracle 개체에 대한 정보를 가져올 수 있습니다.
다양한 방법으로 테이블 목록을 가져올 수 있습니다.
select *
from dba_tables
또는 예를 들어 다음과 같습니다.
select *
from dba_objects
where object_type = 'TABLE'
그런 다음 테이블 이름을 사용하여 테이블 열을 가져올 수 있습니다.
select *
from dba_tab_columns
그런 다음 종속성 목록(트리거, 보기 등)을 가져올 수 있습니다.
select *
from dba_dependencies
where referenced_type='TABLE' and referenced_name=:t_name
그러면 다음 개체의 텍스트 소스를 가져올 수 있습니다.
select * from dba_source
이렇게 하면 .USER
★★★★★★★★★★★★★★★★★」ALL
가 뷰DBA
네가 원한다면.
뷰 포함:
SELECT owner, table_name as table_view
FROM dba_tables
UNION ALL
SELECT owner, view_name as table_view
FROM DBA_VIEWS
아래 쿼리에서 열 세부 정보를 포함한 모든 테이블을 가져올 수 있습니다.
SELECT * FROM user_tab_columns;
다음은 옵션을 사용하는 방법을 설명하는 SQL 쿼리의 일부입니다.
-- need to have select catalog role
SELECT * FROM dba_tables;
-- to see tables of your schema
SELECT * FROM user_tables;
-- tables inside your schema and tables of other schema which you possess select grants on
SELECT * FROM all_tables;
다음 쿼리는 필요한 데이터만 나열한 반면 다른 답변은 나를 혼란스럽게 하는 추가 데이터를 제공했습니다.
select table_name from user_tables;
스키마의 테이블에 속한 모든 열 이름 목록을 열 ID 순서로 정렬하려고 했습니다.
사용하고 있는 쿼리는 다음과 같습니다.
SELECT COLUMN_NAME
FROM ALL_TAB_COLUMNS
WHERE OWNER = 'schema_owner_username' AND TABLE_NAME='table_name'
ORDER BY COLUMN_ID ASC;
실제로 SQL queries.it을 통해 테이블 목록을 얻을 수 있습니다. 또한 ERWIN, Toad Data Modeler 또는 ERBuilder와 같은 데이터 사전을 생성할 수 있는 도구를 통해서도 가능합니다.이러한 도구를 사용하면 테이블 이름 외에도 필드, 필드 유형, 객체(트리거, 시퀀스, 도메인, 뷰...)를 사용할 수 있습니다.
테이블 정의를 생성하는 절차는 다음과 같습니다.
- 데이터베이스를 리버스 엔지니어링해야 합니다.
- Toad 데이터 모델러에서 메뉴 -> 파일 -> 리버스 엔지니어 -> 리버스 엔지니어링 마법사
- ERBuilder 데이터 모델러: 메뉴 -> 파일 -> 리버스 엔지니어
데이터베이스는 소프트웨어에 엔티티 관계 다이어그램으로 표시됩니다.
- 테이블 정의를 포함하는 데이터 사전을 생성합니다.
- Toad 데이터 모델러에서 메뉴 -> 모델 -> 보고서 생성 -> 실행
- ERBuilder 데이터 모델러: 메뉴 -> 도구 -> 모델 문서 생성
모든 테이블 이름을 가져오려면 다음을 사용합니다.
Select owner, table_name from all_tables;
dba 권한이 있는 경우 다음을 사용할 수 있습니다.
Select owner, table_name from dba_tables;
select * from all_all_tables
첫 번째 추가 '모두'는 다음과 같은 3개의 열을 추가로 제공합니다.
OBJECT_ID_TYPE
TABLE_TYPE_OWNER
TABLE_TYPE
현재 사용자 - 로그온 스키마의 테이블
select * from tabs;
언급URL : https://stackoverflow.com/questions/205736/get-list-of-all-tables-in-oracle
'programing' 카테고리의 다른 글
AngularJS - 페이지를 가득 채운 상태에서 리다이렉트를 하려면 어떻게 해야 합니까? (0) | 2023.03.02 |
---|---|
지시문에서 마우스 오버 시 클래스 변경 (0) | 2023.03.02 |
MySQL 가져오기 인코딩 문제 - 다시 확인 (0) | 2023.03.02 |
JSON Schema: number-or-null 값을 확인합니다. (0) | 2023.03.02 |
SyntaxError: 식이 필요한데 '<'이(가) 수신되었습니다. (0) | 2023.03.02 |