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

Oracle SQL Developer导入200万行CSV遇内存超限,求快速导入方法

解决Oracle SQL Developer导入大CSV文件的“overhead limit exceeded”问题

针对200多万行的CSV文件,SQL Developer图形界面导入出现内存限制报错,推荐以下几种高效导入方案:

方案一:用SQL Developer创建外部表同步数据

外部表是直接映射CSV文件的虚拟表,无需先把数据加载到内存,适合大数据量:

  • 连接目标数据库后,右键目标用户 → 导入数据 → 选择CSV文件,导入类型选「外部表」
  • 配置参数:指定CSV文件路径(确保数据库服务器能访问该路径,若本地文件需上传到服务器目录),设置字段分隔符、换行符,匹配CSV的字段格式
  • 创建外部表后,执行SQL语句将数据同步到实体表:
CREATE TABLE new_target_table AS SELECT * FROM your_external_table;

方案二:使用SQL*Loader命令行工具(最推荐)

这是Oracle官方的高效批量导入工具,完全规避图形界面的内存限制:

  1. 编写控制文件(示例命名为csv_load.ctl),内容如下(根据你的CSV字段调整):
LOAD DATA
INFILE '/path/to/your/file.csv' -- CSV文件路径(服务器端路径)
INTO TABLE target_table -- 目标表名,需提前创建好匹配字段的表
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' -- 匹配CSV的分隔符和引号规则
TRAILING NULLCOLS -- 处理末尾空字段
(
    col1, -- 按CSV字段顺序对应表字段
    col2,
    col3,
    col4
)
  1. 执行导入命令(替换为你的数据库账号信息):
sqlldr username/password@your_db control=csv_load.ctl log=load.log direct=true rows=10000
  • direct=true:启用直接路径导入,跳过数据库缓冲区,大幅提升速度
  • rows=10000:设置每次提交的行数,平衡性能和事务开销

方案三:调整SQL Developer导入参数(应急方案)

如果坚持用图形界面导入,可调整参数绕过内存限制:

  • 打开SQL Developer,依次点击「工具」→「首选项」→「数据库」→「导入导出」
  • 找到批量导入设置,增大「提交批量大小」(比如设为10000),勾选「使用数组插入」
  • 重新执行导入,选择「插入模式」,但这种方式速度远不及前两种,仅适合临时应急

注意:INSERT模式本身可行,但SQL Developer图形界面的内存限制导致大数据量下报错,因此优先推荐外部表或SQL*Loader方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 13:05:11