1

関連する 2 つのアプリケーションは、複数のクエリでパッケージ内の関数を使用して、一部のデータを CSV として返します。選択および連結される列は CLOB フィールドであり、HTML、特殊文字などを含めることができます。アプリケーションのユーザーはほとんどいないため、あまり使用されていません。1 つは Oracle HTTP サービスを使用する Flex アプリケーションで、もう 1 つは ODP.NET を使用する ASP.NET アプリケーションです。アプリケーションは、相互にハイパーリンクを持つ 1 つの統合アプリケーションです。

昨日、奇妙なエラーの通知をいくつか受け取りました。

ORA-01031: 権限が不十分です ORA-06512

エラーの詳細にあるパッケージの行番号は、select 句で使用されている関数が原因でエラーが発生したことを示しています。いずれかのアプリケーションから呼び出された場合、約 75% の確率で発生します。

ORA-06512を引き起こした関数で発生したことは正しいORA-01031 insufficient privilege errorですか?残念ながら、ORA-06512これは非常に一般的なエラーであり、何もわかりません。また、なぜ無効な権限エラーが発生するのでしょうか? 両方のアプリケーションで使用されている Oracle ユーザー アカウントには、関数を含むパッケージに対する実行権限があります。

機能に関しては… 生産で2年ほど使用しましたが問題ありません。また、昨日 QA にデータをインポートしてテストしたところ、何度サーバーにリクエストをぶつけてもエラーは発生しませんでした。しかし、実稼働環境では、まったく同じパラメーターを使用しても約 75% の確率でエラーが発生します。

DBA がトレースを手伝ってくれましたが、トレース ファイルにエラー メッセージが見つかりませんでした。

今日、生産はすべて正常に戻りました。リクエストでサーバーを叩いても、エラーは頑固に発生を拒否します。

昨日のこの非常に奇妙な動作の原因は何ですか? ここにいる教祖の中に何か考えがある人はいますか?

編集: 1 つの重要な詳細に気付きました。関数によって選択され、CSV に連結されているテーブルの列は CLOB です。

4

1 に答える 1

1

クライアント アプリケーションが "SELECT clob_to_csv(clob_col) FROM ..." を実行していて、無効な権限が何度か返された場合、select ステートメントが関数を実行するのに十分な権限を持っていないのではなく、関数が実行しようとしている可能性があります。 .

特権を必要とする可能性があることについては、明確ではありません。ファイル (UTL_FILE) またはネットワーク接続 / Web サービスを使用しますか?

ある種の奇妙なデータである可能性があります (おそらく非常に大きな塊)。

于 2011-06-01T06:22:20.900 に答える