簡體   English   中英

帶有子查詢的Oracle插入語句返回多於1行

[英]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.

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