批量结构更新后,一些视图/过程变得无效。
所以我只是重新编译它们:
exec dbms_utility.compile_schema( USER )
Run Code Online (Sandbox Code Playgroud)
但在那之后,之前状态良好的所有基于函数的索引都被破坏了,针对这些表的 SQL 语句失败了。这就是问题所在。
此类索引的示例:
CREATE INDEX DOCUMENTS_NMBR_UCN_FIDX ON DOCUMENTS(Str2Number(NUMBER_UCN));
CREATE INDEX DOCUMENTS_DATE_FIDX ON DOCUMENTS(Date2Number(REG_DATE));
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
我们在生产中使用了 Oracle 11g。应用系统仍在积极开发中。获取导致任何错误的 SQL 语句将非常方便。
Oracle 是否提供标准函数来跟踪和记录这些语句和附加(调试)信息?