echo在文件运行时从文件中查询psql

时间:2015-09-08 17:14:14

标签: postgresql psql

我有一个打开文件并执行一堆psql查询的bash脚本。

我希望这些查询在运行时回显/打印。

我该怎么做? 我试过使用\ echo for inserts&在存储过程中也是如此,但它似乎不起作用。我该怎么做?

3 个答案:

答案 0 :(得分:5)

使用psql --echo-all

$ psql --echo-all -c "SELECT 1;"
SELECT 1;
 ?column? 
----------
        1
(1 row)

答案 1 :(得分:2)

我知道的唯一方法是,在执行PostgreSQL函数(命名存储过程)期间可以回显任何内容,使用 raise 。此命令用于转发异常,但您可以抛出NOTICE级异常,这不会干扰函数执行。 也许这不是你想要的,但它是一个很好的解决方法。 PostgreSQL执行程序的方式,不允许运行时回声(如Sybase ou Ms SQL Server)。请参阅此示例(它仅适用于函数内部):

raise notice 'Some message';

将输出:

NOTICE:  Some message

或者将vars传递给调试:

raise notice 'Inserting '%' in '%'.',var_value,var_table;

当var_table ='customers'和var_value ='Joe Doe'时,它将输出:

NOTICE:   Inserting 'Joe Doe' in 'customers'

答案 2 :(得分:0)

--echo-queries(用于 shell 脚本)

PGPASS='passwd'

su -c "PGPASSWORD=${PGPASS} psql -d postgres --echo-queries -qc "\pset border 2;" -c "show data_directory;"" postgres