假设我有一个程序,作为数据库转换过程的一部分,它在数据库中搜索要修改的列。
如果我试图改变一个定义了函数索引的列,会出现以下错误:
ORA-30556: functional index is defined on the column to be modified
字符串
Looking up the ORA code,解决方案是“在尝试修改列之前删除函数索引”。
太好了!那么我如何找到该列上的所有函数索引呢?user_ind_columns
视图看起来是一个很好的开始,但是函数索引在它们的COLUMN
列中有类似“SYS_NC00042$”的东西。环顾其他user_
视图,我没有看到任何明显的东西。我错过了什么吗?
还是我完全走错路了
3条答案
按热度按时间jchrr9hc1#
表
user_ind_expressions
描述了基于函数的索引的表达式。Oracle 11.2 link
7fyelxc52#
查看
USER_INDEXES
的INDEX_TYPE
列:字符串
j2datikz3#
添加到Mike's answer,您可以在
ALL_INDEXES
表中使用FUNCIDX_STATUS
,该表将告诉您索引是否基于功能NULL
,是否启用基于功能的索引ENABLED
或基于功能的索引DISABLED
。字符串