表に定義されている制約を確認する

Pocket

【概要】
DBA_CONSTRAINTSにより、表に定義されている制約を確認する。
【SQL文】
/*
|| ■表に定義されている制約を確認する
||
|| 【項目の説明】
|| OWNER :制約定義の所有者
|| CONSTRAINT_NAME :制約定義の名前
|| CONSTRAINT_TYPE :制約定義のタイプ
|| P – 主キー など
|| TABLE_NAME :制約定義付きの表(またはビュー)に対応付けられた名前
|| INDEX_OWNER :索引を所有しているユーザーの名前
|| INDEX_NAME :索引の名前(一意および主キー制約の場合のみ表示)
|| R_OWNER :参照制約で参照される表の所有者
|| R_CONSTRAINT_NAME :参照表の一意制約の定義名
|| STATUS :制約の施行状態で「ENABLED」または「DISABLED」
|| DEFERRABLE :制約が遅延可能か(DEFERRABLE)そうでないか(NOT DEFERRABLE)
|| DEFERRED :制約が初期状態から遅延されていたか(DEFERRED)そうでないか(IMMEDIATE)
|| VALIDATED :STATUS = ENABLEDの場合、可能な値は「VALIDATED」または「NOT VALIDATED」
||  STATUS = DISABLEDの場合、可能な値は「VALIDATED」または「NOT VALIDATED:」
|| SEARCH_CONDITION :チェック制約に対する検索条件のテキスト。
||  この列は、行の発生元が現在のコンテナの場合のみ正しい値を返す。
*/
set lines 270
set pages 1000

clear col
ttitle off

col OWNER for a20
col CONSTRAINT_NAME for a30
col CONSTRAINT_TYPE for a20
col TABLE_NAME for a30
col INDEX_OWNER for a20
col INDEX_NAME for a30
col R_OWNER for a20
col R_CONSTRAINT_NAME for a30
col STATUS for a10
col DEFERRABLE for a10
col DEFERRED for a10
col VALIDATED for a10
col SEARCH_CONDITION for a30

ttitle left ‘■■■ 表に定義されている制約情報 ■■■’
spool tbl_const_info.lis

SELECT owner
. constraint_name
. constraint_type
, table_name
, DECODE(index_owner,null,”,index_owner||~’,’||index_name) index_name
, r_owner
, r_constraint_name
, status
, deferrable
, deferred
, validated
, search_condition
FROM dba_constraints
WHERE owner = ‘OWNER’
;
spool off
clear col
ttitle off
set line 80

以上です (^^♪