Saya yakin kueri di bawah ini berfungsi, saya belum mengujinya!
INSERT INTO Test (b)
SELECT * FROM
(
SELECT 'z' FROM dual
UNION ALL
SELECT 'zz' FROM dual
);
Tidak yakin, apakah itu membantu Anda.
Untuk, GENERATED ALWAYS AS IDENTITY Oracle secara internal hanya menggunakan Urutan. Dan opsi pada Urutan umum juga berlaku untuk ini.
NEXTVAL digunakan untuk mengambil urutan berikutnya yang tersedia, dan jelas itu adalah kolom semu.
Di bawah ini dari Oracle
Anda tidak dapat menggunakan CURRVAL dan NEXTVAL dalam konstruksi berikut:
- Sebuah subkueri dalam
DELETE,SELECT, atauUPDATEpernyataan - Kueri tampilan atau tampilan terwujud
- Pernyataan SELECT dengan operator DISTINCT
- Pernyataan SELECT dengan klausa GROUP BY atau klausa ORDER BY
- Sebuah
SELECTpernyataan yang digabungkan denganSELECTlain pernyataan dengan UNION,INTERSECT, atauMINUSsetel operator - Klausa WHERE dari pernyataan SELECT
- Nilai DEFAULT kolom dalam pernyataan CREATE TABLE atau ALTER TABLE
- Kondisi batasan CHECK
subquery dan SET aturan operasi di atas harus menjawab Pertanyaan Anda.
Dan untuk alasan NULL, ketika pseudocolumn (mis. NEXTVAL) digunakan dengan operasi SET atau aturan lain yang disebutkan di atas, outputnya adalah NULL, karena Oracle tidak dapat mengekstraknya dengan menggabungkan beberapa pilihan.
Mari kita lihat kueri di bawah ini,
select rownum from dual
union all
select rownum from dual
hasilnya adalah
ROWNUM
1
1