Tôi tin rằng truy vấn dưới đây hoạt động, tôi chưa thử nghiệm!
INSERT INTO Test (b)
SELECT * FROM
(
SELECT 'z' FROM dual
UNION ALL
SELECT 'zz' FROM dual
);
Không chắc, nếu nó giúp bạn theo bất kỳ cách nào.
Đối với, GENERATED ALWAYS AS IDENTITY
Nội bộ Oracle chỉ sử dụng một Trình tự. Và các tùy chọn về Trình tự chung cũng áp dụng cho điều này.
NEXTVAL được sử dụng để tìm nạp chuỗi có sẵn tiếp theo và rõ ràng nó là một cột giả.
Dưới đây là của Oracle
Bạn không thể sử dụng CURRVAL
và NEXTVAL
trong các cấu trúc sau:
- Một truy vấn con trong
DELETE
,SELECT
hoặcUPDATE
tuyên bố - Một truy vấn về một chế độ xem hoặc một chế độ xem cụ thể hóa
- Câu lệnh SELECT với toán tử DISTINCT
- Câu lệnh SELECT với mệnh đề GROUP BY hoặc mệnh đề ORDER BY
- Một
SELECT
câu lệnh được kết hợp với mộtSELECT
khác tuyên bố với UNION,INTERSECT
hoặcMINUS
toán tử đặt - Mệnh đề WHERE của câu lệnh SELECT
- Giá trị DEFAULT của một cột trong câu lệnh CREATE TABLE hoặc ALTER TABLE
- Điều kiện của ràng buộc KIỂM TRA
subquery
và SET
quy tắc hoạt động ở trên sẽ trả lời Câu hỏi của bạn.
Và vì lý do NULL, khi pseudocolumn
(ví dụ:NEXTVAL) được sử dụng với phép toán SET hoặc bất kỳ quy tắc nào khác được đề cập ở trên, đầu ra là NULL, vì Oracle không thể trích xuất chúng khi kết hợp nhiều lựa chọn.
Hãy cho chúng tôi xem truy vấn dưới đây,
select rownum from dual
union all
select rownum from dual
kết quả là
ROWNUM
1
1