簡體   English   中英

在 Oracle INSERT ALL 語句中選擇 Select 列

[英]Choosing Select Columns in Oracle INSERT ALL Statement

我在 Oracle 中使用INSERT ALL語句將數據插入到兩個不同的表中。 數據來自相當復雜的子查詢而不是VALUES子句。

我的問題是我不想將子查詢返回的所有列都插入到兩個表中。

作為一個簡單的示例,假設我有兩個表tab1tab2 ,每個表包含三列col1col2col3

現在假設我的子查詢返回一行,其中包含值ABC

所以,我想分別ABC插入到tab1col1col2col3中,但是我只想AC到 go 插入到tab2col1col3中。

我的陳述看起來像這樣:

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;

參見http://psoug.org/reference/insert.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM