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の統計情報の更新方法 頻度はそんなに無いというか、先日、トラブル対応時に必要に迫られたので・・・ 通常は、Oracleの統計情報は1日1回更新されるらしいんだけど、夜とかになるみたい。 多 …

[ORACLE]oracleのログの場所(リスナーログ、アラートログ)

ぶっちゃけ、ログの場所なんて普段意識してないわwww 存在は知ってるものの、ぶっちゃけ、普段からそんな場所など意識していたことがない。 もちろん、何かあったときは、ファイル検索で見つけりゃいいや~と思 …

[ORACLE]多分、例外的なora-00911:文字が無効ですエラーの解決方法

多分、このエラーを目にする機会はそれなりにあって、大体の対処法はググればすぐに見つかると思う。 例えば、 SQL実行時にはOKなのに、C#のOracleDbAccess実行時にエラーになる 全角スペー …

ORACLEでDELETEとTRUNCATEのどちらを使うか。

未だに迷う。 例えば、テーブル全件削除をしたいときは delete * from tableA; delete文なら、こうだし。 truncate tableA; truncate文なら、こう。

ORACLEでTO_CHARを使用し、カンマ区切りデータを出力する

帳票出力を行うPGで困った。 数値形式のデータのため、カンマ区切りで表示したいんだけど、テンプレートの制約のせいで上手く行かなくて時の解決方法。 帳票のテンプレートとなるファイルのセルは文字列形式。 …


カテゴリー