Postgresql-在另一个函数中执行函数,并在出现错误时继续执行下一个函数
我在Postgresql 9.3中有两个函数:Postgresql-在另一个函数中执行函数,并在出现错误时继续执行下一个函数,postgresql,plpgsql,Postgresql,Plpgsql,我在Postgresql 9.3中有两个函数: CREATE OR REPLACE FUNCTION Function_A(param_id integer, param_name text) RETURNS void AS $BODY$ DECLARE my_id integer; my_name text; BEGIN my_id = somefunction(param_id); my_name = somefunction(param_name); in
CREATE OR REPLACE FUNCTION Function_A(param_id integer, param_name text)
RETURNS void AS
$BODY$
DECLARE
my_id integer;
my_name text;
BEGIN
my_id = somefunction(param_id);
my_name = somefunction(param_name);
insert into tableA(id, name) values (my_id, my_name);
END
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION Function_A(integer, text)
OWNER TO postgres;
所以,我有一个问题,当函数A返回错误时,函数B不会将数据插入表C 我想要这样的东西: 如果执行函数A返回错误resume next,那么我的函数B可以将数据插入表C并继续执行而不会出现问题
这可能吗?如果没有实际的SQL代码,我们实际上无法为您提供那么多帮助。如果要强制函数继续而不关心错误,则可以使用SQL异常语法
EXCEPTION WHEN OTHERS THEN
-- keep looping
END;
我编辑了我的帖子,但我是新来的,不知道如何设置这些函数的格式以使其看起来更漂亮。这两个函数是如何调用的?两个呼叫是否都是同一事务的一部分?是的,它是同一事务。我想继续处理事务,即使函数A返回错误。
EXCEPTION WHEN OTHERS THEN
-- keep looping
END;