関数の内部計算のためだけにテーブルを作成(および使用)する構文についての明確な説明が見つかりません。誰か私に文法例を教えてもらえますか?私が見つけたものを、私はこれ(ととtemp_table
前@
なし)しようとしているから一時テーブルpostgresql関数
:
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;
私が手:
ERROR: syntax error at or near "DECLARE" LINE 5: DECLARE @temp_table TABLE
-
は、私も試してみましたCREATE TABLEのアプローチは、here、このように提案:
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は、私は上記のコードでやっている何のために必要ではないが、それはポイントではありません:) =承知している>
ERROR: relation "temp_table " does not exist LINE 11: FROM temp_table
を)それが仕事を得るために、構文を理解する
Postgresはこの目的で一時テーブルを使用しています。テーブル変数は、SQL Serverの機能です。 –
マニュアルでは 'DECLARE @temp_table TABLE ...'という構文が見つかりましたか? –