如何在db2过程中使用保存点? 我想回滚第一次插入,以防第二次插入出错。请帮助我,因为我是db2新手。这个过程是大型事务的一部分吗?如果是这样,保存点应该在过程之外。如果没有,您就不需要保存点。先生,当我运行我的过程时,如果第二次插入有任何错误,那么我的第
如何在db2过程中使用保存点?如何在db2过程中使用保存点? 我想回滚第一次插入,以防第二次插入出错。请帮助我,因为我是db2新手。这个过程是大型事务的一部分吗?如果是这样,保存点应该在过程之外。如果没有,您就不需要保存点。先生,当我运行我的过程时,如果第二次插入有任何错误,那么我的第,db2,Db2,如何在db2过程中使用保存点? 我想回滚第一次插入,以防第二次插入出错。请帮助我,因为我是db2新手。这个过程是大型事务的一部分吗?如果是这样,保存点应该在过程之外。如果没有,您就不需要保存点。先生,当我运行我的过程时,如果第二次插入有任何错误,那么我的第一次插入也成功地插入了数据,这是我不想要的。plz帮助 CREATE OR REPLACE PROCEDURE mastertb.proc_save_permanent_certificate(IN in_app_no VARCHAR(
我想回滚第一次插入,以防第二次插入出错。请帮助我,因为我是db2新手。这个过程是大型事务的一部分吗?如果是这样,保存点应该在过程之外。如果没有,您就不需要保存点。先生,当我运行我的过程时,如果第二次插入有任何错误,那么我的第一次插入也成功地插入了数据,这是我不想要的。plz帮助
CREATE OR REPLACE PROCEDURE mastertb.proc_save_permanent_certificate(IN in_app_no VARCHAR(20),OUT out_response VARCHAR(20))
BEGIN
DECLARE vpermanent_prim_key INTEGER;
DECLARE ventitymast_appno INTEGER;
DECLARE EXPECTED_dAYS INTEGER;
SAVEPOINT STOP_HERE ON ROLLBACK;
SELECT NEXT_SEQUENCE INTO vpermanent_prim_key FROM
MASTERTB.Z_ENTITYMAST_NEXT_SEQUENCE WHERE
UCASE(NAME)='MASTERTB.Z_ENTITYMAST_PERMANENT_RESIDENCE_CERTIFICATE';
SET vpermanent_prim_key = vpermanent_prim_key + 1;
SELECT NEXT_SEQUENCE INTO ventitymast_appno FROM
MASTERTB.Z_ENTITYMAST_NEXT_SEQUENCE WHERE
NAME= 'mastertb.Z_ENTITYMAST_SAVED_APPLICATION';
SET ventitymast_appno=ventitymast_appno+1;
SELECT EXPECTED_DAYS_REQUIRED INTO EXPECTED_dAYS FROM
MASTERTB.Z_ENTITYMAST_SERVICELIST WHERE SERVICE_ID=1;
CALL DBMS_OUTPUT.PUT( 'primary key value = '||vpermanent_prim_key);
CALL DBMS_OUTPUT.NEW_LINE;
INSERT INTO
MASTERTB.z_entitymast_permanent_residence_certificate(APP_NO,DEP_ID,
PERMANENT_RESIDENCE_ID,CREATED_DATE )
VALUES (in_app_no,vpermanent_prim_key, CURRENT_TIMESTAMP );
UPDATE MASTERTB.Z_ENTITYMAST_NEXT_SEQUENCE SET
NEXT_SEQUENCE=vpermanent_prim_key WHERE
UCASE(NAME)='MASTERTB.Z_ENTITYMAST_PERMANENT_RESIDENCE_CERTIFICATE';
INSERT INTO
MASTERTB.Z_ENTITYMAST_SAVED_APPLICATION(SAVED_APPLICATION_ID,APPLICATION_NO,SERVICE_ID,SERVICE_ITEM_ID,PROCESSSTAGEID,IS_DOCUMENT_UPLOADED,IS_SUBMITTED,CREATEDBY,CREATEDATE,MODIFYBY,MODIFYDATE,CITIZEN_NAME,EXPECTED_DEL_DATE1,VIEW_APPLICATIN_URL)
VALUES(ventitymast_appno,in_app_no,1,vpermanent_prim_key,0,1,1,7,CURRENT_TIM
ESTAMP,7,CURRENT_TIMESTAMP,NULL,'');
UPDATE MASTERTB.Z_ENTITYMAST_NEXT_SEQUENCE SET NEXT_SEQUENCE=ventitymast_appno WHERE NAME= 'mastertb.Z_ENTITYMAST_SAVED_APPLICATION';
RELEASE SAVEPOINT STOP_HERE;
--END TRANSACTION
SET out_response='S';
END