Oracle数据库使用mybatis的foreach标签应注意的问题
来源:互联网 发布:base x以太网端口 编辑:程序博客网 时间:2024/06/09 16:08
使用mybatis做数据持久化操作的时候,遇到一个问题,基于oracle数据库做insert操作时,如果使用mybatis的foreach标签,会报错,原来的insert语句如下:
<insert id="importExcelData"> insert into tbl_marketing_activities (id,owner,type,name,state,startdate,enddate,budgetcost,actualcost,description,createby,createtime) values <foreach collection="list" item="obj" separator=","> (#{obj.id},#{obj.owner},#{obj.type},#{obj.name},#{obj.state},#{obj.startDate},#{obj.endDate},#{obj.budgetcost},#{obj.actualcost},#{obj.description},#{obj.createBy},#{obj.createTime}) </foreach> </insert>
执行之后,报错:“sql未正确结束”,查阅相关资料以后,发现oracle数据库不支持原生的foreach操作,修改之后,语句如下:
<insert id="importExcelData"> insert into tbl_marketing_activities (id,owner,type,name,state,startdate,enddate,budgetcost,actualcost,description,createby,createtime) select t.* from( <foreach collection="list" item="obj" separator="union all"> select #{obj.id},#{obj.owner},#{obj.type},#{obj.name},#{obj.state},#{obj.startDate},#{obj.endDate},#{obj.budgetcost},#{obj.actualcost},#{obj.description},#{obj.createBy},#{obj.createTime} from dual </foreach> ) t </insert>
此处注意,separator应使用union all,并且用select * from dual 语句代替values()
特此记录
阅读全文
0 0
- Oracle数据库使用mybatis的foreach标签应注意的问题
- mybatis <forEach>标签的使用
- mybatis <forEach>标签的使用
- Mysql数据库向Oracle转换应注意的问题
- Mysql数据库向Oracle转换应注意的问题
- mybatis 重写时应注意的问题
- mybatis的foreach标签。
- mybatis的foreach标签
- Oracle管理应注意的问题
- 数据库设计中应注意的问题
- 数据库设计中应注意的问题
- 使用oracle数据库需要注意的问题
- 关于使用Mybatis逆向工程针对Oracle数据库表生成代码需要注意的问题
- mybatis foreach标签的解释
- Mybatis的foreach标签详解
- 应注意的问题
- 使用fopen时应注意的问题
- 使用Sql时应注意的问题
- 机器学习之树回归
- 给自己要开始认真写博客的一些忠告
- ProgrammingError: 错误: 字段 res_partner.instructor 不存在
- Android动态加载基础:ClassLoader工作机制
- Crazy Learning for Day 5
- Oracle数据库使用mybatis的foreach标签应注意的问题
- 正则表达式语法
- redis 002
- Angular2错误收集一:加了form表单,没有给输入表单加name属性
- AndroidStudio导入Android-PullToRefresh
- Linux 常用命令2
- 初识Attribute -1
- 37 《超级符号就是超级创意:席卷中国市场14年的华与华战略营销创意方法》 -豆瓣评分8.7
- IE下的伪类:first-child和:last-child版本支持问题