OracleでORA-01747 : 指定された列が無効ですのエラーの分かりづらさったらありません・・・
SQLのUPDATE文の実行時に
「ORA-01747 : 指定された列が無効です」
とエラーになるも、パッと見で正常なSQLだったので、気づかなかった例です。
実際には、正しくないからエラーになってるんだけど・・・
UPDATE TableA SET ,COLUMN1 ...
と言う書き方で、なんで1項目目から「,」が入ってるんだよって話。
SQLのコピペで修正してると意外と気づかないオチ。
エディタを使ったり、手で書いた時には多分発生しないけど、今回はどうして発生したんだろう?
- 「,」の後ろにペーストしてしまった
- 「,」ごとコピーした上で、1項目目にペーストした
どっちかなんだろうけど、どっちも普段からあり得るので気をつけないと・・・。
ただ、今回はコピー元のSQLが正常に動いていたので、JOIN句の接続テーブルとか、GROUP BY句の項目名とかにしか意識が行かなくて、悩んだ例です。
参考URL
ORA-01747 : 指定された列が無効です。