ORACLE機能 ORAエラー

[ORAエラー] ORA-00904: 無効な識別子です

投稿日:2017年4月29日 更新日:

以下のように表示されます。

(日本語)
ORA-00904: XXX: 無効な識別子です
(英語)
ORA-00904: XXX: invalid identifier

XXXの箇所には、エラー対象箇所が表示されます。

発生パターン

このエラーは以下のような場合に発生します。

  • SELECT文などで、存在しない列名を指定した
  • UPDATE文に指定した値を「'」ではなく、「"」で囲んでいる
  • WHERE句に指定した文字列を「'」ではなく、「"」で囲んでいる
    (「"」は列タイトルを表す時に使用する記号です。)
  • 列にコメントを付ける時に存在しない列名を指定した
エラー例1
SQL> select * from m_test where code = "01"; select * from m_test where code = "01"; * 行1でエラーが発生しました。: ORA-00904: "01": 無効な識別子です。

"01" を '01' にすればOKです。

エラー例2
SQL> update m_test set col2 = "hoge" where col1 = 'foo'; update m_test set col2 = "hoge" where col1 = 'foo'; * 行1でエラーが発生しました。: ORA-00904: "hoge": 無効な識別子です。

"hoge" を 'hoge' にすればOKです。

エラー例3
SQL> comment on column TEST_TABLE.MEMO02 is 'メモ02'; comment on column TEST_TABLE.MEMO02 is 'メモ02'; * 行1でエラーが発生しました。: ORA-00904: "MEMO02": 無効な識別子です。

TEST_TABLEテーブルに"MEMO02"列が存在しない例です。

対処法

  • 正しい列名を指定する
  • 文字列リテラルは「"」(ダブルクォーテーション)ではなく、「'」(シングルクォーテーション)で囲う

スポンサーリンク

スポンサーリンク

-ORACLE機能, ORAエラー

執筆者:



comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

スポンサーリンク