【发布时间】:2011-06-01 05:37:21
【问题描述】:
两个相关的应用程序在几个查询中使用一个包中的函数来以 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。
【问题讨论】:
标签: oracle function clob ora-01031 ora-06512