Podczas wykonywania poniżej pokazany kod aktywacji za pomocą ANT Dostaję błądBŁĄD: niezakończony cudzysłowie na lub w pobliżu
org.postgresql.util.PSQLException: ERROR: unterminated quoted string at or near "' DECLARE timeout integer"
Position: 57
jestem w stanie z powodzeniem wykonać poniższy kod poprzez pgAdmin (Zapewnione przez PostgreSQL) i wiersz poleceń narzędzie „psql”, a funkcja wyzwalania dodaje ale podczas wykonywania przez ANT to nie spędzaj
BEGIN TRANSACTION;
CREATE OR REPLACE FUNCTION sweeper() RETURNS trigger as '
DECLARE
timeout integer;
BEGIN
timeout = 30 * 24 * 60 * 60 ;
DELETE FROM diagnosticdata WHERE current_timestamp - teststarttime > (timeout * ''1 sec''::interval);
return NEW;
END;
' LANGUAGE 'plpgsql';
-- Trigger: sweep on diagnosticdata
CREATE TRIGGER sweep
AFTER INSERT
ON diagnosticdata
FOR EACH ROW
EXECUTE PROCEDURE sweeper();
END;
Jeśli używasz sformatowanego pliku SQL LiquiBase, spróbuj dodać ten komentarz do pliku proc/function e splitStatements: false. To mi się udało. – Kuberchaun
Cześć, dziękuję za tę odpowiedź. pomógł mi z podobnym błędem. jednak chciałem dodać, że twoje obejście (dodawanie odwróconych ukośników) działa tylko w niektórych przypadkach. podział na oddzielne zdania odbywa się na wyższym poziomie niż jdbc, czyli dokładnie to, co jest brane jako linia, a co nie zależy od innego oprogramowania w stosie.w moim przypadku, używając sprężyny, odwrócony ukośnik nie działa, ale możliwe było określenie innego separatora. –
@andrewcooke Jak określić inny separator, aby rozwiązać problem? –