how to push parameters to DO statement from command line
PostgreSQL
DO
statement doesn't support parametrization. But with psql variables we are able to "inject" do statement safely and we can do it:bash-4.1$ cat test.sh #!/bin/bash echo " set myvars.msgcount TO :'msgcount'; DO \$\$ BEGIN FOR i IN 1..current_setting('myvars.msgcount')::int LOOP RAISE NOTICE 'Hello'; END LOOP; END \$\$" | psql postgres -v msgcount=$1
Usage:
bash-4.1$ ./test.sh 3 SET Time: 0.386 ms NOTICE: Hello NOTICE: Hello NOTICE: Hello DO Time: 1.849 ms
1 Comments:
Well that is sneaky:) Thanks I am going to use this.
Post a Comment
Subscribe to Post Comments [Atom]
<< Home