ORACLE機能 ORAエラー

[ORAエラー] ORA-00918: 列の定義が未確定です。

投稿日:

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

(日本語)
ORA-00918: 列の定義が未確定です。
(英語)
ORA-00918: column ambiguously defined

発生パターン

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

  • where句で指定したカラム名が一意に認識できない。
    (複数のテーブルを結合した時に同じ名称のカラムが存在する場合、そのカラム名のみを指定して条件指定すると、どのテーブルのカラムか判断できないためエラーとなります。)
エラー例
SQL> SELECT * FROM tbl01 INNER JOIN tbl02 2 ON tbl01.id = tbl02.id 3 WHERE id = 'XX' 4 / WHERE id = 'XX' * 行3でエラーが発生しました。: ORA-00918: 列の定義が未確定です。

この場合、where句に指定したidが tbl01のidかtbl02のidか判断が付きません。
 3行目を「WHERE tbl01.id = 'XX'」のようにすればエラーは解消します。

対処法

  • エラー対象のカラム名にテーブル名も指定する。

スポンサーリンク

スポンサーリンク

-ORACLE機能, ORAエラー

執筆者:


comment

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

関連記事

ORACLE

[データディクショナリ] スケジューラジョブの情報を取得する

スケジューラジョブの情報を参照するには、 SCHEDULER_JOBSデータディクショナリビューを参照します。 SCHE ...
ORACLE

[V$表] 実行されたSQLの情報を取得する(V$SQL)

実行されたSQLの情報を参照するには、V$SQLビューを参照します。 V$SQLの定義 V$SQLの定義です。 【V$S ...
ORACLE

[ORAエラー] ORA-00933: SQLコマンドが正しく終了されていません。

以下のように表示されます。 (日本語) ORA-00933: SQLコマンドが正しく終了されていません。 (英語) OR ...
ORACLE

[ORAエラー] ORA-01578: Oracleデータ・ブロックに障害が発生しました

以下のように表示されます。 (日本語) ORA-01578: Oracleデータ・ブロックに障害が発生しました (英語) ...
ORACLE

[ORACLE関数] 絶対値を求める(ABS)

絶対値を求めるには、ABS関数を使用します。 構文 (絶対値を求める構文) ABS(<数値>) サンプルコード 例)-1 ...

スポンサーリンク