Rumah >pangkalan data >tutorial mysql >Mengapa Saya Mendapat ORA-00904: 'pengecam tidak sah' Apabila Menyoal Jadual Oracle Saya?

Mengapa Saya Mendapat ORA-00904: 'pengecam tidak sah' Apabila Menyoal Jadual Oracle Saya?

Susan Sarandon
Susan Sarandonasal
2024-12-23 13:06:12245semak imbas

Why Am I Getting ORA-00904:

ORA-00904 Ralat: Pengecam Tidak Sah

Masalah:

Apabila cuba mendapatkan data daripada jadual menggunakan pertanyaan mudah di mana klausa WHERE menyertakan syarat pada nilai lajur, yang anda temui ralat ORA-00904 menunjukkan pengecam tidak sah.

Sebagai contoh, anda mempunyai jadual bernama reg1 dibuat dengan lajur berikut:

create table reg1 (
  fname varchar2(30),
  lname varchar2(30),
  addr varchar2(30),
  mail varchar2(30),
  occu varchar2(30),
  uname varchar2(30),
  passwd varchar2(30)
);

Walau bagaimanapun, apabila melaksanakan pertanyaan untuk mengambil yang pertama nama (fname) dan nama akhir (lname) pengguna dengan nama pengguna 'bbb' seperti:

select fname, lname
  from reg1
 where uname="bbb";

Anda menerima ralat ORA-00904: "bbb": pengecam tidak sah.

Jawapan:

Ralat berlaku kerana nilai yang anda bandingkan dalam klausa WHERE tidak disertakan dalam petikan tunggal. Dalam Oracle, apabila membandingkan nilai rentetan, anda perlu memetiknya dengan petikan tunggal untuk menunjukkan bahawa ia adalah literal.

Untuk menyelesaikan isu, cuma tambah petikan tunggal di sekitar nilai 'bbb':

select fname, lname
  from reg1
 where uname='bbb';

Dengan pembetulan ini, pertanyaan akan berjaya mengambil data untuk pengguna dengan nama pengguna 'bbb', kerana perbandingan kini dianggap betul sebagai rentetan literal perbandingan.

Atas ialah kandungan terperinci Mengapa Saya Mendapat ORA-00904: 'pengecam tidak sah' Apabila Menyoal Jadual Oracle Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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