mar*_*rco 20 postgresql plpgsql
我试图从带有2个OUT参数的plpgsql函数中获取值,但是我遇到了一些问题.
这些是功能:
CREATE OR REPLACE FUNCTION get_test(OUT x text, OUT y text)
AS $$
BEGIN
x := 1;
y := 2;
END;
$$ LANGUAGE plpgsql;
----------------------------------------------------------------
CREATE OR REPLACE FUNCTION get_test_read()
RETURNS VOID AS $$
DECLARE
xx text;
yy text;
BEGIN
SELECT get_test() INTO xx, yy;
RAISE INFO 'x: <%>', xx;
RAISE INFO 'y: <%>', yy;
END;
$$ LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)
命令的输出:
select get_test_read();
信息:x:<(1,2)
信息:y:<>
get_test_read
所以这两个值都转到第一个参数.我找不到一些关于如何调用这样的函数的例子.
vye*_*rov 35
由于你有2个OUT参数,你的函数将返回一个记录.
为了获得所有值,您应该使用函数作为数据源并将其放入如下的FROM子句中:
SELECT * FROM get_test() INTO xx, yy;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20939 次 |
| 最近记录: |