7

非常に単純なPL/pgSQLスクリプトがあります。

     declare x varchar(100);

実行すると、次のメッセージが表示されます。

    [WARNING  ] declare x varchar(100)
        ERROR:  syntax error at or near "varchar"
        LINE 1: declare x varchar(100)
                          ^

私はこれの何が悪いのか本当にわかりません。

4

3 に答える 3

22

PostgreSQL の関数本体内でのみ手続き型ステートメントを使用できます。

CREATE OR REPLACE FUNCTION foo()
RETURNS int AS 
$$ -- here start procedural part
   DECLARE x int;
   BEGIN
     x := 10;
     RETURN x;
   END;
$$ -- here finish procedural part
LANGUAGE plpgsql; -- language specification 

または一時的な機能(匿名ブロック)

DO $$
DECLARE x int;
BEGIN
  x := 10;
  RAISE NOTICE '>>>%<<<', x;
END;
$$;

手続き型ステートメントを T-SQL のような SQL ステートメントとして使用することはできません。

于 2013-02-20T06:46:24.760 に答える