https://blog.csdn.net/gnail_oug/article/details/80005957
Debido a la necesidad de convertir la base de datos mysql a oracle, el lote inserta múltiples valores de mysql en el archivo de mapeo de mybatis, pero después de cambiar a la biblioteca oracle, sql informa un error. Entonces, Oracle no admite este método de inserción en múltiples valores
mysql: INSERTAR EN LOS VALORES de los usuarios (nombre, edad) ('ccc', 333), ('aaa', 222), ('bbb', 111);
Resulta que insertar orígenes de datos múltiples con un sql de mysql no es aplicable en Oracle.
insert into bill.TB_1174253740908220416(BILL_ID,ACCOUNT_BODY)
select SEQ_DEAL_FLOW.nextval,A.* from (
SELECT '李春英1' from dual
UNION
SELECT '李春英2' from dual
UNION
SELECT '李春英3' from dual
) A
Cómo escribir mybatis (en caso de secuencia)
<!-- 批量插入 -->
<insert id="inserts" parameterType="java.util.List">
insert into PRESON
select SEQ_PRESON_ID.NEXTVAL,A.* from(
<foreach collection="list" item="item" index="index"
separator="UNION">
SELECT
#{item.presonName},
#{item.presonTel},
#{item.presonEmail},
#{item.presonAge}
from dual
</foreach>
) A
</insert>
Sin secuencia
https://www.jianshu.com/p/fdba0e023db8
<insert id="insertuser" parameterType="java.util.List" useGeneratedKeys="false" >
insert into user
(
username,
sex,
age
)
<foreach close=")" collection="list" item="item" index="index" open="(" separator="union all">
select
#{item.username},
#{item.sex},
#{item.age}
from dual
</foreach>
</insert>
El primer tipo de inserción
insert into bill.TB_1174253740908220416(BILL_ID,ACCOUNT_BODY)
select 1,'李春英1' from dual
union
select 2,'李春英2' from dual
La segunda instrucción de inserción
INSERT all
INTO bill.TB_1174253740908220416 (BILL_ID,ACCOUNT_BODY) VALUES(1,'李春英')
INTO bill.TB_1174253740908220416 (BILL_ID,ACCOUNT_BODY) VALUES(2,'李春英')
SELECT 1 FROM dual;