[英]Oracle insert statement with sub-query returning more than 1 row
我有一張桌子(L)像這樣:
L_ID L_CODE EFFECTIVE_DATE EXPIRY_DATE CLIENT_NUM
1 123 1/1/2014 12/31/2014 ABC
2 123 1/1/2015 6/1/2015 ABC
3 123 6/2/2015 12/31/9999 ABC
我在PL / SQL包中有一個插入語句,如下所示:
INSERT INTO LE (l_email_id,
l_id,
source,
contact_name,
contact_phone,
email_address,
effective_date,
expiry_date,
created_by,
create_timestamp,
updated_by,
update_timestamp)
VALUES (
SEQ_LE.NEXTVAL,
(SELECT l_id
FROM L
WHERE client_num = in_client_num
AND UPPER (l_code) = UPPER (in_l_code)
AND in_year BETWEEN EXTRACT(YEAR FROM effective_date)
AND EXTRACT(YEAR FROM expiry_date)),
'JURIS',
NULL,
NULL,
TRIM (v_email_address_a (v_index_a)),
TRUNC (SYSDATE),
(ADD_MONTHS (TRUNC (SYSDATE, 'YEAR'), 12) - 1),
(SELECT ad_user
FROM OAU
WHERE ad_user_id = in_ad_user_id),
SYSTIMESTAMP,
(SELECT ad_user
FROM OAU
WHERE ad_user_id = in_ad_user_id),
SYSTIMESTAMP);
如果in_year
是2015,則對L
表的子查詢將檢索l_id
的2和3。我的問題是,如何插入兩個l_id
? 不會總是有2條記錄,有時也可能有1條或多於2條。
當插入這樣的多行時,最好的操作是這樣的語句
Insert into YourTable (col1,col2,..) select (exp1,exp2,...)
您可以在選擇中使用聯接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.