현재 SQL 스크립트를로드하여 HSQL 데이터베이스를 생성하려고합니다.HSQLDB Trigger Statement SimpleJdbcTestUtils.executeSqlScript() 사용시 오류
CREATE TRIGGER t BEFORE UPDATE ON SUBJECTS
REFERENCING NEW AS newrow OLD AS oldrow
FOR EACH ROW
BEGIN ATOMIC
SET newrow.VERSION = oldrow.VERSION + 1;
END;
이 코드를 사용하여 테스트를 실행, 다음과 같은 오류가 발생합니다 :
Resource resource = new ClassPathResource("/create-table.sql");
SimpleJdbcTestUtils.executeSqlScript(template, resource, Boolean.FALSE);
스크립트는 트리거의 생성 문을 포함 이는 다음 코드를 사용하여 수행됩니다
Caused by: java.sql.SQLException: Unexpected end of command: REFERENCING in statement
[CREATE TRIGGER t BEFORE UPDATE ON SUBJECTS REFERENCING]
at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
at org.hsqldb.jdbc.jdbcStatement.fetchResult(Unknown Source)
at org.hsqldb.jdbc.jdbcStatement.executeUpdate(Unknown Source)
at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
at org.springframework.jdbc.core.JdbcTemplate$1UpdateStatementCallback.doInStatement(JdbcTemplate.java:508)
at org.springframework.jdbc.core.JdbcTemplate$1UpdateStatementCallback.doInStatement(JdbcTemplate.java:1)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:395)
스프링 3.0.5를 사용하고 HSQLDB (드라이버, ...) 버전은 1.8.0.10입니다.
누구나이 문제를 겪었거나이를 해결하는 방법을 알고 있습니까?
는 (나는 또한, 한 줄에 모든 것을 배치하려고 별도의 파일에 SQL을 배치, ... 세미콜론을 제거)이 어떤 도움이 많이 이해할 수있을 것이다. 고맙습니다!
웬디.
예는, - 그냥이 너무에 발견! 조심해! – alexandroid