私は有効なプロシージャを持っていて、その中にinsert..selectステートメントがあります。このプロシージャを実行すると、この文から「ORA-00904::invalid identifier」エラーが発生する場合があります。それは理論的にはどうして可能ですか?トリガーも動的SQLもありません。有効なパッケージから "ORA-00904::無効な識別子"を取得するにはどうすればよいですか?
また、sqlerrmのORA-00904テキストには、無効と見なされる特定の識別子へのポインタはありません。
Oracleバージョン9.2.0.8
EDIT2:
は(定数に置き換え、すべてが働いていた)その選択の中から呼び出された機能に問題があったが判明。おそらくORA-00904が識別子を与えなかったのはこのためです。それでも、問題は残っています - どのように動的SQLを持たないプリコンパイル済みコードでこのエラーが発生するのでしょうか?
いくつかのサンプルコードを投稿できますか。 – Tim
ビューはありますか?あなたが言ったことから、 'SQLERRM'を出力するすべてのエラー('その他の時 ')の例外ハンドラがあると思います。もしあなたがそれを持っていなければ、とにかく例外が発生し、それがどこから来ているのかについてより多くの情報を与えるでしょう。 –
あなたが識別した関数と、呼び出された関数には動的SQLもありませんでしたか?チェーンの中に 'authid current_user'節があります。これはコンパイルと実行時の動作(特権と解決)に影響しますか?パッケージには適用されない、役割を付与されたprivsに頼っていますか? –