[英]Choosing Select Columns in Oracle INSERT ALL Statement
我在 Oracle 中使用INSERT ALL
語句將數據插入到兩個不同的表中。 數據來自相當復雜的子查詢而不是VALUES
子句。
我的問題是我不想將子查詢返回的所有列都插入到兩個表中。
作為一個簡單的示例,假設我有兩個表tab1
和tab2
,每個表包含三列col1
、 col2
和col3
。
現在假設我的子查詢返回一行,其中包含值A
、 B
和C
。
所以,我想分別A
、 B
和C
插入到tab1
的col1
、 col2
和col3
中,但是我只想A
和C
到 go 插入到tab2
的col1
和col3
中。
我的陳述看起來像這樣:
INSERT ALL
INTO tab1
(col1, col2, col3)
INTO tab2
(col1, ?, col3)
FROM
( ...
complex subquery which returns A, B, C
...
)
有沒有一種方法可以使用某種“填充物”或“垃圾欄”來實現我的目標?
是的:
INSERT ALL
INTO tab1
(col1, col2, col3) values (a, b, c)
INTO tab2
(col1, col3) values (a, c)
SELECT a, b, c
FROM
( ...
complex subquery which returns A, B, C
...
)
這種語法是可能的
INSERT ALL
INTO ap_cust(f1, f2) VALUES (a, d)
INTO ap_orders(f1, f2, f3) VALUES (a, b, c)
SELECT a, b, c,d
FROM table;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.