oracle查找表位置,ORACLE 查看表索引

== 查看索引列信息

SELECT INDEX_NAME,

MAX (DECODE (COLUMN_POSITION, 1, COLUMN_NAME || ' ' || DESCEND, NULL))

c1,

MAX (DECODE (COLUMN_POSITION, 2, COLUMN_NAME || ' ' || DESCEND, NULL))

c2,

MAX (DECODE (COLUMN_POSITION, 3, COLUMN_NAME || ' ' || DESCEND, NULL))

c3,

MAX (DECODE (COLUMN_POSITION, 4, COLUMN_NAME || ' ' || DESCEND, NULL))

c4,

MAX (DECODE (COLUMN_POSITION, 5, COLUMN_NAME || ' ' || DESCEND, NULL))

c5

FROM ( SELECT a.INDEX_NAME,

REPLACE (

DECODE (

descend,

'DESC', long_2_varchar (b.index_name,

b.table_NAME,

b.COLUMN_POSITION),

a.column_name),

'"',

'')

COLUMN_NAME,

a.COLUMN_POSITION,

DESCEND

FROM user_ind_columns a

LEFT JOIN

user_ind_expressions b

ON a.index_name = b.index_name

AND a.table_name = b.table_name

WHERE a.table_name = 'CM_XX_T_ZC_APP_POS'

ORDER BY INDEX_NAME, column_position)

GROUP BY INDEX_NAME;

== 根据列位置查找列名

CREATE OR REPLACE FUNCTION long_2_varchar (

p_index_name IN user_ind_expressions.index_name%TYPE,

p_table_name IN user_ind_expressions.table_name%TYPE,

p_COLUMN_POSITION IN user_ind_expressions.table_name%TYPE)

RETURN VARCHAR2

AS

l_COLUMN_EXPRESSION LONG;

BEGIN

SELECT COLUMN_EXPRESSION

INTO l_COLUMN_EXPRESSION

FROM user_ind_expressions

WHERE index_name = p_index_name

AND table_name = p_table_name

AND COLUMN_POSITION = p_COLUMN_POSITION;

RETURN SUBSTR (l_COLUMN_EXPRESSION, 1, 4000);

END;

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值