Rumah > pangkalan data > tutorial mysql > Mengapa Pertanyaan Oracle Saya Menghasilkan ORA-00904: Pengecam Tidak Sah?

Mengapa Pertanyaan Oracle Saya Menghasilkan ORA-00904: Pengecam Tidak Sah?

Barbara Streisand
Lepaskan: 2025-01-17 08:42:09
asal
864 orang telah melayarinya

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

ORA-00904: Penghuraian ralat Pengecam Tidak Sah

Penerangan masalah:

Apabila melaksanakan pertanyaan gabungan dalaman dalam pangkalan data Oracle, ralat berikut berlaku:

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

Punca Punca:

Punca ralat ialah penggunaan petikan berganda dalam nama jadual dan nama lajur dalam pertanyaan. Pangkalan Data Oracle memerlukan nama objek dalam semua huruf besar atau tanpa petikan.

Penyelesaian:

Untuk menyelesaikan isu ini, alih keluar petikan berganda daripada nama jadual dan lajur dalam pertanyaan dan juga jangan gunakan petikan berganda semasa membuat jadual dalam skrip DDL.

Pertanyaan SQL yang betul adalah seperti berikut:

<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>
Salin selepas log masuk

Elakkan menggunakan petikan berganda dalam skrip DDL:

Amalan terbaik ialah mengelak daripada menggunakan petikan berganda dalam skrip DDL. Adalah disyorkan untuk menggunakan nama huruf besar:

<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>
Salin selepas log masuk

Pendekatan ini memberikan fleksibiliti yang lebih besar dan mengelakkan kemungkinan ralat akibat selongsong yang tidak konsisten. Ambil perhatian bahawa lajur " " berlebihan dalam contoh DDL telah dialih keluar.

Atas ialah kandungan terperinci Mengapa Pertanyaan Oracle Saya Menghasilkan ORA-00904: Pengecam Tidak Sah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan