2016-12-19 33 views
0

私のようにSQLブロック(file.sql)を持っている:POSTGRES pgplsqlのpsqlのコマンドライン引数

DO $$ 
DECLARE 

var1 varchar; 
BEGIN 

    var1 := :key; 

END $$; 

私はpsqlの、

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

でこれ.SQLを呼び出すと、私はエラーを取得する:

ERROR: syntax error at or near ":"

コマンドライン引数が解決取得されていない理由を知りたい

+1

PL/pgSQLブロック内で 'psql'変数を使用することはできません –

答えて

1

そういうことはできないと思います。 私はvarchar型(あなたの例では例えばキー)のいずれかの引数を取るpsqlの関数を作成したいし、私がして、端末からそれを呼び出すと思います:あなたは、その後、いくつかのすべてのことをラップすることができます

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

あなたはそれをより速く呼び出すことができるように関数のbashスクリプト?

希望、歓声。

関連する問題