传入的参数str_pallet_no 是一个长字符串,|隔开
while INSTR(str_pallet_no, '|') > 0 LOOP
MYARRAY(I) := SUBSTR(str_pallet_no, 1, (INSTR(str_pallet_no, '|') - 1));str_pallet_no := SUBSTR(str_pallet_no, (INSTR(str_pallet_no, '|') + 1));
IF INSTR(str_pallet_no, MYARRAY(I)) > 0 THEN
--檢查傳入序號有無重複
RES := 'FAIL:' || MYARRAY(I) || ' REPEAT';
ROLLBACK;
RETURN;
END IF;
DECLARE
type MYCURSOR IS REF CURSOR;
CUR MYCURSOR;
EXEC_SQL VARCHAR2(1000);
QUERY_SN ifsn_detail%ROWTYPE;
BEGIN
EXEC_SQL:='SELECT * FROM '||SCHEMA_NAME_I||'.ifsn_detail w
where w.pallet_no='''||MYARRAY(I)||''' and w.dn_no='''||FACTORY_DN_I||'''';
OPEN CUR FOR EXEC_SQL ;
LOOP
FETCH CUR INTO QUERY_SN;
EXIT WHEN CUR%NOTFOUND;
C_PALLET_NO := QUERY_SN.pallet_NO;
C_CARTON_NO := QUERY_SN.carton_NO;
C_DATECODE := QUERY_SN.datecode;
C_BARCODE := QUERY_SN.delta_serial_no;
C_REVISION := QUERY_SN.revision;
c_customer_no := QUERY_SN.barcode;
V_INSERT_IFSN_DETAIL := 'INSERT INTO '||SCHEMA_NAME_I||'.IF_YMBC_REGION_SHIP(INV_NO,PART_NO,PALLET_NO,CARTON_NO,
SERIAL_NO,RUNNING_NO,VENDOR_CODE,PO_NO,
PO_GR_QTY,PO_UNIT,PRODUCT_VERSION,DATE_CODE,EXP_DATE,FACTORY_DN,SHIP_TO_CODE,FROM_PLANT,TO_PLANT,
TRADING_CODE,CREATE_DATE,BC_START_DATE,BC_START_TIME,FINISH_DATE,FINISH_TIME,STATUS,SAP_MESSAGE,CUST_SN)
VALUES('''||INV_NO_I||''','''||PART_NO_I||''','''||C_PALLET_NO||''','''||C_CARTON_NO||''',
'''||C_BARCODE||''','''||RUNNING_NO_I||''',
'''||VENDOR_CODE_I||''','''||PO_NO_I||''',''1'','''||PO_UNIT_I||''','''||C_REVISION||''',
'''||C_DATECODE||''','''','''||FACTORY_DN_I||''',
'''||SHIP_TO_CODE_I||''','''||FROM_PLANT_I||''','''||TO_PLANT_I||''','''||TRADING_CODE_I||''',SYSDATE,'''',
'''','''','''',''-'','''','''||c_customer_no||''')';
EXECUTE IMMEDIATE V_INSERT_IFSN_DETAIL ;
COMMIT;
END LOOP;
CLOSE CUR;
res:='1';
END;
I:=I+1;
END LOOP;