2016-11-23 9 views
0
私はPostgreSQLのSQLスクリプトで、デフォルト値0を持つ整数の変数を宣言しようとしている

PostgreSQLの - 変数の整数を宣言

DECLARE user_id integer; 

が、それは例外を返します:

ERROR: syntax error at or near "integer"

が、私は方法がわからないんだけど私は変数を宣言し、whileループの中でこの変数を使用できますか?

+0

http://stackoverflow.com/q/1490942/330315 –

答えて

2

を返します。 DECLAREはSQL文で使用できません。あなたがしたいことは、plpgsqlが必要です。 danielarendの答えは正しいですが、DO(https://www.postgresql.org/docs/current/static/sql-do.html)を探索して、関数を定義することなくadhoc plpgsqlを書くことができます。

+0

感謝の馬、私はURLをチェックすべきだった – chris

2

ユーザー定義関数内にコードを配置する必要があります。それは、SQLウィンドウで動作しません。以下の例は、あなたがその変数

--mybase is your database name. If public, remove it. 
    CREATE OR REPLACE FUNCTION mybase.my_new_rotine(numeric) 
    RETURNS numeric AS 
    $BODY$ 
    --here, get the first variable from function 
    declare id numeric= $1; 

    begin 
    --return the number 
     return id; 
    end; 
    $BODY$ 

    LANGUAGE plpgsql VOLATILE 

アンをsend.the数を返す関数である、あなたはこのように、SQLウィンドウ上でそれを使用することができます。

select * from mybase.my_new_rotine(1) 

は1