Nie mogę znaleźć jasnego wyjaśnienia składni do tworzenia (i używania) tabel tylko do wewnętrznych obliczeń funkcji. Czy ktoś mógłby mi podać przykład składni?Tymczasowa funkcja postgresql tabeli
Z tego co znalazłem, próbowałem to (i bez @
przed 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;
uzyskać:
ERROR: syntax error at or near "DECLARE" LINE 5: DECLARE @temp_table TABLE
-
Próbowałem również CREATE TABLE podejście zasugerowane here, w ten sposób:
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;
i uzyskać w ten sposób:
ERROR: relation "temp_table " does not exist LINE 11: FROM temp_table
(Oczywiście jestem świadomy temp_table nie jest konieczne do tego, co robię w powyższym kodzie, ale to nie o to chodzi :) => Chcę zrozumieć składnię aby zmusić go do pracy)
Firma Postgres używa do tego celu tabel tymczasowych. Zmienne tabelowe są cechą SQL Server. –
Gdzie w podręczniku znalazłeś składnię 'DECLARE @temp_table TABLE ...'? –