列名称在oracle索引中被屏蔽
我在oracle db中有一个表,它有一个由两列组成的唯一索引(列名称在oracle索引中被屏蔽,oracle,indexing,Oracle,Indexing,我在oracle db中有一个表,它有一个由两列组成的唯一索引(id和valid\u from)。来自的有效列为带时区的时间戳类型。 当我查询SYS.USER_IND_列以查看我的表将哪些列用作唯一索引时,我无法从列中看到有效列的名称,而是看到smth,如SYS\u NC00027$。 是否有可能显示来自而非SYS\u NC00027$的名称valid\u.?显然,Oracle为带有时区的时间戳创建了基于函数的索引 它们的定义可以在视图所有IND\u表达式中找到 像这样的事情应该让你开始: se
id
和valid\u from
)。来自的有效列为带时区的时间戳类型。当我查询SYS.USER_IND_列以查看我的表将哪些列用作唯一索引时,我无法从列中看到
有效列的名称,而是看到smth,如SYS\u NC00027$。
是否有可能显示来自而非SYS\u NC00027$的名称valid\u.?显然,Oracle为带有时区的
时间戳创建了基于函数的索引
它们的定义可以在视图所有IND\u表达式中找到
像这样的事情应该让你开始:
select ic.index_name,
ic.column_name,
ie.column_expression
from all_ind_columns ic
left join all_ind_expressions ie
on ie.index_owner = ic.index_owner
and ie.index_name = ic.index_name
and ie.column_position = ic.column_position
where ic.table_name = 'FOO';
不幸的是,
column\u表达式是一个(不推荐的)LONG
列,不能在coalesce()
或nvl()
函数中轻松使用。使用下面的方法验证列信息
select column_name,virtual_column,hidden_column,data_default from user_tab_cols where table_name='EMP';
您是否可以包括查询用户索引列的实际结果
视图?