You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle数据库中如何仅指定一次列实现INSERT ALL批量插入?

关于Oracle INSERT ALL语法的精简写法问题

很遗憾,Oracle的INSERT ALL语法不支持你提出的这种只写一次列定义、后跟多个VALUES组的写法。标准的INSERT ALL要求每一行插入都必须对应独立的INTO ... VALUES(...)子句,哪怕目标是同一张表,也没法合并列名部分。

不过你可以用以下方式来大幅缩小SQL文件体积:

  • 如果使用Oracle 12c及以上版本:直接使用普通INSERT语句的多行VALUES语法,这是最直接的替代方案,只需要写一次列名,多个值组用逗号分隔即可:
INSERT INTO "table" (col1, col2, col3....)
VALUES
(val1, val2, val3...),
(val1, val2, val3...),
...;

这种写法完全满足你的需求,能把文件体积减半,而且执行效率通常比INSERT ALL更高。

  • 如果是Oracle 12c以下版本:可以考虑用SQL*Loader工具配合CSV数据文件来批量导入,或者通过外部表加载数据,这种方式不仅文件体积小,导入性能也远优于纯SQL脚本。
  • 另外也可以用脚本生成工具(比如Python、Shell脚本)来自动生成精简的插入语句,避免手动重复编写列名。

内容的提问来源于stack exchange,提问作者Daniel Goldberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 16:02:53