问题描述
在使用Oracle时,某段业务逻辑需要在一个标签中执行两条修改的sql命令
内容如下
<update id="test">
UPDATE table1 SET number=ABS(number);
UPDATE table2 SET number=ABS(number);
</update>
已经用了;
来表示SQL的结束,但是请求接口时却报错无效字符,而且无效字符说的就是;
解决办法
大部分文章说的通用解决办法是在JDBC
的字符串连接中添加参数allowMultiQueries=true
但我们用的Oracle,这个是MySQL连接中的参数
Oracle的话,需要在语句的前后添加关键字BEGIN
和END;
,注意END
后面一定要加;
所以,我们修改后的标签内容如下
<update id="test">
BEGIN
UPDATE table1 SET number=ABS(number);
UPDATE table2 SET number=ABS(number);
END;
</update>
重启项目后,再次测试,数据就修改成功了