programing

Oracle의 모든 테이블 목록을 가져오시겠습니까?

lastmemo 2023. 3. 2. 21:56
반응형

Oracle의 모든 테이블 목록을 가져오시겠습니까?

Oracle 데이터베이스에 있는 모든 테이블의 이름을 표시하려면 어떻게 쿼리해야 합니까?

SELECT owner, table_name
  FROM dba_tables

은, 「 」, 「 」에 할수 있는 것을 전제는, 「 」DBA_TABLES에 의해 해당 DBA DBA가 부여되도록 요구할 수 .SELECT ANY DICTIONARY 「」를 해 주세요.SELECT_CATALOG_ROLE역할(어느 쪽이든 데이터 사전 테이블을 쿼리할 수 있습니다).이런 .SYS ★★★★★★★★★★★★★★★★★」SYSTEMOracle 테이블이 많이 포함되어 있기 때문에 아마 신경 쓰지 않을 것입니다.

, 「」에 액세스 할 수 없는 .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 , , , , 입니다.CAT6으로 가 없는 한하는 것은 하지 않습니다일반적으로 스크립트를 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; 다음 그림은 user_tables, all_tables 및 dba_tables 뷰에서 반환할 수 있는 테이블을 보여 줍니다.

아래 쿼리를 사용하여 모든 테이블의 이름을 표시하는 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

더 사전 정의된 쿼리가 됩니다.columnSQL*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와 같은 데이터 사전을 생성할 수 있는 도구를 통해서도 가능합니다.이러한 도구를 사용하면 테이블 이름 외에도 필드, 필드 유형, 객체(트리거, 시퀀스, 도메인, 뷰...)를 사용할 수 있습니다.

테이블 정의를 생성하는 절차는 다음과 같습니다.

  1. 데이터베이스를 리버스 엔지니어링해야 합니다.
    • Toad 데이터 모델러에서 메뉴 -> 파일 -> 리버스 엔지니어 -> 리버스 엔지니어링 마법사
    • ERBuilder 데이터 모델러: 메뉴 -> 파일 -> 리버스 엔지니어

데이터베이스는 소프트웨어에 엔티티 관계 다이어그램으로 표시됩니다.

  1. 테이블 정의를 포함하는 데이터 사전을 생성합니다.
    • 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

반응형