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