麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 數(shù)據(jù)庫(kù) > Oracle > 正文

Oracle中檢查外鍵是否有索引的SQL腳本分享

2024-08-29 13:58:16
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了Oracle中檢查外鍵是否有索引的SQL腳本分享,本文給出了兩個(gè)版本的腳本源碼,一個(gè)查詢(xún)所有用戶(hù),一個(gè)查詢(xún)單用戶(hù),需要的朋友可以參考下
 
 

 

復(fù)制代碼代碼如下:

COLUMN COLUMNS format a30 word_wrapped 
COLUMN tablename format a15 word_wrapped 
COLUMN constraint_name format a15 word_wrapped 
SELECT TABLE_NAME, 
       CONSTRAINT_NAME, 
       CNAME1 || NVL2(CNAME2, ',' || CNAME2, NULL) || 
       NVL2(CNAME3, ',' || CNAME3, NULL) || 
       NVL2(CNAME4, ',' || CNAME4, NULL) || 
       NVL2(CNAME5, ',' || CNAME5, NULL) || 
       NVL2(CNAME6, ',' || CNAME6, NULL) || 
       NVL2(CNAME7, ',' || CNAME7, NULL) || 
       NVL2(CNAME8, ',' || CNAME8, NULL) COLUMNS 
  FROM (SELECT B.TABLE_NAME, 
               B.CONSTRAINT_NAME, 
               MAX(DECODE(POSITION, 1, COLUMN_NAME, NULL)) CNAME1, 
               MAX(DECODE(POSITION, 2, COLUMN_NAME, NULL)) CNAME2, 
               MAX(DECODE(POSITION, 3, COLUMN_NAME, NULL)) CNAME3, 
               MAX(DECODE(POSITION, 4, COLUMN_NAME, NULL)) CNAME4, 
               MAX(DECODE(POSITION, 5, COLUMN_NAME, NULL)) CNAME5, 
               MAX(DECODE(POSITION, 6, COLUMN_NAME, NULL)) CNAME6, 
               MAX(DECODE(POSITION, 7, COLUMN_NAME, NULL)) CNAME7, 
               MAX(DECODE(POSITION, 8, COLUMN_NAME, NULL)) CNAME8, 
               COUNT(*) COL_CNT 
          FROM (SELECT SUBSTR(TABLE_NAME, 1, 30) TABLE_NAME, 
                       SUBSTR(CONSTRAINT_NAME, 1, 30) CONSTRAINT_NAME, 
                       SUBSTR(COLUMN_NAME, 1, 30) COLUMN_NAME, 
                       POSITION 
                  FROM USER_CONS_COLUMNS) A, 
               USER_CONSTRAINTS B 
         WHERE A.CONSTRAINT_NAME = B.CONSTRAINT_NAME 
           AND B.CONSTRAINT_TYPE = 'R' 
         GROUP BY B.TABLE_NAME, B.CONSTRAINT_NAME) CONS 
 WHERE COL_CNT > ALL 
 (SELECT COUNT(*) 
          FROM USER_IND_COLUMNS I 
         WHERE I.TABLE_NAME = CONS.TABLE_NAME 
           AND I.COLUMN_NAME IN (CNAME1, CNAME2, CNAME3, CNAME4, CNAME5, 
                CNAME6, CNAME7, CNAME8) 
           AND I.COLUMN_POSITION <= CONS.COL_CNT 
         GROUP BY I.INDEX_NAME) 
/

在上面的基礎(chǔ)上修改了一下,可以檢查所有的用戶(hù)。
復(fù)制代碼代碼如下:

SET linesize 400;
COLUMN OWNER format a10 word_wrapped 
COLUMN COLUMNS format a30 word_wrapped 
COLUMN TABLE_NAME format a15 word_wrapped 
COLUMN CONSTRAINT_NAME format a40 word_wrapped 
SELECT OWNER,
     TABLE_NAME, 
       CONSTRAINT_NAME, 
       CNAME1 || NVL2(CNAME2, ',' || CNAME2, NULL) || 
       NVL2(CNAME3, ',' || CNAME3, NULL) || 
       NVL2(CNAME4, ',' || CNAME4, NULL) || 
       NVL2(CNAME5, ',' || CNAME5, NULL) || 
       NVL2(CNAME6, ',' || CNAME6, NULL) || 
       NVL2(CNAME7, ',' || CNAME7, NULL) || 
       NVL2(CNAME8, ',' || CNAME8, NULL) COLUMNS 
  FROM (SELECT B.OWNER,B.TABLE_NAME, 
               B.CONSTRAINT_NAME, 
               MAX(DECODE(POSITION, 1, COLUMN_NAME, NULL)) CNAME1, 
               MAX(DECODE(POSITION, 2, COLUMN_NAME, NULL)) CNAME2, 
               MAX(DECODE(POSITION, 3, COLUMN_NAME, NULL)) CNAME3, 
               MAX(DECODE(POSITION, 4, COLUMN_NAME, NULL)) CNAME4, 
               MAX(DECODE(POSITION, 5, COLUMN_NAME, NULL)) CNAME5, 
               MAX(DECODE(POSITION, 6, COLUMN_NAME, NULL)) CNAME6, 
               MAX(DECODE(POSITION, 7, COLUMN_NAME, NULL)) CNAME7, 
               MAX(DECODE(POSITION, 8, COLUMN_NAME, NULL)) CNAME8, 
               COUNT(*) COL_CNT 
          FROM (SELECT SUBSTR(TABLE_NAME, 1, 30) TABLE_NAME, 
                       SUBSTR(CONSTRAINT_NAME, 1, 30) CONSTRAINT_NAME, 
                       SUBSTR(COLUMN_NAME, 1, 30) COLUMN_NAME, 
                       POSITION 
                  FROM DBA_CONS_COLUMNS WHERE OWNER NOT IN ('SYS','SYSTEM','SYSMAN','HR','OE','EXFSYS','DBSNMP','MDSYS','OLAPSYS','SCOTT','EXFSYS','SH','PM','CTXSYS')) A, 
               DBA_CONSTRAINTS B 
         WHERE A.CONSTRAINT_NAME = B.CONSTRAINT_NAME 
           AND B.CONSTRAINT_TYPE = 'R' 
         GROUP BY B.OWNER,B.TABLE_NAME, B.CONSTRAINT_NAME) CONS 
 WHERE COL_CNT > ALL 
 (SELECT COUNT(*) 
          FROM DBA_IND_COLUMNS I 
         WHERE I.TABLE_NAME = CONS.TABLE_NAME AND I.TABLE_OWNER=CONS.OWNER
           AND I.COLUMN_NAME IN (CNAME1, CNAME2, CNAME3, CNAME4, CNAME5, 
                CNAME6, CNAME7, CNAME8) 
           AND I.COLUMN_POSITION <= CONS.COL_CNT 
         GROUP BY I.INDEX_NAME) 
/
 

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美成人精品一级 | 人人玩人人爽 | 色人阁导航 | 香蕉国产9| 日韩av成人 | 一级做a爱片毛片免费 | 免费观看一区二区三区 | 成人在线观看一区 | 国产91精品久久久久久 | 国产一级毛片不卡 | 日本xxxx色视频在线观看免费, | 久久国产一二区 | 欧美成人一二三区 | 欧美一级电影网 | 日本大片在线播放 | 日韩午夜一区二区三区 | 久久久精品视频网站 | 国产午夜精品久久久久久免费视 | 免费看污视频在线观看 | 午夜神马福利视频 | 免费观看高清视频网站 | 日本欧美一区二区 | 久久宗合色 | 欧美视频国产 | 亚洲成a| 久久久经典视频 | 91中文字幕在线观看 | 成人在线视频网 | 久久国产一 | 91精品国产91久久久久久 | 成人免费电影在线观看 | 欧美日韩在线影院 | 黄色片网站在线免费观看 | 毛片成人| 国产青草视频在线观看视频 | 久久久久久久爱 | 毛片视频免费观看 | 91九色网 | 中文字幕免费在线观看视频 | 国产剧情在线观看一区二区 | 中文字幕免费播放 |