У меня самая странная проблема.У нас есть скрипт plpgsql, выполняющийся через задание cron.Он просматривает серию записей и обновляет другие записи на их основе.После этого он вставляет запись в таблицу журналов, сообщая, на сколько записей это повлияло.Вот что странно: если мы перенаправим вывод в / dev / null, скрипт запустится, но это не повлияет ни на одну запись.Если мы не перенаправляем, это работает правильно.
Вот как выглядит строка crontab:
* / 10 * * * * psql -Upostgres -d pje_pi_2g -f / root/atos2g.sql> / dev / null
Вот скрипт:
DO
$$
DECLARE mudar record ; qt INT = 0 ;
BEGIN
FOR mudar IN SELECT
vi.id_,
pd.id_processo_documento
FROM
jbpm_variableinstance vi
JOIN jbpm_processinstance pi ON pi.id_ = vi.processinstance_
AND pi.end_ IS NULL
JOIN core.tb_processo_instance ppi ON ppi.id_proc_inst = pi.id_
JOIN jbpm_taskinstance ti ON ti.procinst_ = pi.id_
AND ti.end_ IS NULL
AND ti.name_ IN (
'Cumprir determinações [CD]',
'Cumprir determinações (urgência) [CD]',
'Ato judicial assinado [PREC]',
'Processos recebidos sem cálculo [PREC]',
'Triagem (financeiro) [PREC]',
'Triagem (secretaria) [PREC]',
'Triagem (cálculo) [PREC]',
'Cumprir determinações [CDPREC]',
'Acórdão assinado [BC2G]',
'Lançar movimentações do julgamento [DCG2G]'
)
JOIN core.tb_processo prc ON prc.id_processo = ppi.id_processo
JOIN core.tb_processo_documento pd ON pd.id_processo = prc.id_processo
AND pd.id_processo_documento = (
SELECT
pd1.id_processo_documento
FROM
core.tb_processo_documento pd1
JOIN core.tb_processo_documento_bin bin ON pd1.id_processo_documento_bin = bin.id_processo_documento_bin
JOIN client.tb_proc_doc_bin_pess_assin ass ON bin.id_processo_documento_bin = ass.id_processo_documento_bin
JOIN client.tb_pessoa_magistrado pm ON pm. ID = ass.id_pessoa
WHERE
pd1.id_processo = prc.id_processo
ORDER BY
pd1.dt_juntada DESC
LIMIT 1
)
WHERE
vi.name_ = 'pje:atoProferido'
AND vi.longvalue_ <> pd.id_processo_documento loop
qt := qt + 1 ;
UPDATE jbpm_variableinstance
SET longvalue_ = mudar.id_processo_documento
WHERE
id_ = mudar.id_ ;
END loop ;
INSERT INTO tjpi.tb_scripts_log (ds_script, qt_afetados)
VALUES
('Atos proferidos', qt) ;
END ;
Если мы запустим его таким образом, он не будет проходить по всем строкам.Если мы удалим перенаправление, оно зациклится правильно.Кто-нибудь знает, что мы должны искать?Со временем: мы пытаемся запустить команду psql вручную, она все еще работает только без перенаправленияЗаранее спасибо и извините за длинный вопрос.