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

如何将大型.xlsx文件导入Oracle SQL表 [SQL导入数据]

根本原因

Oracle SQL Developer的Excel导入功能底层依赖Apache POI库解析文件,解析时会将整个文件的单元格数据全量加载到堆内存中,实际内存占用是源文件体积的3~10倍,你设置的4G堆内存无法支撑100万行Excel的全量解析开销,转.xls格式也不会降低POI的解析内存占用,因此依旧报错。

可行解决方案
  • 拆分源数据文件:将原100万行的Excel文件拆分为每个10~20万行的小文件,分批导入,避免单次加载的内存压力超出堆内存上限。
  • 更换为CSV格式导入:把.xlsx文件另存为*CSV UTF-8(逗号分隔)*格式,CSV是纯文本格式,解析内存开销比Excel低90%以上,导入时选择CSV格式作为数据源,单批次即可支撑百万行级数据加载。
  • 调高JVM堆内存上限:如果你的设备可用内存在8G以上,将sqldeveloper.conf配置中的AddVMOption -Xmx4096M修改为AddVMOption -Xmx8192M,调整后完全关闭SQL Developer再重新启动生效。
  • 使用Oracle原生导入工具:如果上述方案仍无法解决,放弃图形化导入功能,使用Oracle自带的SQLLoader工具编写控制文件加载CSV数据,百万行数据可在分钟级完成导入,完全不会出现堆内存溢出问题。
  • 优化导入配置:导入前先禁用目标表上的索引、触发器,导入完成后再重建,可大幅降低导入过程的内存占用,同时提升导入速度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:54:04