首页 > 解决方案 > 运行多个存储过程并在出错时退出

问题描述

我有一个运行一系列存储过程的存储过程。每个过程将插入到具有列状态和 Err_msg 的表中。因此,如果我运行第一个过程并且状态显示“失败”并显示错误消息,我想完全退出该过程。我怎么做? 存储过程运行多个过程

状态和 err_msg 列

标签: oraclestored-proceduresplsql

解决方案


要退出 PL/SQL 中的过程,我们使用一个简单的RETURN语句。

如果我假设正确,那么 field3 是 OUT在主过程中调用的每个过程的参数。

CREATE OR REPLACE PROCEDURE sequence_test 
AS
field3 VARCHAR2(200) := 'Success';
BEGIN

MARS_TRUNCATE_TABLES('test','test',field3);
IF field3 like 'Failed%'  THEN -- use  = 'Failed' if it has only that.
  RETURN;  --exit the procedure completely.
END IF;

MARS_INSERT_TABLE('test','test',field3);
IF field3 like 'Failed%'  THEN 
  RETURN;  
END IF;

-- ...
-- ... Similar statements for other procedure calls.

END;
/ 

推荐阅读