union all

批量插入多条数据(Oracle及Mybatis)

余生长醉 提交于 2020-01-21 14:10:20
** 1. 采用Union all 拼接(主键不用序列) 1.1. Sql // 括号内为要插入的字段, 使用Union all拼接的方式 // Union All 对结果集进行并集操作,包括重复行 insert into Ecc_tcm . prm_skill_assess ( OID , PERSON_NAME , CARTNO ) select 1 , 'Jack' , 610528 from dual // 第一条 union all select 2 , 'Tom' , 123456 from dual // 第二条 union all select 3 , 'Lucy' , 123456 from dual ; // 第三条 1.2. Mybatis文件 // ECC_TCM.prm_skill_assess_S.nextval用序列获得主键OID的方式,这种写法不支持,否则会报错 // SQLSyntaxErrorException: ORA-02287: 此处不允许序号 < insert id = "insertSkillAssessList" parameterType = "java.util.List" > insert into Ecc_tcm . prm_skill_assess t ( t . OID , t . PERSON_NAME , t .

how to perform union clause query with hibernate criteria api

匿名 (未验证) 提交于 2019-12-03 02:27:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: SELECT supplier_id FROM suppliers UNION ALL SELECT supplier_id FROM orders; i just creating two criteria above "UNION ALL" clause of query and below "UNION ALL" clause of query. but my question is how i perform UNION ALL clause in criteria? Thanks in Advance. 回答1: with criteria I think hibernate does not support UNION ALL but you can use two criteria queries to get the expected result: Criteria cr1 = session.createCriteria(Suppliers.class); cr1.setProjection(Projections.projectionList() .add( Projections.property("supplier_id"), "supplier_id

mapper.xml 循环 ibatis

匿名 (未验证) 提交于 2019-12-03 00:19:01
循环: < select id= "searchPriceFour" resultType= "java.util.HashMap" > < foreach collection= "list" index= "index" item= "item" open= "(" separator= "UNION ALL" close= ")" > select * from 表 where bak1 = #{item} </ foreach > </ select > 这是一个循环,service传来list集合。 item是个数组,比如:【“大宗”,“其他”】 open=”(” separator=”union all” close=”)的意思:以“(”开始,中间用“union all”链接,以“)”结束。 结果:(select * from 表 where bak1 = ‘大宗’) UNION ALL (select * from 表 where bak1 = ‘其他’) 文章来源: mapper.xml 循环 ibatis

Oracle数据库批量foreach涉及union all插入自增长主键实现方案

空扰寡人 提交于 2019-11-27 08:54:45
事件发生的背景同动弹同步,我接到了一个把我的项目从mysql迁移到oracle数据库的噩耗。本来以为这事件麻烦的事儿,但是实际情况比我想的麻烦的多。 顺便总结一下我换库遇到的种种问题: 1、mysql和oracle的分页方式不一样,涉及到分页的地方要注意 2、oracle的自增长要写函数自己实现,并不能像MySql那样去直接用自增长属性 3、mysql中的很多常用字段如 id,name,sort,description...在Oracle中被强制为关键字占用,所以你在mysql中导出的建表语句并不适用 4、mysql和oracle中字段类型不通用,这也导致了你mysql中导出的建表语句并不适用 5、日期字段的处理,这个我就不多说了 6、空字符的处理,MYSQL的非空字段也有空的内容,ORACLE里定义了非空字段就不容许有空的内容。按MYSQL的NOT NULL来定义ORACLE表结构,导数据的时候会产生错误。因此导数据时要对空字符进行判断,如果为NULL或空字符,需要把它改成一个空格的字符串。 这些都是次要的,下面我们来切入主题: 第一步,实现oracle的自增长,首先你要有一个序列 CREATE SEQUENCE portal_sequence --序列名 INCREMENT BY 1 -- 每次加几个 START WITH 250 -- 从1开始计数 NOMAXVALUE --