Rumah >pangkalan data >tutorial mysql >Bagaimana Menggunakan INSERT SELECT dengan betul dalam Oracle 11g untuk Mengelakkan ORA-00936?
Dalam Oracle 11G, pernyataan INSERT SELECT membenarkan pemindahan data yang cekap dari satu jadual ke jadual lain menggunakan subquery. Walau bagaimanapun, pengguna mungkin menghadapi ralat yang tidak dijangka jika sintaks mereka tidak betul.
Pertanyaan Pengguna:
Seorang pengguna cuba memasukkan hasil subkueri ke dalam jadual baharu menggunakan pernyataan berikut:
insert into table1 (col1, col2) values (select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2);
Walau bagaimanapun, pengguna menghadapi perkara berikut ralat:
SQL Error: ORA-00936: missing expression
Penyelesaian:
Sintaks yang disediakan tidak betul. Pernyataan INSERT SELECT dalam Oracle tidak memerlukan kata kunci VALUES, yang biasa digunakan dalam dialek SQL yang lain. Sintaks yang betul hendaklah:
insert into table1 (col1, col2) select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2
Dalam erti kata lain, hanya alih keluar kata kunci VALUES dari permulaan pernyataan. Ini akan membolehkan Oracle melaksanakan pertanyaan INSERT SELECT dengan betul, memasukkan hasil subkueri ke dalam jadual1.
Atas ialah kandungan terperinci Bagaimana Menggunakan INSERT SELECT dengan betul dalam Oracle 11g untuk Mengelakkan ORA-00936?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!