Non riesco a trovare una spiegazione chiara della sintassi per creare (e utilizzare) le tabelle solo per i calcoli interni di una funzione. Qualcuno potrebbe darmi un esempio di sintassi per favore?Funzione postgresql della tabella temporanea
Da quello che ho trovato, ho provato questo (con e senza @
prima 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;
ottengo:
ERROR: syntax error at or near "DECLARE" LINE 5: DECLARE @temp_table TABLE
-
Ho anche provato il L'approccio CREATE TABLE ha suggerito here, in questo modo:
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;
E ottengo questo:
ERROR: relation "temp_table " does not exist LINE 11: FROM temp_table
(Ovviamente, io sono consapevole del temp_table non è necessario per quello che sto facendo in codice di cui sopra, ma non è questo il punto :) => voglio per capire la sintassi per farlo funzionare)
Postgres utilizza tabelle temporanee per questo scopo. Le variabili di tabella sono una funzionalità di SQL Server. –
Dove nel manuale hai trovato la sintassi 'DECLARE @temp_table TABLE ...'? –