如何在db2过程中使用保存点? 我想回滚第一次插入,以防第二次插入出错。请帮助我,因为我是db2新手。这个过程是大型事务的一部分吗?如果是这样,保存点应该在过程之外。如果没有,您就不需要保存点。先生,当我运行我的过程时,如果第二次插入有任何错误,那么我的第

如何在db2过程中使用保存点? 我想回滚第一次插入,以防第二次插入出错。请帮助我,因为我是db2新手。这个过程是大型事务的一部分吗?如果是这样,保存点应该在过程之外。如果没有,您就不需要保存点。先生,当我运行我的过程时,如果第二次插入有任何错误,那么我的第,db2,Db2,如何在db2过程中使用保存点? 我想回滚第一次插入,以防第二次插入出错。请帮助我,因为我是db2新手。这个过程是大型事务的一部分吗?如果是这样,保存点应该在过程之外。如果没有,您就不需要保存点。先生,当我运行我的过程时,如果第二次插入有任何错误,那么我的第一次插入也成功地插入了数据,这是我不想要的。plz帮助 CREATE OR REPLACE PROCEDURE mastertb.proc_save_permanent_certificate(IN in_app_no VARCHAR(

如何在db2过程中使用保存点?
我想回滚第一次插入,以防第二次插入出错。请帮助我,因为我是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