首頁 >資料庫 >mysql教程 >為什麼我的 Oracle 查詢結果為 ORA-00904:無效識別碼?

為什麼我的 Oracle 查詢結果為 ORA-00904:無效識別碼?

Barbara Streisand
Barbara Streisand原創
2025-01-17 08:42:09866瀏覽

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

ORA-00904: Invalid Identifier 錯誤解析

問題描述:

在 Oracle 資料庫執行內連線查詢時,出現下列錯誤:

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

根本原因:

錯誤的根源在於查詢中表名和列名使用了雙引號。 Oracle 資料庫要求物件名稱全部大寫或不使用引號。

解:

要解決此問題,請從查詢中的表名和列名中刪除雙引號,並在 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:無效識別碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn