Menyelesaikan masalah Ralat "ORA-00936" dengan Pernyataan INSERT SELECT dalam Oracle 11G
Ralat "ORA-00936: missing expression" boleh timbul apabila melaksanakan pernyataan INSERT SELECT dalam Oracle 11G. Mari kita analisa kes tertentu untuk menyelesaikan isu ini.
Masalah:
Pernyataan SQL cuba memasukkan data daripada subkueri ke dalam jadual:
insert into table1 (col1, col2) values (select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2);
Subquery, apabila dilaksanakan secara berasingan, beroperasi dengan betul, mendapatkan semula baris daripada dua jadual, oldtable1 dan meja lama2. Walau bagaimanapun, apabila dilaksanakan sebagai sumber data untuk pernyataan INSERT, ralat "ORA-00936: missing expression" ditemui.
Penyelesaian:
Ralat berpunca daripada sintaks yang salah dalam pernyataan INSERT. Kata kunci VALUES tidak diperlukan apabila menggunakan pernyataan SELECT untuk mengisi jadual sasaran. Sintaks yang betul hendaklah:
insert into table1 (col1, col2) select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2
Dengan meninggalkan bahagian VALUES, pernyataan INSERT melaksanakan subkueri dengan betul dan mengisi jadual1 dengan data yang dipilih.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan 'ORA-00936: ekspresi hilang' dalam Oracle 11g INSERT SELECT Penyata?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!