我找不到一个清晰的说明如何创建(和使用)表格来进行函数内部计算的语法。请问有人可以给我提供一个语法例子吗?
根据我找到的资料,我尝试了这个(带有和不带有@
在temp_table
之前):
CREATE FUNCTION test.myfunction()
RETURNS SETOF test.out_table
AS $$
DECLARE @temp_table TABLE
(
id int,
value text
)
BEGIN
INSERT INTO @temp_table
SELECT id, value
FROM test.another_table;
INSERT INTO test.out_table
SELECT id, value
FROM @temp_table;
RETURN END
$$ LANGUAGE SQL;
我得到:
错误:第5行的“DECLARE”附近有语法错误 LINE 5: DECLARE @temp_table TABLE
-
我还尝试了这里建议的使用CREATE TABLE方法,如下:
CREATE FUNCTION test.myfunction()
RETURNS SETOF test.out_table
AS $$
CREATE TABLE temp_table AS
SELECT id, value
FROM test.another_table;
INSERT INTO test.out_table
SELECT id, value
FROM temp_table;
$$ LANGUAGE SQL;
我得到了以下结果:
错误:关系“temp_table”不存在 第11行:从temp_table查询
(显然,我知道在上面的代码中不需要temp_table,但这不是重点:)=>我想理解语法以使其正常工作)
DECLARE @temp_table TABLE...
? - user330315