Trong khi thực thi mã kích hoạt bên dưới hiển thị bằng ANT Tôi nhận được lỗiLỖI: chuỗi trích dẫn unterminated tại hoặc gần
org.postgresql.util.PSQLException: ERROR: unterminated quoted string at or near "' DECLARE timeout integer"
Position: 57
tôi có thể thành công thực thi mã bên dưới thông qua pgAdmin (cung cấp bởi postgres) và dòng lệnh tiện ích "psql" và chức năng kích hoạt được thêm vào nhưng trong khi thực hiện thông qua ANT nó không thành công mỗi lần
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;
Nếu sử dụng tệp SQL được định dạng LiquiBase, hãy thử thêm nhận xét này vào tệp proc/function của bạn e splitStatements: sai. Điều đó đã đánh lừa tôi. – Kuberchaun
hi, cảm ơn câu trả lời này. nó đã giúp tôi với một lỗi tương tự. tuy nhiên, tôi muốn thêm rằng công việc của bạn xung quanh (thêm các dấu gạch chéo ngược) chỉ hoạt động trong một số trường hợp. việc tách thành các câu lệnh riêng biệt được thực hiện bởi một mức cao hơn jdbc, vì vậy chính xác những gì được lấy làm một dòng và những gì không phụ thuộc vào phần mềm khác trong ngăn xếp.trong trường hợp của tôi, bằng cách sử dụng mùa xuân, dấu gạch chéo ngược không hoạt động, nhưng có thể chỉ định một dấu tách khác nhau. –
@andrewcooke Xin vui lòng, làm thế nào để bạn chỉ định một dấu phân cách khác nhau để giải quyết vấn đề? –