2014-09-30 23 views
7

Desidero eseguire alcuni pgScript direttamente dall'interfaccia utente pgAdmin.come eseguire lo script pgsql in pgAdmin?

FOR i IN 1..10 LOOP 
    PRINT i; -- i will take on the values 1,2,3,4,5,6,7,8,9,10 within the loop 
END LOOP; 

Ma ho sempre avuto

[ERROR ] 1.0: syntax error, unexpected character 

Ho anche cercato di avvolgere il codice con fare $$ ... $$, ma non risolve il problema.

risposta

13

parte Clodoaldo Neto's Answer .È possibile provare anche

DO 
$$ 
BEGIN 
FOR i IN 1..10 LOOP 
     RAISE NOTICE '%', i; -- i will take on the values 1,2,3,4,5,6,7,8,9,10 within the loop 
END LOOP; 
END 
$$ 
+2

Bello! Questo dovrebbe essere contrassegnato come la risposta accettata, sicuramente. – Christian

1

Non c'è il comando PRINT. Utilizzare invece raise notice.

create function f() 
returns void as $$ 
begin 
    FOR i IN 1..10 LOOP 
     raise notice '%', i; -- i will take on the values 1,2,3,4,5,6,7,8,9,10 within the loop 
    END LOOP; 
end; 
$$ language plpgsql; 

http://www.postgresql.org/docs/current/static/plpgsql.html

+0

questo err..I pensato con blocco anonimo, non è necessario creare una funzione per ogni script insomma .. .no? – davidshen84

+0

@ davidshen84 Sì, un blocco funzionerà. –

+1

@ davidshen84 ... ma è necessario un blocco 'DO', non è possibile scrivere direttamente PL/PgSQL. –