OracleでORA-01747 : 指定された列が無効ですのエラーの分かりづらさ・・・

投稿日:2017-09-11

OracleでORA-01747 : 指定された列が無効ですのエラーの分かりづらさったらありません・・・

SQLのUPDATE文の実行時に
「ORA-01747 : 指定された列が無効です」
とエラーになるも、パッと見で正常なSQLだったので、気づかなかった例です。

実際には、正しくないからエラーになってるんだけど・・・

UPDATE TableA SET
,COLUMN1
...

と言う書き方で、なんで1項目目から「,」が入ってるんだよって話。

SQLのコピペで修正してると意外と気づかないオチ。

エディタを使ったり、手で書いた時には多分発生しないけど、今回はどうして発生したんだろう?

  • 「,」の後ろにペーストしてしまった
  • 「,」ごとコピーした上で、1項目目にペーストした

どっちかなんだろうけど、どっちも普段からあり得るので気をつけないと・・・。

ただ、今回はコピー元のSQLが正常に動いていたので、JOIN句の接続テーブルとか、GROUP BY句の項目名とかにしか意識が行かなくて、悩んだ例です。

参考URL
ORA-01747 : 指定された列が無効です。







-ORACLE
-

関連記事

Oracleで「ORA-00906: 左カッコがありません。」のエラーが出た時の対処法

はい。 そろそろ、上司の無茶目な仕様変更にも折り合いをつけて行きたいSEっぽいことをやってる人です。 前にも書いたかもしれないけど、また、どハマリしたOracleのエラーについて。 エラーの内容が全て …

no image

OracleでLISTAGG関数を使ったら、世界が変わった話。

11gR2からGROUP_CONCAT(複数行をまとめて1列に)が可能に http://d.hatena.ne.jp/kkz_tech/20150311/1426048592 日本の中心付近で仕様変更 …

SQLのJOINの種類を理解する

これは分かりやすい。 https://blog.codinghorror.com/a-visual-explanation-of-sql-joins/ INNNER JOIN FULL OUTER J …

ORACLEでSPOOL処理の高速化を試す

ORACLEでSPOOL処理の高速化を考えてみた 事の発端は、お客様のお怒りでした・・・ なんで、お客さんに最新版のリリース時には、必ずスキーマ間の比較をすることを徹底しろと言われてしまったと。 まぁ …

Oracleで複数レコードを更新する方法

UPDATE文で、複数のレコードを一回のトランザクション内で更新する必要に迫られました。 基本的に、今まで使ってきたUPDATE文では、 UPDATE tableA set COL1 = 1 ,COL …


カテゴリー