Oracle使用MyBatis在Mapper.xml中单个标签ID编写多行SQL报错:ORA-00911: 无效字符 解决办法

问题描述

在使用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的话,需要在语句的前后添加关键字BEGINEND;,注意END后面一定要加
所以,我们修改后的标签内容如下

<update id="test">
	BEGIN
		UPDATE table1 SET number=ABS(number);
	    UPDATE table2 SET number=ABS(number);
	END;
</update>

重启项目后,再次测试,数据就修改成功了

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值