Oracle中的SQL脚本共享检查外键是否索引
柱柱格式A30 word_wrapped
柱表的格式word_wrapped A15
柱constraint_name A15 word_wrapped格式
选择table_name,
constraint_name,
cname1 | |(cname2,NVL2 ',' cname2 | |,空| |)
NVL2(cname3,cname3空,| |,| |)
NVL2(cname4,cname4空,| |,| |)
NVL2(cname5,cname5空,| |,| |)
NVL2(cname6,cname6空,| |,| |)
NVL2(cname7,cname7空,| |,| |)
NVL2(cname8,cname8 ',| |,null)柱
从b.table_name(选择,
b.constraint_name,
马克斯(解码(位置,1,column_name,null))cname1,
马克斯(解码(位置,2,column_name,null))cname2,
马克斯(解码(位置,3,column_name,null))cname3,
马克斯(解码(位置,4,column_name,null))cname4,
马克斯(解码(位置,5,column_name,null))cname5,
马克斯(解码(位置,6,column_name,null))cname6,
马克斯(解码(位置,7,column_name,null))cname7,
马克斯(解码(位置,8,column_name,null))cname8,
计数(*)col_cnt
从(选择substr(table_name,1, 30)table_name,
substr(constraint_name,1, 30)constraint_name,
substr(column_name,1, 30)column_name,
位置
从user_cons_columns一),
user_constraints B
在a.constraint_name = b.constraint_name
和b.constraint_type = R
集团通过b.table_name,b.constraint_name弊)
在所有col_cnt >
(选择计数(*))
我从user_ind_columns
在i.table_name = cons.table_name
在和i.column_name(cname1,cname2,cname3,cname4,cname5,
cname6,cname7,cname8)
和i.column_position <= cons.col_cnt
集团通过i.index_name)
/
在上述修改的基础上,您可以检查所有用户。
复制代码代码如下所示:
设置线宽400;
A10 word_wrapped所有者列格式
柱柱格式A30 word_wrapped
柱table_name A15 word_wrapped格式
柱constraint_name 40 word_wrapped格式
选择所有者,
table_name,
constraint_name,
cname1 | |(cname2,NVL2 ',' cname2 | |,空| |)
NVL2(cname3,cname3空,| |,| |)
NVL2(cname4,cname4空,| |,| |)
NVL2 (CNAME5, 'CNAME5 NULL,' ||, ||)
NVL2(cname6,cname6空,| |,| |)
NVL2(cname7,cname7空,| |,| |)
NVL2 (CNAME8, 'CNAME8', ||, NULL) COLUMNS
从(选择b.owner,b.table_name,
b.constraint_name,
马克斯(解码(位置,1,column_name,null))cname1,
马克斯(解码(位置,2,column_name,null))cname2,
马克斯(解码(位置,3,column_name,null))cname3,
马克斯(解码(位置,4,column_name,null))cname4,
马克斯(解码(位置,5,column_name,null))cname5,
马克斯(解码(位置,6,column_name,null))cname6,
马克斯(解码(位置,7,column_name,null))cname7,
马克斯(解码(位置,8,column_name,null))cname8,
计数(*)col_cnt
从(选择substr(table_name,1, 30)table_name,
substr(constraint_name,1, 30)constraint_name,
substr(column_name,1, 30)column_name,
位置
从那里,dba_cons_columns,主人不在('sys '系统','sysman ','hr ','oe ','oe ',不,T,T,T,T,T,T))
dba_constraints B
在a.constraint_name = b.constraint_name
和b.constraint_type = R
B.OWNER,b.table_name组,b.constraint_name)的利弊
在所有col_cnt >
(选择计数(*))
我从dba_ind_columns
在i.table_name = cons.table_name和i.table_owner = cons.owner
在和i.column_name(cname1,cname2,cname3,cname4,cname5,
cname6,cname7,cname8)
和i.column_position <= cons.col_cnt
集团通过i.index_name)
/