2016-12-19 45 views
0

我有一個SQL塊(file.sql)爲:POSTGRES pgplsql psql的命令行參數

DO $$ 
DECLARE 

var1 varchar; 
BEGIN 

    var1 := :key; 

END $$; 

當我調用該.SQL用psql,

psql -h localhost -v key="value" -U user -f file.sql postgredb 

我得到一個錯誤:

ERROR: syntax error at or near ":"

想知道爲什麼命令行參數是沒有得到解決

+1

我不認爲你可以在PL/pgSQL塊中使用'psql'變量 –

回答

1

我不認爲你可以這樣做。 我想創建一個psql的函數,它VARCHAR(例如,在你的榜樣鍵)的一個參數,然後我會從終端與調用它:

psql -h localhost -U user postgredb -c "select updateValue('someValue');"

然後,您可以包裝所有,在一些函數的bash腳本,以便您可以更快地調用它?

希望有所幫助,歡呼聲。