質問

恐ろしいORA-00904: invalid identifierエラーメッセージを表示するMERGEステートメントがあります。 「無効な識別子」エラーの一般的な問題はここには存在しないことに注意してください。結合された列を更新しようとはしておらず、列名のスペルを間違えていません。私は、ORA_ROWSCN句のUSINGステートメントでoracle疑似列SELECTを使用しようとしています。

これらのサンプルテーブルを使用して、実行しようとしています ジェネラコディセタグプレ

USING句から疑似列ora_rowscnを削除すると、エラーメッセージが表示されなくなり、マージが正常に完了します。 ジェネラコディセタグプレ

代わりにクエリをVIEWに配置すると、ora_rowscnを正常に使用できます。 ジェネラコディセタグプレ

クエリのVIEWを作成せずにこれを行う方法はありますか? ETLプロセスの一部として多くのテーブルでこれを行う必要があり、複数のビューを作成する必要はありません。

編集: コメントでのGlennの提案に基づいて、クエリをサブクエリに入れてみました: ジェネラコディセタグプレ

このクエリでも、ORA-00904: invalid identifierエラーメッセージが表示されます。

問題を再現するためのDDLです。 ジェネラコディセタグプレ

役に立ちましたか?

解決

SQLを実行しましたが、同じエラーが発生しました(11.2.0.1)。次に、selectを実行しようとしました ジェネラコディセタグプレ

それでもORA-00904: "UPDATE_DT": invalid identifierエラーが発生しました。次に、DDLで、MY_SOURCE_TABLEの列がUPDATED_DTと呼ばれていることに気付きました(つまり、追加のD文字が付いています)。あなたのMERGEステートメントでそれへの参照を変更することはそれが私のために働くようにしました、それが役立つことを願っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top