如何在Unix Shell脚本文件(.sh文件)中运行postgres查询并收集日志以执行查询

时间:2018-07-10 14:05:13

标签: postgresql-9.5

psql -U postgres
psql <<EOF
do $$

 <<block>>
begin

    alter table zdgd add column aaa date;



    create table z2 (id int);
 raise info 'ds';

 exception when others then

        raise notice 'Message --> % %', SQLERRM, SQLSTATE;
    exit block;
    raise info 'dsd';

end;


 $$ language 'plpgsql'

EOF

1 个答案:

答案 0 :(得分:0)

要将raise“结果”保存到文件,请使用STDERR重定向2>
像这样:

MacBook-Air:~ vao$ psql db 2>/tmp/so <<EOF
> do \$\$
> begin
> raise notice '%', 'blah';
> end;
> \$\$
> EOF
Timing is on.
Pager usage is off.
DO
Time: 9.057 ms

(显然>是EOF标记,不是DO语句的一部分 并检查:

MacBook-Air:~ vao$ cat /tmp/so
NOTICE:  blah