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]Oracle 11g XEの文字コードの変更

Oracle 11g XE を普通にインストールするとUFT-8になりますが、場合に寄っちゃSJISで設定しなきゃいけないときもあるので、その手順。 SJISのdumpを渡される 以前、疑問に思ったの …

[ORACLE]ORA-24344:正常に終了しましたが、コンパイル・エラーがあります。

全然、正常に終われてねぇんじゃん?? って思った。 ビューの作成時に発生。 ネットで検索するも、明確な回答は見当たらず・・・ ただ、エラーには違いないので、ビューが正しく作成されていないことになる。 …

ORACLEでCASE文を使用した時にORA-00932のエラーが出る

割と悩んだ・・・ 原因は、CASE文で使用している項目のデータ型が異なるのが原因みたいだけど、正直、ぴんと来てない現実w select case name when ‘A’ then ‘あ’ when …

Oracleで「Ora-28001:the password has expired」のエラーの対処法

正直、自分で見たときに何が起こったのかわかりませんでしたw だって、初めて見るエラーだったし・・・ ということで、調べてみたら、パスワードの有効期限らしいですね。 対処法も簡単なので、サクッと対処法を …

Oracle11gでパスワードの有効期限を変更する

先日のOra-28001ですが、他のユーザーも同様になってましたw 当然ですね・・・ 日本の中心付近で仕様変更と闘うSE日記Oracleで「Ora-28001:the password has exp …


カテゴリー