Ralat ORA-00904 Oracle: Pengecam Tidak Sah dalam Gabungan Dalam
Pengguna Oracle kerap menghadapi ralat "ORA-00904: pengecam tidak sah" apabila melaksanakan pertanyaan gabungan dalaman. Ralat ini biasanya berpunca daripada penggunaan petikan berganda yang tidak konsisten apabila merujuk objek pangkalan data (jadual dan lajur).
Contohnya, jika jadual, seperti "PS_TBL_DEPARTMENT_DETAILS," dicipta menggunakan petikan berganda di sekeliling namanya, semua rujukan seterusnya kepada jadual itu dan lajurnya mesti turut menyertakan petikan berganda. Mengabaikan petikan ini akan mencetuskan ralat "pengecam tidak sah". Oracle dengan tegas menguatkuasakan kepekaan huruf apabila petikan berganda digunakan; kes dan petikan mestilah sepadan dengan definisi asal.
Penyelesaian dan Amalan Terbaik
Penyelesaian melibatkan sama ada mengalih keluar petikan berganda daripada pernyataan penciptaan jadual atau memastikan penggunaan petikan berganda yang konsisten dalam semua rujukan.
Untuk mengelakkan masalah kepekaan huruf besar-besaran, adalah disyorkan untuk mencipta objek pangkalan data menggunakan nama huruf besar tanpa petikan berganda. Ini membolehkan rujukan tidak peka huruf besar-kecil.
Contoh Ilustrasi:
Mari buat jadual tanpa petikan berganda:
<code class="language-sql">CREATE TABLE PS_TBL_DEPARTMENT_DETAILS ( DEPTID VARCHAR2(255) PRIMARY KEY, DEPT_NAME VARCHAR2(255) );</code>
Kini, pertanyaan boleh ditulis dalam apa jua keadaan tanpa petikan berganda:
<code class="language-sql">SELECT * FROM PS_TBL_DEPARTMENT_DETAILS; SELECT dept_name FROM PS_TBL_DEPARTMENT_DETAILS WHERE deptid = 'BAH';</code>
Pengambilan Utama: Untuk mengelakkan ralat ORA-00904 dan mengekalkan kejelasan kod, elakkan menggunakan petikan berganda dalam skrip Bahasa Definisi Data (DDL) anda apabila boleh. Menggunakan nama huruf besar tanpa petikan ialah amalan terbaik untuk mengelakkan isu sensitiviti huruf besar.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat ORA-00904 dalam Pertanyaan Sertai Dalaman Oracle Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!