Создание триггера или процедуры с использованием HSQL и Spring Script Utils

По какой-то причине это продолжает появляться, когда я пытаюсь выполнить тест, который инициализирует базу данных и таблицы. Я использую Spring 4.1.2.RELEASE.

При попытке создать триггер:

Caused by: java.sql.SQLException: Unexpected end of command: REFERENCING

Код для триггера:

CREATE TRIGGER subscriber_created_at BEFORE INSERT ON subscriber
REFERENCING new ROW AS newrow
FOR EACH ROW BEGIN ATOMIC
    IF newrow.dateCreated IS NULL
    THEN SET newrow.dateCreated = NOW();
    END IF;
END;/;

Затем, после поиска SO, если я нашел эту ссылку, в которой рассказывается, как ее исправил OP, и просто для тестирования, чтобы увидеть, могу ли я получить другую ошибку, он попробовал код OP и получил ту же ошибку.

Код процедуры:

 CREATE PROCEDURE p_recordTaskExecution(IN userTaskId BIGINT, 
 IN isSuccess BOOLEAN, 
 IN statusMessage VARCHAR(2000), 
 IN operationsPerformed BIGINT, 
 INOUT procedureStatus BOOLEAN) BEGIN ATOMIC
 IF userTaskId = 1 Then
      SET procedureStatus = true; 
 ELSE
      SET procedureStatus = false;
 END IF;
 END; /;

При попытке создать процедуру:

Caused by: java.sql.SQLException: Unexpected token: PROCEDURE in statement [CREATE PROCEDURE]

И для тестирования я отредактировал свой код в xml, чтобы обрезать команду, когда она достигает слова «подписчик»:

<jdbc:script location="classpath:/input_data/createTriggers.sql" separator="subscriber" />

И оно отрезало! Ошибка, которую я получил, была:

 Unexpected token:  in statement [CREATE TRIGGER ]

Я действительно озадачен. кто-нибудь еще сталкивался с этим?


person Francis Zabala    schedule 18.04.2015    source источник


Ответы (1)


Наконец-то получил ответ на этот ТАК вопрос

ОШИБКА оператора триггера HSQLDB при использовании SimpleJdbcTestUtils.executeSqlScript()

Оказывается, мне пришлось обновить hsqldb до версии 2.3.2.

По какой-то причине, когда я гуглил hsqldb maven, первым выпадающим пунктом была версия 1.8. Я предположил, что это было последним. Виноват.

person Francis Zabala    schedule 18.04.2015