Rumah > pangkalan data > tutorial mysql > Mengapa pertanyaan menyertai Oracle SQL saya mengembalikan ORA-00904: Pengecam Tidak Sah?

Mengapa pertanyaan menyertai Oracle SQL saya mengembalikan ORA-00904: Pengecam Tidak Sah?

Susan Sarandon
Lepaskan: 2025-01-17 08:52:11
asal
283 orang telah melayarinya

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

Menyelesaikan masalah ORA-00904: Pengecam Tidak Sah dalam Oracle SQL Joins

Pertanyaan join Oracle SQL kadangkala boleh membuang ralat ORA-00904: invalid identifier. Ralat ini menandakan masalah dengan pengecam (nama jadual atau lajur) yang digunakan dalam pertanyaan anda.

Punca Punca:

Ralat ini biasanya timbul daripada merujuk objek pangkalan data yang tidak wujud atau salah dikenal pasti. Penyebab biasa termasuk kesilapan menaip dalam nama jadual atau lajur, atau menggunakan selongsong yang salah.

Contoh Ilustrasi:

Pertimbangkan pertanyaan ini:

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

Pertanyaan ini mungkin menghasilkan ralat ORA-00904 kerana "Pasukan" disertakan dalam petikan berganda. Oracle menganggap pengecam disebut dua kali sebagai sensitif huruf besar. Oleh itu, "Team.DEPARTMENT_CODE" berbeza daripada "team.DEPARTMENT_CODE".

Penyelesaian:

Untuk membetulkannya, sahkan semua pengecam dalam pertanyaan anda terhadap skema pangkalan data sebenar. Perhatikan dengan teliti ejaan, huruf besar, dan kehadiran sebarang petikan berganda yang tidak perlu. Oracle adalah tidak peka huruf besar secara lalai melainkan anda menggunakan petikan berganda.

Versi contoh pertanyaan yang diperbetulkan ialah:

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

(Nota: Walaupun contoh tidak menunjukkan perbezaan yang ketara, mungkin asal mempunyai kes yang tidak sepadan dalam skema pangkalan data yang tidak kelihatan di sini. Sentiasa semak semula nama objek pangkalan data anda.) Mengalih keluar petikan berganda yang tidak perlu juga merupakan langkah penting.

Atas ialah kandungan terperinci Mengapa pertanyaan menyertai Oracle SQL saya mengembalikan 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