将plpgsql中的可变内容发送到Shell脚本

时间:2019-02-27 10:15:44

标签: bash shell variables plpgsql ksh

我有一个外壳程序(#!/ bin / ksh)脚本,该脚本调用pl / pgsql脚本。 我设法使用以下命令从Shell脚本传递了一个变量:

psql -v PGPASSWORD=$PWD -h $IP_MACHINE -f $PGSQL_SCRIPT.sql -v param_date="'2018-01-02'" -v param_nTX="'2'"  -U $USER -d $DB_NAME -p $PORT > $LOG_FILE 2>&1 
使用以下命令

使用pgsql脚本:

 select set_config('psql.param_date', :param_date, false);

我在徘徊,是否有一种方法可以修改pgsql脚本中该变量的内容,以便shell脚本可以将变量的新值更改为红色。

或者是否存在将pgsql脚本中的值传递给shell脚本的另一种方法。

为您提供一些背景信息,我需要这样做,因为我想在每n个事务中执行一次提交。但是在pgsql脚本中,我无法在循环内进行提交。 (我想这样做是不可能的) 所以我想在shell脚本中使用循环,以便多次调用仅执行一次提交的pgsql脚本。 但是我需要知道何时停止shell循环,因此,我希望pgsql脚本将“停止”信息发送到shell脚本。

我还考虑打印以从pgsql脚本中归档一个值,然后使用shell脚本读取它。但我真的不喜欢这种解决方案。

有什么提示吗? 在此先感谢您的帮助!

0 个答案:

没有答案