您的位置:首页 > 数据库 > Oracle

Oracle 游标的例子(待完善)

2007-09-17 20:25 274 查看
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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: