Oracle 游标的例子(待完善)

Create or replace procedure SRS_DELI_CREDENCE_EX2_COPY
(
    ZH_MARK_DIV  IN Varchar2
)
is
    v_v01 SRS_B_SALES_AMOUNT.SITE_CD%TYPE;
    v_v02 SRS_B_SALES_AMOUNT.SAL_SLIP_NO%TYPE;
    v_v03 SRS_B_SALES_AMOUNT.FROM_TYP%TYPE;
    v_v04 SRS_B_SALES_AMOUNT.DELI_INST_NO%TYPE;
    v_v05 SRS_B_SALES_AMOUNT.ORD_NO%TYPE;
    v_v06 SRS_B_SALES_AMOUNT.ORD_LINE_NO%TYPE;
    v_v07 SRS_B_SALES_AMOUNT.CUS_CD%TYPE;
    v_v08 SRS_B_SALES_AMOUNT.INVOICE_NO%TYPE;
    v_v09 SRS_B_SALES_AMOUNT.INVOICE_DATE%TYPE;
    v_v10 SRS_B_SALES_AMOUNT.MARK_DIV%TYPE;
    v_v11 SRS_B_SALES_AMOUNT.PRODUCT_GRP_CD%TYPE;
    v_v12 SRS_B_SALES_AMOUNT.SALES_ITEM_CD%TYPE;
    v_v13 SRS_B_SALES_AMOUNT.STOCK_ITEM_CD%TYPE;
    v_v14 SRS_B_SALES_AMOUNT.DELI_QTY%TYPE;
    v_v15 SRS_B_SALES_AMOUNT.UNIT_PRICE%TYPE;
    v_v16 SRS_B_SALES_AMOUNT.SAL_AMOUNT%TYPE;
    v_v17 SRS_B_SALES_AMOUNT.EXCH_RATE%TYPE;
    v_v18 SRS_B_SALES_AMOUNT.TAX_CD%TYPE;
    v_v19 SRS_B_SALES_AMOUNT.CUR_CD%TYPE;
    v_v20 SRS_B_SALES_AMOUNT.DELI_DATE%TYPE;
    v_v21 SRS_B_SALES_AMOUNT.CAN_TAKE_FLG%TYPE;
    v_v22 SRS_B_SALES_AMOUNT.IS_TAKE_FLG%TYPE;
    v_v23 SRS_B_SALES_AMOUNT.SAL_DATE%TYPE;
    v_v24 SRS_B_SALES_AMOUNT.OLD_SAL_SLIP_NO%TYPE;
    v_temp SRS_B_SALES_AMOUNT.SAL_SLIP_NO%TYPE;
    cursor mycursor1 is
        select SAL_SLIP_NO from SRS_B_SALES_AMOUNT where IS_TAKE_FLG='0' and CAN_TAKE_FLG='1';
begin
    delete from SRS_T_SALES_AMOUNT;
    open mycursor1; 
    loop
    fetch mycursor1 into v_temp;
    exit when mycursor1%notfound;
    select SITE_CD,
             SAL_SLIP_NO,
             FROM_TYP,
             DELI_INST_NO,
             ORD_NO,
             ORD_LINE_NO,
             CUS_CD,
             INVOICE_NO,
             INVOICE_DATE,
             MARK_DIV,
             PRODUCT_GRP_CD,
             SALES_ITEM_CD,
             STOCK_ITEM_CD,
             DELI_QTY,
             UNIT_PRICE,
             SAL_AMOUNT,
             EXCH_RATE,
             TAX_CD,
             CUR_CD,
             DELI_DATE,
             CAN_TAKE_FLG,
             IS_TAKE_FLG,
             SAL_DATE,
             OLD_SAL_SLIP_NO
     Into
             v_v01,
             v_v02,
             v_v03,
             v_v04,
             v_v05,
             v_v06,
             v_v07,
             v_v08,
             v_v09,
             v_v10,
             v_v11,
             v_v12,
             v_v13,
             v_v14,
             v_v15,
             v_v16,
             v_v17,
             v_v18,
             v_v19,
             v_v20,
             v_v21,
             v_v22,
             v_v23,
             v_v24
    from SRS_B_SALES_AMOUNT
    where SRS_B_SALES_AMOUNT.SAL_SLIP_NO = v_temp;
    insert into SRS_T_SALES_AMOUNT(
                                SITE_CD,
                                SAL_SLIP_NO,
                                FROM_TYP,
                                DELI_INST_NO,
                                ORD_NO,
                                ORD_LINE_NO,
                                CUS_CD,
                                INVOICE_NO,
                                INVOICE_DATE,
                                MARK_DIV,
                                PRODUCT_GRP_CD,
                                SALES_ITEM_CD,
                                STOCK_ITEM_CD,
                                DELI_QTY,
                                UNIT_PRICE,
                                SAL_AMOUNT,
                                EXCH_RATE,
                                TAX_CD,
                                CUR_CD,
                                DELI_DATE,
                                CAN_TAKE_FLG,
                                IS_TAKE_FLG,
                                SAL_DATE,
                                OLD_SAL_SLIP_NO)
                       values(
                                v_v01,
                                v_v02,
                                v_v03,
                                v_v04,
                                v_v05,
                                v_v06,
                                v_v07,
                                v_v08,
                                v_v09,
                                v_v10,
                                v_v11,
                                v_v12,
                                v_v13,
                                v_v14,
                                v_v15,
                                v_v16,
                                v_v17,
                                v_v18,
                                v_v19,
                                v_v20,
                                v_v21,
                                v_v22,
                                v_v23,
                                v_v24);
    end loop;
    close mycursor1;
commit;
end;

posted on 2007-09-17 20:25  小乔的闺房  阅读(1037)  评论(0编辑  收藏  举报

导航