2014-06-15 4 views
0

dbdeploy를 통해 포스트그레스에 트리거를 만들려고 할 때 다음 오류가 발생합니다. 문제는 dbdeploy보다는 postgres jdbc 문제 인 것 같습니다. sql 문은 SQL 블록의 첫 번째 세미콜론 다음에 무시됩니다. 이 문제를 극복하는 데 도움이 될만한 점이 있습니다. (pgAdmin를 통해 완벽하게 작동)postgres db에 대해 dbdeploy를 통해 트리거를 만들 수 없습니다.

는 SQL 문자열 :

 
    CREATE FUNCTION trigger_history() RETURNS trigger 
     LANGUAGE plpgsql 
     AS $$ 
    BEGIN 
     INSERT INTO table_history(col_one, col_two) 
     VALUES(NEW.col_one, OLD.col_two); 
     RETURN NEW; 
    END 
    $$; 

오류 :

 
Caused by: org.postgresql.util.PSQLException: ERROR: unterminated dollar-quoted string at or near "$ BEGIN INSERT INTO table_history(col_one, col_two) VALUES(NEW.col_one, OLD.col_two)" 
    Position: 97 
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2161) 
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1890) 
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255) 

답변

0

나는 그것이 문제의 원인 세미콜론 생각 : $$; 그냥 삭제하거나 이동을 다음 라인. $$은 줄 끝 부분에 있어야합니다.