在 Postgresql 函数中使用 return 状态
Using return status in Postgresql function
所以我有一个 sybase 存储过程,我正在将它移到 Postgres 9.5 中,但我似乎无法使它的一部分工作。在该过程中有一个 if 子句,最后有 return 0 如下所示:
在 Sybase 中:
if @param = true begin
select col1, col2
from table
where <condition>
return 0
end
如何使用 plpgsql 语言在 Postgres 函数中使用 return 状态?
感谢任何帮助。
PostgreSQL 函数没有任何类似于 return 的状态。任何函数都应该 return 数据或应该引发异常。 return 状态不是必需的。 plpgsql 中的编程类似于Oracle 的PL/SQL 或IBM 的DB2。 Sybase,T-SQL 与 PLpgSQL 相去甚远 - 好的开始是阅读手册,因为很多东西都不一样 - https://www.postgresql.org/docs/current/static/plpgsql.html
你在 PLpg 中的代码SQL:
CREATE OR REPLACE FUNCTION foo(param boolean)
RETURNS SETOF tablename AS $$
BEGIN
IF param THEN
RETURN QUERY SELECT * FROM tablename
WHERE ..
ELSE
RAISE EXCEPTION 'xxxx';
END IF;
END;
$$ LANGUAGE plpgsql;
没有例外 - 类比 return 状态 0,例外 - 一些非零 return 状态。
所以我有一个 sybase 存储过程,我正在将它移到 Postgres 9.5 中,但我似乎无法使它的一部分工作。在该过程中有一个 if 子句,最后有 return 0 如下所示: 在 Sybase 中:
if @param = true begin
select col1, col2
from table
where <condition>
return 0
end
如何使用 plpgsql 语言在 Postgres 函数中使用 return 状态?
感谢任何帮助。
PostgreSQL 函数没有任何类似于 return 的状态。任何函数都应该 return 数据或应该引发异常。 return 状态不是必需的。 plpgsql 中的编程类似于Oracle 的PL/SQL 或IBM 的DB2。 Sybase,T-SQL 与 PLpgSQL 相去甚远 - 好的开始是阅读手册,因为很多东西都不一样 - https://www.postgresql.org/docs/current/static/plpgsql.html
你在 PLpg 中的代码SQL:
CREATE OR REPLACE FUNCTION foo(param boolean)
RETURNS SETOF tablename AS $$
BEGIN
IF param THEN
RETURN QUERY SELECT * FROM tablename
WHERE ..
ELSE
RAISE EXCEPTION 'xxxx';
END IF;
END;
$$ LANGUAGE plpgsql;
没有例外 - 类比 return 状态 0,例外 - 一些非零 return 状态。