Код: Выделить всё
CREATE OR REPLACE TRIGGER tr_batch_insert_update
AFTER INSERT OR UPDATE
ON operation.batch
FOR EACH ROW
EXECUTE FUNCTION operation.fn_tr_batch_insert_update();
Код: Выделить всё
CREATE OR REPLACE FUNCTION operation.fn_tr_batch_insert_update()
RETURNS trigger
LANGUAGE 'plpgsql'
COST 1
VOLATILE LEAKPROOF
AS $BODY$
BEGIN
CALL integration.pr_send_uuid('batch', NEW.uid);
RETURN NULL;
END;
$BODY$;
Код: Выделить всё
select xmlelement(name "soapenv:Envelope",
xmlattributes('http://schemas.xmlsoap.org/soap/envelope/' AS "xmlns:soapenv",
CONCAT('http://schemas.datacontract.org/2024/07/',entity) AS namespace),
xmlelement(name "soapenv:Header"),
xmlelement(name "soapenv:Body",
xmlelement(name procname,
xmlelement(name "uid", uid)
)
)
)
into body;
body := REPLACE(body, 'procname', procname);
body := REPLACE(body, 'namespace', namespace);
SELECT integration.fn_call_api(url, method, body, 'text/xml; charset=utf-8', isauth, username, password)
INTO response;
Но каждый раз, когда я получаю, эта запись не найдена.
Когда я отключите триггер и вызовите процедуру postgres после вставки записи, все в порядке и данные записи поступают в приложение.
Почему программа C# не может найти вставленную запись? И как лучше всего запустить событие вставки записи в приложении?
Полагаю, это лежит в какой-то области понимания транзакций.
Подробнее здесь: https://stackoverflow.com/questions/790 ... pplication