带有最新更新的 PostgreSQL 支持程序。官方博客引用了“与函数相反,过程不需要返回值”。(https://blog.2ndquadrant.com/postgresql-11-server-side-procedures-part-1/)
所以我的问题是,实际上有什么方法可以让我在程序中返回错误代码或响应?(Postgres 中的程序相当新,因此在线资源很少。)
这是我返回这些“错误代码”的意思的示例
create or replace PROCEDURE multislot_Update_v1
(
p_id in varchar2,
p_name in varchar2,
p_enname in varchar2,
results out SYS_REFCURSOR
) AS
rowNumber int;
defaultNumber int;
BEGIN
select count(1) into rowNumber from MULTISLOTSGAME where fid=P_id;
if (rowNumber = 0) then
open results for
select '1' as result from dual;
return;
end if;
update MULTISLOTSGAME set
name = P_name,
enname = P_enname
where fid = P_id ;
commit;
open results for
select '0' as result, t1.* from MULTISLOTSGAME t1 where fid = p_id;
END multislot_Update_v1;
上面的脚本是一个Oracle程序,你可以看到返回的结果是否为“1”,这意味着更新不成功。
有什么方法可以将上述脚本(带有错误代码)编写为 PostgresSQL 过程?也许使用“INOUT”参数的例子会很棒!