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
, atauUPDATE
pernyataan - Kueri tampilan atau tampilan terwujud
- Pernyataan SELECT dengan operator DISTINCT
- Pernyataan SELECT dengan klausa GROUP BY atau klausa ORDER BY
- Sebuah
SELECT
pernyataan yang digabungkan denganSELECT
lain pernyataan dengan UNION,INTERSECT
, atauMINUS
setel 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