Rumah >pangkalan data >tutorial mysql >Bagaimana Menggunakan INSERT SELECT dengan betul dalam Oracle 11g untuk Mengelakkan ORA-00936?

Bagaimana Menggunakan INSERT SELECT dengan betul dalam Oracle 11g untuk Mengelakkan ORA-00936?

DDD
DDDasal
2024-12-23 20:12:10954semak imbas

How to Correctly Use INSERT SELECT in Oracle 11g to Avoid ORA-00936?

Memasukkan Data melalui SELECT Query dalam Oracle 11G

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!

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