Oracle/Administration2019. 8. 27. 09:42
PK가 없는 테이블을 조회하기 위해서는 아래처럼 다소 복잡한 쿼리를 작성해야 한다.
-- 1
SELECT a.owner, a.table_name
  FROM dba_tables a
 WHERE a.owner = 'SCOTT'
   AND NOT EXISTS (SELECT 1
                     FROM dba_constraints x
                    WHERE x.owner = a.owner
                      AND x.table_name = a.table_name
                      AND x.constraint_type = 'P');

OWNER TABLE_NAME
----- ----------
SCOTT SALGRADE
SCOTT BONUS

2 행이 선택되었습니다.

DBA_LOGSTDBY_NOT_UNIQUE 뷰를 조회하면 PK와 NOT NULL UNIQUE 인덱스가 없는 테이블을 간단히 조회할 수 있다.

-- 2
SELECT *
  FROM dba_logstdby_not_unique
 WHERE owner = 'SCOTT';

OWNER TABLE_NAME BAD_COLUMN
----- ---------- ----------
SCOTT BONUS      N
SCOTT SALGRADE   N

2 행이 선택되었습니다.


'Oracle > Administration' 카테고리의 다른 글

사용자 정의 함수와 FBI  (0) 2020.02.22
ALTER SEQUENCE RESTART  (0) 2019.09.04
Hybrid Partitioned 테이블  (0) 2019.08.22
Partitioned External 테이블  (0) 2019.08.22
인덱스 명명 규칙  (0) 2019.08.19
Posted by 정희락_