{"id":737,"date":"2013-02-26T12:03:13","date_gmt":"2013-02-26T04:03:13","guid":{"rendered":"http:\/\/www.yallonking.com\/?p=737"},"modified":"2013-02-26T19:16:24","modified_gmt":"2013-02-26T11:16:24","slug":"scripts%e6%9f%a5%e7%9c%8b%e5%a4%96%e9%94%ae%e7%b4%a2%e5%bc%95%e6%98%af%e5%90%a6%e5%ad%98%e5%9c%a8","status":"publish","type":"post","link":"http:\/\/www.yallonking.com\/?p=737","title":{"rendered":"scripts:\u67e5\u770b\u5916\u952e\u7d22\u5f15\u662f\u5426\u5b58\u5728"},"content":{"rendered":"<p><strong>\u4ee5\u4e0b\u9002\u7528oracle10g<\/strong><br \/>\n\u6ce8\u610f\uff1a\u8be5sql\u5bf9\u8868\u7684\u5916\u952e\u7684\u5217\u6570\u6709\u9650\u5236\u3002<br \/>\n<coolcode lang=\"sql\"><br \/>\ncolumn columns format a30 word_wrapped<br \/>\ncolumn tablename format a15 word_wrapped<br \/>\ncolumn constraint_name format a15 word_wrapped<\/p>\n<p>select table_name,<br \/>\n       constraint_name,<br \/>\n       cname1 || nvl2(cname2, ',' || cname2, null) ||<br \/>\n       nvl2(cname3, ',' || cname3, null) ||<br \/>\n       nvl2(cname4, ',' || cname4, null) ||<br \/>\n       nvl2(cname5, ',' || cname5, null) ||<br \/>\n       nvl2(cname6, ',' || cname6, null) ||<br \/>\n       nvl2(cname7, ',' || cname7, null) ||<br \/>\n       nvl2(cname8, ',' || cname8, null) columns<br \/>\n  from (select b.table_name,<br \/>\n               b.constraint_name,<br \/>\n               max(decode(position, 1, column_name, null)) cname1,<br \/>\n               max(decode(position, 2, column_name, null)) cname2,<br \/>\n               max(decode(position, 3, column_name, null)) cname3,<br \/>\n               max(decode(position, 4, column_name, null)) cname4,<br \/>\n               max(decode(position, 5, column_name, null)) cname5,<br \/>\n               max(decode(position, 6, column_name, null)) cname6,<br \/>\n               max(decode(position, 7, column_name, null)) cname7,<br \/>\n               max(decode(position, 8, column_name, null)) cname8,<br \/>\n               count(*) col_cnt<br \/>\n          from (select substr(table_name, 1, 30) table_name,<br \/>\n                       substr(constraint_name, 1, 30) constraint_name,<br \/>\n                       substr(column_name, 1, 30) column_name,<br \/>\n                       position<br \/>\n                  from user_cons_columns) a,<br \/>\n               user_constraints b<br \/>\n         where a.constraint_name = b.constraint_name<br \/>\n           and b.constraint_type = 'R'<br \/>\n         group by b.table_name, b.constraint_name) cons<br \/>\n where col_cnt > ALL (select count(*)<br \/>\n          from user_ind_columns i<br \/>\n         where i.table_name = cons.table_name<br \/>\n           and i.column_name in (cname1,<br \/>\n                                 cname2,<br \/>\n                                 cname3,<br \/>\n                                 cname4,<br \/>\n                                 cname5,<br \/>\n                                 cname6,<br \/>\n                                 cname7,<br \/>\n                                 cname8)<br \/>\n           and i.column_position <= cons.col_cnt\n         group by i.index_name);\n<\/coolcode><\/p>\n<p><strong>\u4ee5\u4e0b\u9002\u7528\u4e8eoracle11g<\/strong><br \/>\n<coolcode lang=\"sql\"><br \/>\nselect case<br \/>\n         when ind.index_name is not null then<br \/>\n          case<br \/>\n            when ind.index_type in ('BITMAP') then<br \/>\n             '**Bitmap idx**'<br \/>\n            else<br \/>\n             'indexed'<br \/>\n          end<br \/>\n         else<br \/>\n          '**Check idx**'<br \/>\n       end checker,<br \/>\n       ind.index_type,<br \/>\n       cons.owner,<br \/>\n       cons.table_name,<br \/>\n       ind.index_name,<br \/>\n       cons.constraint_name,<br \/>\n       cons.cols<br \/>\n  from (select c.owner,<br \/>\n               c.table_name,<br \/>\n               c.constraint_name,<br \/>\n               listagg(cc.column_name, ',') within group(order by cc.column_name) cols<br \/>\n          from dba_constraints c, dba_cons_columns cc<br \/>\n         where c.owner = cc.owner<br \/>\n           and c.owner = upper('&&schema')<br \/>\n           and c.constraint_name = cc.constraint_name<br \/>\n           and c.constraint_type = 'R'<br \/>\n         group by c.owner, c.table_name, c.constraint_name) cons<br \/>\n  left outer join (select table_owner,<br \/>\n                          table_name,<br \/>\n                          index_name,<br \/>\n                          index_type,<br \/>\n                          cbr,<br \/>\n                          listagg(column_name, ',') within group(order by column_name) cols<br \/>\n                     from (select ic.table_owner,<br \/>\n                                  ic.table_name,<br \/>\n                                  ic.index_name,<br \/>\n                                  ic.column_name,<br \/>\n                                  ic.column_position,<br \/>\n                                  i.index_type,<br \/>\n                                  connect_by_root(ic.column_name) cbr<br \/>\n                             from dba_ind_columns ic, dba_indexes i<br \/>\n                            where ic.table_owner = upper('&&schema')<br \/>\n                              and ic.table_owner = i.table_owner<br \/>\n                              and ic.table_name = i.table_name<br \/>\n                              and ic.index_name = i.index_name<br \/>\n                           connect by prior ic.column_position - 1 =<br \/>\n                                       ic.column_position<br \/>\n                                  and prior ic.index_name = ic.index_name)<br \/>\n                    group by table_owner,<br \/>\n                             table_name,<br \/>\n                             index_name,<br \/>\n                             index_type,<br \/>\n                             cbr) ind<br \/>\n    on cons.cols = ind.cols<br \/>\n   and cons.table_name = ind.table_name<br \/>\n   and cons.owner = ind.table_owner<br \/>\n order by checker, cons.owner, cons.table_name;<br \/>\n<\/coolcode><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4ee5\u4e0b\u9002\u7528oracle10g \u6ce8\u610f\uff1a\u8be5sql\u5bf9\u8868\u7684\u5916\u952e\u7684\u5217\u6570\u6709\u9650\u5236\u3002 column columns format [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[9],"tags":[],"_links":{"self":[{"href":"http:\/\/www.yallonking.com\/index.php?rest_route=\/wp\/v2\/posts\/737"}],"collection":[{"href":"http:\/\/www.yallonking.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.yallonking.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.yallonking.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.yallonking.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=737"}],"version-history":[{"count":5,"href":"http:\/\/www.yallonking.com\/index.php?rest_route=\/wp\/v2\/posts\/737\/revisions"}],"predecessor-version":[{"id":747,"href":"http:\/\/www.yallonking.com\/index.php?rest_route=\/wp\/v2\/posts\/737\/revisions\/747"}],"wp:attachment":[{"href":"http:\/\/www.yallonking.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.yallonking.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=737"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.yallonking.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}