oracle 重复值 索引,Oracle 查询重复索引列

SELECT /*+ rule */

a .table_owner,

a.table_name,

a.index_owner,

a.index_name,

column_name_list,

column_name_list_dup,

dup duplicate_indexes,

i.uniqueness,

i.partitioned,

i.leaf_blocks,

i.distinct_keys,

i.num_rows,

i.clustering_factor

FROM (SELECT table_owner,

table_name,

index_owner,

index_name,

column_name_list_dup,

dup,

MAX(dup) OVER(PARTITION BY table_owner, table_name, index_name) dup_mx

FROM (SELECT table_owner,

table_name,

index_owner,

index_name,

SUBSTR(SYS_CONNECT_BY_PATH(column_name, ‘,‘), 2) column_name_list_dup,

dup

FROM (SELECT index_owner,

index_name,

table_owner,

table_name,

column_name,

COUNT(1) OVER(PARTITION BY index_owner, index_name) cnt,

ROW_NUMBER() OVER(PARTITION BY index_owner, index_name ORDER BY column_position) AS seq,

COUNT(1) OVER(PARTITION BY table_owner, table_name, column_name, column_position) AS dup

FROM sys.dba_ind_columns

WHERE (index_owner LIKE ‘E%‘ OR

index_owner LIKE ‘TRIAL%‘ OR

index_owner = ‘TEST‘)

AND index_owner NOT IN (‘EXFSYS‘))

WHERE dup != 1

START WITH seq = 1

CONNECT BY PRIOR seq + 1 = seq

AND PRIOR index_owner = index_owner

AND PRIOR index_name = index_name)) a,

(SELECT table_owner,

table_name,

index_owner,

index_name,

SUBSTR(SYS_CONNECT_BY_PATH(column_name, ‘,‘), 2) column_name_list

FROM (SELECT index_owner,

index_name,

table_owner,

table_name,

column_name,

COUNT(1) OVER(PARTITION BY index_owner, index_name) cnt,

ROW_NUMBER() OVER(PARTITION BY index_owner, index_name ORDER BY column_position) AS seq

FROM sys.dba_ind_columns

WHERE (index_owner LIKE ‘E%‘ OR index_owner LIKE ‘TRIAL%‘ OR

index_owner = ‘TEST‘)

AND index_owner NOT IN (‘EXFSYS‘))

WHERE seq = cnt

START WITH seq = 1

CONNECT BY PRIOR seq + 1 = seq

AND PRIOR index_owner = index_owner

AND PRIOR index_name = index_name) b,

dba_indexes i

WHERE a.dup = a.dup_mx

AND a.index_owner = b.index_owner

AND a.index_name = b.index_name

AND a.index_owner = i.owner

AND a.index_name = i.index_name

ORDER BY a.table_owner, a.table_name, column_name_list_dup;

原文:https://www.cnblogs.com/ss-33/p/10782615.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值