Ich versuche gerade, ein Sql-Skript zu laden, um eine HSQL-Datenbank zu erstellen. Dies geschieht mit Hilfe des folgenden Codes:
Resource resource = new ClassPathResource("/create-table.sql");
SimpleJdbcTestUtils.executeSqlScript(template, resource, Boolean.FALSE);
Das Skript enthält die Anweisung zum Erstellen eines Triggers:
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;
Wenn die Tests mit diesem Code ausgeführt werden, tritt folgender Fehler auf:
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)
Ich verwende Spring 3.0.5 und HSQLDB (Treiber,...) Version ist 1.8.0.10.
Hatte jemand schon einmal dieses Problem oder weiß, wie es zu lösen ist?
(Ich habe auch versucht, alles in eine Zeile zu packen, die Sql in eine separate Datei zu packen, Semikolons zu entfernen, ...)
Jede Hilfe wird sehr geschätzt. Vielen Dank im Voraus!
Wendy.