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

Oracle クエリで ORA-00904: Invalid Identifier が発生するのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-17 08:42:09866ブラウズ

Why Does My Oracle Query Result in ORA-00904: Invalid Identifier?

ORA-00904: 無効な識別子解析エラー

問題の説明:

Oracle データベースで内部結合クエリを実行すると、次のエラーが発生します:

<code class="language-sql">ORA-00904: "TEAM"."DEPARTMENT_CODE": invalid identifier</code>

根本原因:

エラーの根本的な原因は、クエリ内のテーブル名と列名での二重引用符の使用です。 Oracle Databaseでは、オブジェクト名がすべて大文字であるか、引用符なしである必要があります。

解決策:

この問題を解決するには、クエリ内のテーブル名と列名から二重引用符を削除し、DDL スクリプトでテーブルを作成するときに二重引用符を使用しないようにします。

正しい SQL クエリは次のとおりです:

<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>

DDL スクリプトでは二重引用符の使用を避けてください:

ベスト プラクティスは、DDL スクリプトで二重引用符を使用しないことです。すべて大文字の名前を使用することをお勧めします:

<code class="language-sql">CREATE TABLE HRMS.PS_TBL_DEPARTMENT_DETAILS
(
  Company_Code VARCHAR2(255),
  Company_Name VARCHAR2(255),
  Sector_Code VARCHAR2(255),
  Sector_Name VARCHAR2(255),
  Business_Unit_Code VARCHAR2(255),
  Business_Unit_Name VARCHAR2(255),
  Department_Code VARCHAR2(255),
  Department_Name VARCHAR2(255),
  HR_ORG_ID VARCHAR2(255),
  HR_ORG_Name VARCHAR2(255),
  Cost_Center_Number VARCHAR2(255)
)</code>

このアプローチにより、柔軟性が向上し、大文字と小文字の矛盾による潜在的なエラーが回避されます。 DDL の例では、冗長な " " 列が削除されていることに注意してください。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。