Rumah > pangkalan data > tutorial mysql > Mengapa Adakah 'PILIH * KE new_table DARI old_table;' Gagal dalam Oracle dan Bagaimana Saya Boleh Mencipta Jadual Baharu dengan Betul?

Mengapa Adakah 'PILIH * KE new_table DARI old_table;' Gagal dalam Oracle dan Bagaimana Saya Boleh Mencipta Jadual Baharu dengan Betul?

Barbara Streisand
Lepaskan: 2025-01-05 10:04:44
asal
539 orang telah melayarinya

Why Does

ELECT IN Unexpected Mischief in Oracle

Dalam bidang SQL, pernyataan SELECT INTO memegang kedudukan yang menonjol, membolehkan pengekstrakan data yang mudah dan sisipan ke destinasi baharu. Walau bagaimanapun, dalam konteks dialek unik Oracle, operasi ini mendedahkan kelainan yang mengejutkan.

Bertentangan dengan jangkaan konvensional, pertanyaan "SELECT * INTO new_table FROM old_table;" mencetuskan ralat yang tidak dijangka: "Ralat SQL: ORA-00905: kata kunci hilang." Anomali ini berpunca daripada tafsiran Oracle yang berbeza tentang klausa INTO.

Menyingkap Pelaksanaan Oracle

Oracle menyimpang daripada gelagat SELECT INTO standard, memilih pendekatan alternatif. Jika jadual sasaran sudah wujud, Oracle melaksanakan operasi INSERT INTO tersirat, mematuhi sintaks berikut:

insert into new_table
select * from old_table
/
Salin selepas log masuk

Sebagai alternatif, untuk mencipta jadual serba baharu berdasarkan rekod sedia ada, Oracle menggunakan sintaks berikut:

create table new_table as
select * from old_table
/
Salin selepas log masuk

Menariknya, Oracle turut menawarkan penyelesaian untuk mencipta jadual:

create table new_table as
select * from old_table
where 1 = 2
/
Salin selepas log masuk

Dengan menambahkan klausa WHERE dengan keadaan yang sememangnya palsu, Oracle dengan bijak membina jadual kosong tanpa menyalin data daripada sumber.

Pendekatan tersendiri Oracle untuk SELECT INTO membentangkan pelepasan daripada norma yang ditetapkan, menarik pembangun untuk menyesuaikan diri dengan sintaks dan semantiknya yang unik. Walau bagaimanapun, di sebalik kejutan awal, sisihan ini menawarkan fleksibiliti dan kawalan ke atas manipulasi data dalam ekosistem pangkalan data Oracle yang luas.

Atas ialah kandungan terperinci Mengapa Adakah 'PILIH * KE new_table DARI old_table;' Gagal dalam Oracle dan Bagaimana Saya Boleh Mencipta Jadual Baharu dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan