2016-11-23 3 views
0

Ich versuche Integer-Variable Wert mit default 0 in postgresql SQL-Skript zu deklarieren:PostgreSql - Deklarieren Integer-Variable

DECLARE user_id integer; 

aber es gibt Ausnahme:

ERROR: syntax error at or near "integer"

Ich bin nicht sicher, wie kann ich eine Variable deklarieren und diese Variable dann innerhalb der while-Schleife verwenden.

+0

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

Antwort

2

Sie können DECLARE nicht in einer SQL-Anweisung verwenden. Was Sie tun möchten, erfordert plpgsql. Danielarends Antwort ist richtig, aber vielleicht möchten Sie DO (https://www.postgresql.org/docs/current/static/sql-do.html) erkunden, mit dem Sie adhoc plpgsql schreiben können, ohne eine Funktion definieren zu müssen.

+0

danke Pferd, ich hätte die URL überprüfen sollen – chris

2

Sie müssen Ihren Code in eine benutzerdefinierte Funktion einfügen. Es wird nicht in einem SQL-Fenster funktionieren. Beispiel unten ist eine Funktion, die Nummer, die Sie liefert send.the Variable

--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 

Ein dann, können Sie es auf einem SQL-Fenster verwenden können, wie folgt aus:

select * from mybase.my_new_rotine(1) 

zurück 1