【发布时间】:2013-01-15 17:32:20
【问题描述】:
我有一个返回表格的 Postgres 函数:
CREATE OR REPLACE FUNCTION testFunction() RETURNS TABLE(a int, b int) AS
$BODY$
DECLARE a int DEFAULT 0;
DECLARE b int DEFAULT 0;
BEGIN
CREATE TABLE tempTable AS SELECT a, b;
RETURN QUERY SELECT * FROM tempTable;
DROP TABLE tempTable;
END;
$BODY$
LANGUAGE plpgsql;
此函数不以行和列的形式返回数据。相反,它将数据返回为:
(0,0)
这导致 Coldfusion cfquery 块在提取数据时出现问题。从该函数返回表时,如何获取行和列中的数据?换句话说:为什么 PL/pgSQL 函数不将数据作为列返回?
【问题讨论】:
-
你为什么使用临时表?这是完全没有必要的,而且会使事情变慢而没有任何优势(您可以使用简单的
SQL函数,这会使事情变得更快)
标签: sql postgresql plpgsql postgresql-9.1