从PostgreSQL存储过程返回记录集的最简单方法是什么?
发布时间:2020-12-13 16:19:11 所属栏目:百科 来源:网络整理
导读:我只是有一个表格,其中包含国家列表及其ISO国家/地区代码.我将查询包装在存储过程(也称为函数)中,例如: CREATE OR REPLACE FUNCTION get_countries( ) RETURNS setof record AS $$ SELECT country_code,country_name FROM country_codes$$LANGUAGE sql; 我
我只是有一个表格,其中包含国家列表及其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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |