两个相关的应用程序在几个查询中使用一个包中的函数来以 CSV 格式返回一些数据。被选择和连接的列是一个 CLOB 字段,可以包含 HTML、特殊字符等。应用程序的用户很少,因此使用不频繁。一种是使用 Oracle HTTP 服务的 Flex 应用程序,另一种是使用 ODP.NET 的 ASP.NET 应用程序。这些应用程序实际上是一个集成的应用程序,彼此之间有超链接。
昨天,我收到了几条关于一个奇怪错误的通知:
ORA-01031: 权限不足 ORA-06512
错误详细信息中的包中的行号表明该错误是由在 select 子句中使用的函数引起的。它会在大约 75% 的时间被任一应用程序调用时发生。
我是否正确,ORA-06512
然后导致函数中发生了ORA-01031 insufficient privilege error
?不幸的是,ORA-06512
这是一个非常普遍的错误,并没有告诉我任何事情。为什么会导致无效的权限错误?两个应用程序使用的 Oracle 用户帐户对包含该函数的包具有执行权限。
关于功能......它已经在生产中使用了大约 2 年,没有任何问题。另外,昨天我把数据导入QA并测试时,无论我用请求敲击服务器多少次,都不会出现错误。但在生产中,错误会在大约 75% 的时间发生在完全相同的参数下。
DBA 试图帮助我进行跟踪,但我们在跟踪文件中找不到错误消息。
今天,一切都在生产中恢复正常。即使我用请求锤击服务器,错误也会顽固地拒绝发生。
是什么导致了昨天这种非常奇怪的行为?这里的大师有什么想法吗?
编辑:我刚刚意识到一个重要的细节。该函数正在选择并连接到 CSV 的表中的列是 CLOB。