我有一个外壳程序(#!/ 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脚本读取它。但我真的不喜欢这种解决方案。
有什么提示吗? 在此先感谢您的帮助!