Postgres Procedia脚本未读取File.sh提供的输入



我有一个运行psql脚本的问题。

这是输出:

file.sql:155:错误:语法错误或附近":"第10行:date_temp_ale Integer:=:'param_date';

i有一个file.sh,正在调用带有" file.sql"的and Input Varible。这是调用SQL脚本的行:

file.sh中的行:

echo le numero des parametres est bien 7 
psql -v PGPASSWORD=$MDP -h $IP_MACHINE -f $FIC_REQ_SQL -v param_date=20180101  -U  $UTILISATEUR -d $NOM_BDD -p $PORT > $FIC_LOG_EXEC_TMP 2>&1  

echo Done in $FIC_LOG_EXEC_TMP

这是PSQL脚本中的行:infile.sql"

--- UT 48  PURGE DES TRACES
set ON_ERROR_STOP on
BEGIN; -- DEBUT DE TRANSACTION
 DO $$ 
DECLARE
  num_tra_err_id RECORD;
  num_trace_composant RECORD;
  num_trace_fonctionnelle RECORD;
  num_message_id RECORD;
  num_metadonnees_id RECORD;
  num_Process_id RECORD;
  datediff integer;
  date_temp_Ale INTEGER := :'param_date';      
  Max_days  integer := 180;
  --date_limite varchar := &1;
BEGIN

我还尝试在file.sh中使用命令" - 设置",但它不起作用。

我找到了一个slute:

do语句将内部代码与外部代码隔离。

要传递信息,我们需要将其存储为PSQL变量,如下所示

select set_config('psql.param_date', :param_date, false);
BEGIN; -- DEBUT DE TRANSACTION
  DO 
  $$ 
    DECLARE
      limit_date varchar = current_setting('psql.param_date');

相关内容

  • 没有找到相关文章

最新更新