Ожидается синтаксис триггера в HsqlDB :;

Я использую hsqldb для своих модульных тестов. Моя продукция использует Oracle 11G Db. Когда я запускаю свой стартовый скрипт, как указано выше:





  
  

Я действительно являюсь примером триггера в HSQL docs .

Я вижу этот пост: Но его решение мне не подходит, или я его не понимаю.

У меня всегда эта ошибка:

java.lang.IllegalStateException: Failed to load ApplicationContext
    at org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:157)
    at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:109)
    at 
...
   ... 38 more
Caused by: org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL script statement at line 9 of resource class path resource [sql/init-cct-schema.sql]:  CREATE TRIGGER TI_TYPE_MVT BEFORE INSERT ON TYPE_MVT     REFERENCING NEW AS newrow FOR EACH ROW     BEGIN ATOMIC       IF newrow.TYPE_MVT_PK is null THEN         SET newrow.TYPE_MVT_PK = SQ_TYPE_MVT.nextval
    at org.springframework.jdbc.datasource.init.ResourceDatabasePopulator.executeSqlScript(ResourceDatabasePopulator.java:199)
    at org.springframework.jdbc.datasource.init.ResourceDatabasePopulator.populate(ResourceDatabasePopulator.java:132)
    at org.springframework.jdbc.datasource.init.CompositeDatabasePopulator.populate(CompositeDatabasePopulator.java:55)
    at org.springframework.jdbc.datasource.init.DatabasePopulatorUtils.execute(DatabasePopulatorUtils.java:45)
   ... 41 more
Caused by: java.sql.SQLSyntaxErrorException: unexpected end of statement:  required: ;
    at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
    at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
    at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
    at org.hsqldb.jdbc.JDBCStatement.execute(Unknown Source)
    at org.springframework.jdbc.datasource.init.ResourceDatabasePopulator.executeSqlScript(ResourceDatabasePopulator.java:184)
   ... 44 more
Caused by: org.hsqldb.HsqlException: unexpected end of statement:  required: ;
    at org.hsqldb.error.Error.parseError(Unknown Source)

Вот мой триггер:

SET DATABASE SQL SYNTAX ORA TRUE;    
CREATE TRIGGER TI_TYPE_MVT BEFORE INSERT ON TYPE_MVT
        REFERENCING NEW AS newrow FOR EACH ROW
        BEGIN ATOMIC
          IF newrow.TYPE_MVT_PK is null THEN
            SET newrow.TYPE_MVT_PK = SQ_TYPE_MVT.nextval;
          END IF;
        END;

Я пытаюсь без финального ';', он продолжает терпеть неудачу.

Вот моя зависимость от HSQL:


  org.hsqldb
  hsqldb
  2.2.8

Любые идеи?

6
задан Community 23 May 2017 в 10:30
поделиться