【发布时间】:2019-04-22 12:44:02
【问题描述】:
我正在用 Java 和 myBatis 编写一个程序。程序被以下插入卡住而没有错误消息。我检查了Oracle,没有插入任何数据。我不知道为什么会这样。通常 sql 或 myBatis 都会出现某种错误。
id type number(10)
id_card_no varchar2(50)
gene_info varchar2(2000)
如果需要更多信息,请尽管询问。谢谢!
<insert id="addGenotype" parameterType="genotype" useGeneratedKeys="false" >
insert into person_genotype (ID,ID_CARD_NO,GENE_INFO)
<foreach collection="list" item="genotype" index="index" separator="UNION ALL">
(select
#{genotype.genotypeId},#{genotype.idCardNumber},#{genotype.geneInfo}
FROM DUAL)
</foreach>
</insert>
【问题讨论】:
-
你为什么使用
foreach和SELECT FROM DUAL? -
@EvgeniEnchev 最初我使用值而不是 select from dual,逗号而不是 union all 作为分隔符,但我发现它适用于 mysql 但不适用于 oracle。我从另一个帖子中学到了这种方法。
-
语法将被插入到 table(...) (select ... from dual) union all (select ... from dual)
标签: java sql oracle optimization mybatis