Deskripsi
ORA-00936 :ekspresi hilang adalah salah satu kesalahan umum yang harus dihadapi semua orang yang bekerja di Oracle SQL selama beberapa waktu. Ini biasanya terjadi ketika Anda menghilangkan hal penting dalam pernyataan Sql yaitu Anda meninggalkan bagian penting dari apa yang Anda coba jalankan
Referensi :Dokumentasi Oracle
Penyebab ORA-00936 :ekspresi hilang
Kesalahan Oracle ini terutama terkait dengan pernyataan SQL SELECT. Salah satu alasan yang jelas adalah daftar kolom pilihan tidak ada atau ekspresi di kolom yang dipilih tidak lengkap.
Periksa daftar untuk dijalankan untuk mengatasi kesalahan ekspresi yang hilang ORA-00936
(1) Itu terjadi ketika Anda lupa mencantumkan kolom dalam pernyataan pilih
Select from mrp_details; select from mrp_details; ERROR at line 1: ORA-00936: missing expression
Cara yang benar adalah daftar kolom yang ingin Anda pilih
Select col1,col2 from mrp_details;
(2) Kami terkadang membuat kesalahan dalam penggunaan pernyataan Distinct. Pernyataan berikut akan gagal dengan ORA-00936
select distinct a, b,c,d, distinct e from tab_example where b=’ABCD’ and c =1 and d= ‘JOHN’ ERROR at line 1: ORA-00936: missing expression
Memiliki dua klausa yang berbeda tidak masuk akal dan memberikan kesalahan
Contoh lain
select a, b,c,d, distinct e from tab_example where b=’ABCD’ and c =1 and d= ‘JOHN’ ERROR at line 1: ORA-00936: missing expression
berbeda dapat digunakan di awal saja
Jadi pernyataan yang benar adalah
select distinct a, b,c,d, e from tab_example where b=’ABCD’ and c =1 and d= ‘JOHN’
(3) Kesalahan ini disebabkan ketika bagian dari ekspresi dihilangkan, beberapa contohnya adalah
select 2**8 from dual; select 2**8 from dual; ERROR at line 1: ORA-00936: missing expression
** operator bekerja di PLSQL tetapi tidak di SQL, Kita perlu menggunakan fungsi Power untuk itu, Jadi cara yang benar adalah
select power(2,3) from dual; POWER(2,3) -------- 8
(4) Contoh lain
select dept_name||' '|| from dept; select dept_name||' '|| from dept ERROR at line 1: ORA-00936: missing expression
Di sini Anda lupa menyebutkan nama kolom setelah operator penggabungan, SQL yang benar adalah
select dept_name||' '||dept_no from dept;
(5) Ketika Anda menambahkan koma tambahan dalam daftar kolom
select dept_no, dept_name, ,dept_location from dept_table; select dept_no, dept_name, ,dept_location from dept_table; ERROR at line 1: ORA-00936: missing expression
Jadi kita perlu memeriksa ulang pernyataan SQL ketika kita menemukan kesalahan ini dan pastikan kita melakukan kesalahan umum
(6) Kesalahan ini juga akan muncul jika Anda menghilangkan Dari dalam pernyataan SQL
select dept_no, dept_name, ,dept_location where dept_name like ‘A%’; select dept_no, dept_name, ,dept_location where dept_name like ‘A%’; ERROR at line 1: ORA-00936: missing expression
Di sini kami melewatkan untuk menyebutkan dari klausa. Pernyataan SELECT memiliki tiga bagian:yaitu:“SELECT->FROM->WHERE
Anda dapat menghilangkan klausa where tetapi pilih dan dari diperlukan
select dept_no, dept_name, ,dept_location from dept_table where dept_name like ‘A%’;
(7) Bisa juga terjadi pada pernyataan insert seperti di bawah ini
insert into table1 (col1,col2) values as select col1,col2 from table2; ERROR at line 1: ORA-00936: missing expression
Kami tidak membutuhkan nilai seperti dalam pernyataan ini
insert into table1 (col1,col2) select col1,col2 from table2;
(8) Terkadang kita dapat mencampuradukkan fungsi yang ditentukan pengguna dan fungsi Oracle, dan hal itu dapat menyebabkan sintaks yang membingungkan yang akan menghasilkan pesan kesalahan. Jadi, hindarilah
(9) Ada beberapa bug Oracle juga
(a) Bug:4567818 base Bug#:4192148 – tidak dipublikasikan di 9207
(b) Bug:4212516 (tidak dipublikasikan) di Oracle 10.1.0.4.0.
Dengan bug ini, kesalahan ORA-00936 muncul saat tampilan SELECT ON gagal. Pada dasarnya, ORA-00936 dilempar ketika tampilan SQL dibuat dari "buat atau ganti tampilan MY_VIEW sebagai pilih t.*,other_tab_col dari tab t, tab_lain". Ini menciptakan definisi tampilan yang salah di DBA_VIEWS, sehingga membuang ORA- 00936 dan kemungkinan core dumps. Untuk memperbaiki bug dan mengatasi ORA-00936, MetaLink menawarkan solusi ini untuk versi yang sesuai:
Perbaiki untuk 9.2.0.7 :Patch 4192148 tersedia untuk Solaris (64bit) dan Sistem Berbasis AIX5L (64-bit). Perbaikan untuk 10.1.0.4 :
Patch 4212516 tersedia untuk sebagian besar platform.
Singkatnya, ORA-00936 tidak ada ekspresi dapat diselesaikan dengan memeriksa pernyataan SQL Anda dengan cermat.
Artikel terkaitORA-00911:karakter tidak valid
ORA-03113:akhir file pada saluran komunikasi
ORA-00257
ORA-27154:pembuatan posting/tunggu gagal saat startup
ORA-29913 dengan tabel eksternal
ora-20001 dalam Mengumpulkan statistik skema pada 11g(FND_HISTOGRAM_COLS)
Pengelola Bersamaan:cleanup_node gagal karena ORA-01427