L
luyear
Unregistered / Unconfirmed
GUEST, unregistred user!
寫了如下一個過程,用來更新兩個表的數據,老是出錯,又看不到出錯信息
我的Oracle是8.1.7,過程如下
(MY_ODR_NO IN VARCHAR2,
MY_SEC_NO IN VARCHAR2,
MY_LAST_W1 IN VARCHAR2,
MY_LAST_W2 IN VARCHAR2,
MY_LAST_W3 IN VARCHAR2,
MY_LAST_W4 IN VARCHAR2,
MY_LAST_W5 IN VARCHAR2)
AS
ODR ORDER_ODRM.ODR_NO%TYPE;
PAR PRE_PART.PART_NO%TYPE;--10
v_MAS VARCHAR2(9);
MAS VARCHAR2(1);
CURSOR c_JC IS SELECT A.ODR_NO,B.PART_NO,B.MAT_NO FROM ORDER_ODRM A,ORDER_BOMD B WHERE A.ODR_NO=MY_ODR_NO AND A.ARTIC_NO=B.ARTIC_NO;
Begin
OPEN c_JC;
LOOP
FETCH c_JC INTO ODR,PAR,v_MAS;
IF SUBSTR(v_MAS,1,1)='A' THEN
MAS:='T';--20
ELSE
MAS:='F';
END IF
INSERT INTO PRE_PART (ODR_NO,PART_NO,MAS_PRE) Values (ODR,PAR,MAS);
INSERT INTO PRE_ODRM (ODR_NO,PART_NO,SEC,LAST_W,QTY,"MASTER",PDATE) Values (ODR,PAR,MY_SEC_NO,MY_LAST_W1,0,MAS,SYSDATE);
IF MY_LAST_W2<>'' THEN
INSERT INTO PRE_ODRM (ODR_NO,PART_NO,SEC,LAST_W,QTY,"MASTER",PDATE) Values (ODR,PAR,MY_SEC_NO,MY_LAST_W2,0,MAS,SYSDATE);
END IF;
IF MY_LAST_W3<>'' THEN
INSERT INTO PRE_ODRM (ODR_NO,PART_NO,SEC,LAST_W,QTY,"MASTER",PDATE) Values (ODR,PAR,MY_SEC_NO,MY_LAST_W3,0,MAS,SYSDATE);--30
END IF;
IF MY_LAST_W4<>'' THEN
INSERT INTO PRE_ODRM (ODR_NO,PART_NO,SEC,LAST_W,QTY,"MASTER",PDATE) Values (ODR,PAR,MY_SEC_NO,MY_LAST_W4,0,MAS,SYSDATE);
END IF;
IF MY_LAST_W5<>'' THEN
INSERT INTO PRE_ODRM (ODR_NO,PART_NO,SEC,LAST_W,QTY,"MASTER",PDATE) Values (ODR,PAR,MY_SEC_NO,MY_LAST_W5,0,MAS,SYSDATE);
END IF;
END LOOP;
CLOSE c_JC;
COMMIT;
End PRE_PART_INSERT;
我的Oracle是8.1.7,過程如下
(MY_ODR_NO IN VARCHAR2,
MY_SEC_NO IN VARCHAR2,
MY_LAST_W1 IN VARCHAR2,
MY_LAST_W2 IN VARCHAR2,
MY_LAST_W3 IN VARCHAR2,
MY_LAST_W4 IN VARCHAR2,
MY_LAST_W5 IN VARCHAR2)
AS
ODR ORDER_ODRM.ODR_NO%TYPE;
PAR PRE_PART.PART_NO%TYPE;--10
v_MAS VARCHAR2(9);
MAS VARCHAR2(1);
CURSOR c_JC IS SELECT A.ODR_NO,B.PART_NO,B.MAT_NO FROM ORDER_ODRM A,ORDER_BOMD B WHERE A.ODR_NO=MY_ODR_NO AND A.ARTIC_NO=B.ARTIC_NO;
Begin
OPEN c_JC;
LOOP
FETCH c_JC INTO ODR,PAR,v_MAS;
IF SUBSTR(v_MAS,1,1)='A' THEN
MAS:='T';--20
ELSE
MAS:='F';
END IF
INSERT INTO PRE_PART (ODR_NO,PART_NO,MAS_PRE) Values (ODR,PAR,MAS);
INSERT INTO PRE_ODRM (ODR_NO,PART_NO,SEC,LAST_W,QTY,"MASTER",PDATE) Values (ODR,PAR,MY_SEC_NO,MY_LAST_W1,0,MAS,SYSDATE);
IF MY_LAST_W2<>'' THEN
INSERT INTO PRE_ODRM (ODR_NO,PART_NO,SEC,LAST_W,QTY,"MASTER",PDATE) Values (ODR,PAR,MY_SEC_NO,MY_LAST_W2,0,MAS,SYSDATE);
END IF;
IF MY_LAST_W3<>'' THEN
INSERT INTO PRE_ODRM (ODR_NO,PART_NO,SEC,LAST_W,QTY,"MASTER",PDATE) Values (ODR,PAR,MY_SEC_NO,MY_LAST_W3,0,MAS,SYSDATE);--30
END IF;
IF MY_LAST_W4<>'' THEN
INSERT INTO PRE_ODRM (ODR_NO,PART_NO,SEC,LAST_W,QTY,"MASTER",PDATE) Values (ODR,PAR,MY_SEC_NO,MY_LAST_W4,0,MAS,SYSDATE);
END IF;
IF MY_LAST_W5<>'' THEN
INSERT INTO PRE_ODRM (ODR_NO,PART_NO,SEC,LAST_W,QTY,"MASTER",PDATE) Values (ODR,PAR,MY_SEC_NO,MY_LAST_W5,0,MAS,SYSDATE);
END IF;
END LOOP;
CLOSE c_JC;
COMMIT;
End PRE_PART_INSERT;