我正在try 使用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 阅读测试()
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;

命令的输出:

Select 阅读测试();

信息:x:&lt;(1,2)

信息:y:&lt&gt;

阅读测试


所以这两个值都指向第一个参数.

推荐答案

由于有2个OUT参数,函数将返回record.

为了获得所有值,您应该使用函数作为数据源,并将其放入FROM子句中,如下所示:

SELECT * FROM get_test() INTO xx, yy;

Postgresql相关问答推荐

在SqlalChemy中转义动态CamelCase场

正在应用序列化迁移,但数据库没有更改

处理Ruust-DIESEL中的Jsonb PostgreSQL列

无法继承BYPASSRLS

我可以将jsonb_set与来自SELECT语句的新值(第三个参数)一起使用吗?

如何使用 Grafana 测量 PostgreSQL 中的复制

Postgres 生成的列不是不可变的

使用间隔参数的 go postgres 准备好的语句不起作用

Django 1.8 数组字段追加和扩展

PostgreSQL:根据排序顺序仅 Select 每个 id 的第一条记录

无法向 postgresql 数据库授予用户权限(对于 rails 应用程序)

PostgreSQL ,从 2 个表中 Select ,但仅从表 2 中 Select 最新的元素

遇到序列化失败的条件是什么?

在 Spring Boot 上使用 Hibernate 映射 PostGIS 几何点字段

如何将两个 PostgreSQL 列聚合到一个用括号分隔的数组

PostgreSQL:使用 psql 命令行实用程序时 Windows 上的编码问题

从 PostgreSQL 序列中 Select 多个 id

postgresql 查询以显示用户的组

Python PostgreSQL 模块.哪个最好?

在 Windows 7 上更改/重置 postgresql 用户密码