ホームページ > データベース > mysql チュートリアル > Oracle SQL 結合クエリが ORA-00904: Invalid Identifier を返すのはなぜですか?

Oracle SQL 結合クエリが ORA-00904: Invalid Identifier を返すのはなぜですか?

Susan Sarandon
リリース: 2025-01-17 08:52:11
オリジナル
283 人が閲覧しました

Why is my Oracle SQL join query returning ORA-00904: Invalid Identifier?

ORA-00904 のトラブルシューティング: Oracle SQL 結合の識別子が無効です

Oracle SQL 結合クエリでは、ORA-00904: invalid identifier エラーがスローされる場合があります。このエラーは、クエリで使用されている識別子 (テーブル名または列名) に問題があることを示します。

根本原因:

このエラーは通常、存在しないデータベース オブジェクトを参照したり、誤って識別されたデータベース オブジェクトを参照したりすることで発生します。 一般的な原因には、テーブル名または列名のタイプミス、または大文字と小文字の区別が正しくないことが含まれます。

例:

次のクエリについて考えてみましょう:

<code class="language-sql">SELECT Employee.EMPLID as EmpID, 
       Employee.FIRST_NAME AS Name,
       Team.DEPARTMENT_CODE AS TeamID, 
       Team.Department_Name AS teamname
FROM PS_TBL_EMPLOYEE_DETAILS Employee
INNER JOIN PS_TBL_DEPARTMENT_DETAILS Team 
ON Team.DEPARTMENT_CODE = Employee.DEPTID;</code>
ログイン後にコピー
ログイン後にコピー

「Team」が二重引用符で囲まれているため、このクエリでは ORA-00904 エラーが発生する可能性があります。 Oracle では、二重引用符で囲まれた識別子は大文字と小文字が区別されるものとして扱われます。したがって、「Team.DEPARTMENT_CODE」は「team.DEPARTMENT_CODE」とは異なります。

解決策:

これを修正するには、クエリ内のすべての識別子を実際のデータベース スキーマと照合して検証します。 スペル、大文字と小文字の区別、および不要な二重引用符の存在に細心の注意を払ってください。 Oracle では、二重引用符を使用しない限り、デフォルトで大文字と小文字が区別されません。

クエリ例の修正版は次のようになります:

<code class="language-sql">SELECT Employee.EMPLID as EmpID, 
       Employee.FIRST_NAME AS Name,
       Team.DEPARTMENT_CODE AS TeamID, 
       Team.Department_Name AS teamname
FROM PS_TBL_EMPLOYEE_DETAILS Employee
INNER JOIN PS_TBL_DEPARTMENT_DETAILS Team 
ON Team.DEPARTMENT_CODE = Employee.DEPTID;</code>
ログイン後にコピー
ログイン後にコピー

(注: この例では明らかな違いは示されていませんが、元の ではデータベース スキーマ内で大文字と小文字が一致していない可能性があります。これはここには表示されていません。常にデータベース オブジェクト名を再確認してください。)不要な二重引用符も重要なステップです。

以上がOracle SQL 結合クエリが ORA-00904: Invalid Identifier を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート