从PostgreSQL存储过程返回记录集的最简单方法是什么?

前端之家收集整理的这篇文章主要介绍了从PostgreSQL存储过程返回记录集的最简单方法是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我只是有一个表格,其中包含国家列表及其ISO国家/地区代码.我将查询包装在存储过程(也称为函数)中,例如:
CREATE OR REPLACE FUNCTION get_countries(
                    ) RETURNS setof record AS $$
        SELECT country_code,country_name FROM country_codes
$$LANGUAGE sql;

我得到的错误是:

ERROR:  a column definition list is required for functions returning "record"

我知道我可以定义一个TYPE,然后像光标一样循环遍历记录集,但是在更新版本的Postgresql(我使用的是8.4.3)下,有更好的方法可以做到这一点但是我正在尝试要记住.

编辑:

这有效:

CREATE OR REPLACE FUNCTION get_countries(
                    ) RETURNS setof country_codes AS $$
        SELECT country_code,country_name FROM country_codes
$$LANGUAGE sql;

请注意“RETURNS setof [table name]”.但它似乎并不是最灵活的.如果我尝试返回多个表的连接,它就会崩溃.

您应该能够使用输出参数,如下所示:
CREATE OR REPLACE FUNCTION get_countries(country_code OUT text,country_name OUT text)
RETURNS setof record
AS $$SELECT country_code,country_name FROM country_codes $$
LANGUAGE sql;
原文链接:https://www.f2er.com/postgresql/192187.html

猜你在找的Postgre SQL相关文章