DESCRIBE 명령을 사용하지 않고 Oracle에서 테이블을 기술하려면 어떻게 해야 합니까?
수강 중인 수업 때문에 어려움을 겪고 있어요.DESCRIBE 명령어와 동일하게 동작하는 Oracle 스크립트를 작성해야 합니다.우리가 사용하고 있는 책에는 데이터 사전을 사용하는 방법이 매우 서투르게 설명되어 있습니다.답을 찾는 게 아니라 올바른 방향으로 가는 거야
모든 열과 쿼리가 실행되는 스키마에서 사용자가 볼 수 있는 권한을 가진 모든 테이블을 제외하고 모든 열과 해당 설명을 찾습니다.
일반적인 쿼리는 다음과 같습니다.
select *
from user_tab_columns
where table_name = 'MY_TABLE'
order by column_id
column_id
는 테이블 내의 컬럼의 "순서"입니다.
'MY_TAB'이LE'는 케이싱(나쁜 아이디어)이 있는 테이블을 추가하지 않는 한 대문자로 표시됩니다.이 경우 다음과 같은 것을 사용할 필요가 있습니다.= "MyTable"
.
구체적으로는desc
이는 우수한 Oracle 리소스인 ss64에서 훔친 다음과 같습니다.
select column_name as "Name"
, nullable as "Null?"
, concat(concat(concat(data_type,'('),data_length),')') as "Type"
from user_tab_columns
where table_name = 'MY_TABLE';
이 모든 종류의 뷰는select * from dictionary
데이터 사전의 최상위 수준 또는 설명서를 참조하십시오.
또,DBA_TAB_COLUMNS
(이것은, 와 같습니다.ALL_TAB_COLUMNS
단, 데이터베이스의 모든 테이블에 적용됩니다.이는 사용자가 이 테이블과 테이블을 모두 볼 수 있는 권한을 가지고 있음을 전제로 합니다.이 테이블에 액세스할 수 없는 경우 DBA에게 다음 권한을 부여하도록 요청해야 합니다.SELECT ANY DICTIONARY
특권
테이블을 다시 작성하기 위해 사용할 수 있는 명령어 전체를 가져올 수도 있습니다.
select dbms_metadata.get_ddl('TABLE','<my table name>','<table owner>') from dual;
Oracle에는 데이터베이스 구조에 대한 메타 데이터가 포함된 테이블 집합이 있습니다.테이블이 있다.뷰 테이블열 테이블입니다.USER_ 등의 뷰를 사용하여 이들 테이블을 조회할 수 있습니다.TABLES(스키마 내의 테이블), ALL_TABLES(표시 권한이 있는 테이블), DBA_TABLES(특권이 있는 경우 모든 테이블)일반적으로 많은 데이터베이스 벤더는 벤더 간에 메타데이터의 일관된 뷰를 제공하는 "정보 스키마"를 지원합니다.여기서 "ALL_TABLES"를 검색하여 기타 모든 정보를 확인하십시오.http://docs.oracle.com/cd/B28359_01/server.111/b28320/toc.htm
Oracle SQLcl에서 새롭게 도입된 것은information
명령 또는 단순INFO table_name
. 이것은 다음과 같은 간단한 구문을 가지고 있습니다.DESC[RIBE]
SQL> info
INFORMATION
--------
This command is like describe but with more details about the objects requested.
INFO[RMATION] {[schema.]object[@connect_identifier]}
INFO+ will show column statistics
그 출력은 월등히 우수하고 설명적이다.DESCRIBE
테이블, 뷰 또는 동의어의 열 정의 또는 함수 또는 프로시저의 사양에 대한 자세한 정보를 나열합니다.
예: 실행 시 SQLcl: Release 18.1.1에서 표시되는 출력은 다음과 같습니다.
info employees
SQL> info employees;
TABLE: EMPLOYEES
LAST ANALYZED:2018-05-26 15:07:58.0
ROWS :107
SAMPLE SIZE :107
INMEMORY :DISABLED
COMMENTS :employees table. Contains 107 rows. References with departments,
jobs, job_history tables. Contains a self reference.
Columns
NAME DATA TYPE NULL DEFAULT COMMENTS
*EMPLOYEE_ID NUMBER(6,0) No Primary key of employees table.
FIRST_NAME VARCHAR2(20 BYTE) Yes First name of the employee. A not null column.
LAST_NAME VARCHAR2(25 BYTE) No Last name of the employee. A not null column.
EMAIL VARCHAR2(25 BYTE) No Email id of the employee
PHONE_NUMBER VARCHAR2(20 BYTE) Yes Phone number of the employee; includes country
code and area code
HIRE_DATE DATE No Date when the employee started on this job. A not
null column.
JOB_ID VARCHAR2(10 BYTE) No Current job of the employee; foreign key to job_id
column of the jobs table. A not null column.
SALARY NUMBER(8,2) Yes Monthly salary of the employee. Must be greater
than zero (enforced by constraint emp_salary_min)
COMMISSION_PCT NUMBER(2,2) Yes Commission percentage of the employee; Only
employees in sales department elgible for
commission percentage
MANAGER_ID NUMBER(6,0) Yes Manager id of the employee; has same domain as
manager_id in departments table. Foreign key to
employee_id column of employees table.(useful for
reflexive joins and CONNECT BY query)
DEPARTMENT_ID NUMBER(4,0) Yes Department id where employee works; foreign key to
department_id column of the departments table
Indexes
INDEX_NAME UNIQUENESS STATUS FUNCIDX_STATUS COLUMNS
HR.EMP_JOB_IX NONUNIQUE VALID JOB_ID
HR.EMP_NAME_IX NONUNIQUE VALID LAST_NAME, FIRST_NAME
HR.EMP_EMAIL_UK UNIQUE VALID EMAIL
HR.EMP_EMP_ID_PK UNIQUE VALID EMPLOYEE_ID
HR.EMP_MANAGER_IX NONUNIQUE VALID MANAGER_ID
HR.EMP_DEPARTMENT_IX NONUNIQUE VALID DEPARTMENT_ID
References
TABLE_NAME CONSTRAINT_NAME DELETE_RULE STATUS DEFERRABLE VALIDATED GENERATED
DEPARTMENTS DEPT_MGR_FK NO ACTION ENABLED NOT DEFERRABLE VALIDATED USER NAME
EMPLOYEES EMP_MANAGER_FK NO ACTION ENABLED NOT DEFERRABLE VALIDATED USER NAME
JOB_HISTORY JHIST_EMP_FK NO ACTION ENABLED NOT DEFERRABLE VALIDATED USER NAME
.info+
:
언급URL : https://stackoverflow.com/questions/9855209/how-can-i-describe-a-table-in-oracle-without-using-the-describe-command
'code' 카테고리의 다른 글
jq를 사용하여 요소 속성 값으로 개체 배열을 필터링하려면 어떻게 해야 합니까? (0) | 2023.02.16 |
---|---|
Javascript를 사용한 CSS 값 변경 (0) | 2023.02.16 |
리액트 훅을 사용하여 다음 렌더링에 집중하는 방법 (0) | 2023.02.16 |
JSON Schema - 다른 필드의 값을 기준으로 필드를 지정해야 합니다. (0) | 2023.02.16 |
새 개체가 기존 개체와 오버레이/마지되도록 MongoDB 개체를 부분적으로 업데이트하려면 어떻게 해야 합니까? (0) | 2023.02.16 |