出于某种原因,当我尝试执行初始化数据库和表的测试时,这会不断弹出。我使用的是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的代码并得到了相同的错误。 / p>
该程序的代码是:
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中编辑了我的代码,当它到达单词subscriber时切断了commnad:
<jdbc:script location="classpath:/input_data/createTriggers.sql" separator="subscriber" />
它确实切断了!我得到的错误是:
Unexpected token: in statement [CREATE TRIGGER ]
我真的很难过。还有其他人遇到过这个吗?
答案 0 :(得分:1)
最后得到了这个问题的答案
HSQLDB Trigger Statement ERROR when using SimpleJdbcTestUtils.executeSqlScript()
原来我必须将hsqldb更新为2.3.2。
出于某种原因,当我google hsqldb maven时,弹出的第一个项目是1.8版本。我认为这是最新的。我的坏。