250x250
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- ubuntu
- maven
- JavaScript
- Open Source
- 오픈소스
- Eclipse
- Thymeleaf
- Docker
- oracle
- PostgreSQL
- JDBC
- myBatis
- spring
- AJAX
- Tomcat
- Spring Boot
- STS
- 문서
- IntelliJ
- error
- Core Java
- SpringBoot
- MySQL
- Source
- Exception
- jpa
- git
- Python
- MSSQL
- 설정
Archives
- Today
- Total
헤르메스 LIFE
[Oracle] Table 목록 조회 본문
728x90
1. 현재 계정의 테이블 목록을 보여줌.
SELECT * FROM tab;
SELECT *
FROM ALL_TABLES
WHERE TABLE_NAME LIKE '[TABLE명]'
2. 모든 계정의 테이블 목록을 보여줌.
SELECT * FROM all_tables WHERE OWNER = SCOTT;
SELECT * FROM user_tables;
3. SYNONYM 정보
SELECT *
FROM ALL_SYNONYMS
WHERE SYNONYM_NAME = 'SYNONYM명'
;
4. Procedure 목록
SELECT *
FROM USER_PROCEDURES
WHERE OBJECT_NAME LIKE '%[프로시저명]%'
;
SELECT OBJECT_ID
, OBJECT_TYPE
, OBJECT_NAME
, TO_CHAR(CREATED, 'YYYY-MM-DD HH24:MI:SS') AS CREATED
, TO_CHAR(LAST_DDL_TIME, 'YYYY-MM-DD HH24:MI:SS') AS LAST_DDL_TIME
FROM SYS.USER_OBJECTS
WHERE OBJECT_TYPE = UPPER('PROCEDURE')
ORDER BY OBJECT_NAME ASC
;
/* 패키지 내부 프로시저 조회 */
SELECT *
FROM ALL_PROCEDURES
WHERE OBJECT_NAME = '[패키지명]'
;
/* 프로시저 조회 */
SELECT *
FROM ALL_PROCEDURES
WHERE OBJECT_TYPE IN ('PACKAGE', 'PROCEDURE', 'FUNCTION', 'TRIGGER')
;
5. Procedure, Function 목록
SELECT *
FROM USER_SOURCE
WHERE TYPE = 'FUNCTION'
AND NAME = '[함수명]'
SELECT *
FROM USER_SOURCE
WHERE TYPE = 'PROCEDURE'
AND NAME = '[프로시저명]'
6. Procedure, Function 내용 찾기
SELECT T1.OBJECT_ID
, T1.OBJECT_NAME
, T1.OBJECT_TYPE
, T2.TEXT
FROM USER_OBJECTS T1 /* DB에 존재하는 모든 오브젝트의 목록 정보가 있음(TABLE, VIEW, PROCEDURE, FUNCTION, ..) */
, USER_SOURCE T2 /* 프로시저의 내용과 TYPE 정보가 있음 */
WHERE T1.OBJECT_NAME = T2.NAME
AND T1.OBJECT_TYPE IN ('PROCEDURE', 'FUNCTION')
AND T2.TEXT LIKE ' %PROCEDURE%' /* 찾으려는 프로시저 또는 함수 내 문구 입력 */
;
SELECT TEXT
FROM SYS.USER_SOURCE
WHERE TYPE = 'FUNCTION'
AND NAME = '[함수명]';
9. 테이블에 대한 컬럼 정보 및 Comment 정보를 보여줌.
SELECT A.TABLE_NAME -- 테이블 명
, A.COLUMN_NAME -- 컬럼 명
, A.DATA_TYPE || (CASE WHEN A.DATA_TYPE LIKE '%CHAR%' THEN '(' || A.DATA_LENGTH || ')'
WHEN A.DATA_TYPE = 'NUMBER' AND A.DATA_PRECISION > 0 AND A.DATA_SCALE > 0
THEN '(' || A.DATA_PRECISION || ',' || A.DATA_SCALE || ')'
WHEN A.DATA_TYPE = 'NUMBER' AND A.DATA_PRECISION > 0
THEN '(' || A.DATA_PRECISION ||')'
END
)AS DATA_TYPE -- 자릿수 표현한 데이터 유형
, DECODE(A.NULLABLE, 'Y', 'YES', 'NO') ISNULL -- NULL 여부
, DECODE(PK.COLUMN_NAME, NULL, '', 'PK') PK -- PK 여부
, DECODE(FK.COLUMN_NAME, NULL, '', 'FK') FK -- PK 여부
, A.DATA_DEFAULT -- 기본 값
, COLUMN_ID -- 생성 순서
, COMM.COMMENTS -- COMMENT
FROM USER_TAB_COLUMNS A
, USER_COL_COMMENTS COMM
, (
SELECT AA.TABLE_NAME, AA.COLUMN_NAME
FROM USER_CONS_COLUMNS AA
, USER_CONSTRAINTS BB
WHERE AA.OWNER = BB.OWNER
AND AA.CONSTRAINT_NAME = BB.CONSTRAINT_NAME
AND BB.CONSTRAINT_TYPE = 'P'
) PK
, (
SELECT AA.TABLE_NAME, AA.COLUMN_NAME
FROM USER_CONS_COLUMNS AA
, USER_CONSTRAINTS BB
WHERE AA.OWNER = BB.OWNER
AND AA.CONSTRAINT_NAME = BB.CONSTRAINT_NAME
AND BB.CONSTRAINT_TYPE = 'R'
) FK
WHERE A.TABLE_NAME = PK.TABLE_NAME(+)
AND A.COLUMN_NAME = PK.COLUMN_NAME(+)
AND A.TABLE_NAME = FK.TABLE_NAME(+)
AND A.COLUMN_NAME = FK.COLUMN_NAME(+)
AND A.TABLE_NAME = COMM.TABLE_NAME(+)
AND A.COLUMN_NAME = COMM.COLUMN_NAME(+)
-- AND UPPER(A.OWNER) = UPPER('[ 테이블유저명 ]')
AND A.TABLE_NAME = '[ 테이블명 ]'
ORDER BY COLUMN_ID
https://hermeslog.tistory.com/377
728x90
'Database' 카테고리의 다른 글
[Oracle] 해당 DB의 모든 OBJECT를 볼수 있는 쿼리 (0) | 2010.12.16 |
---|---|
[Oracle] 사용자 생성, 변경, 삭제 (0) | 2010.12.15 |
[문서] Oracle 에러 코드 한글 번역 문서 (0) | 2010.11.16 |
[게시판] 페이징 쿼리 (MS-SQL, Oracle) (0) | 2010.11.10 |
[ERwin] Input file: <파일명>.ER1 with file version: -1 is not readable by Computer Associates ERwin (0) | 2010.11.10 |