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

使用DBMS_CLOUD向ADB加载CSV报KUP-04020错误如何指定readsize解决

错误根因

KUP-04020报错本质是CSV文件中存在长度超过当前读取缓冲区大小的单行记录,DBMS_CLOUD默认的readsize参数值为10MB(对应报错中的10002432字节),当单行记录长度超过该值时就会触发缓冲区溢出错误。

修复步骤
  1. 首先确认CSV文件格式正常,不存在换行符丢失导致多行合并为单行的异常情况
  2. 计算你需要的缓冲区大小:取CSV最长单行记录的字节数,往上取整到合适的数值(单位为字节),取值范围为1MB~100MB
  3. 在调用DBMS_CLOUD加载数据的接口中,在format参数里添加readsize配置项,传入你计算好的数值

场景1:使用DBMS_CLOUD.COPY_DATA直接加载数据到表

BEGIN
  DBMS_CLOUD.COPY_DATA(
    table_name => 'YOUR_TARGET_TABLE', -- 替换为实际目标表名
    credential_name => 'YOUR_OSS_CREDENTIAL', -- 替换为实际对象存储访问凭证名
    file_uri_list => '你的CSV文件对象存储地址',
    format => json_object(
        'type' value 'csv',
        'readsize' value 20971520, -- 示例设置为20MB,可根据实际调整
        'skipheaders' value 1 -- 有表头的场景配置,无表头可删除
    )
  );
END;
/

场景2:使用DBMS_CLOUD.CREATE_EXTERNAL_TABLE创建外部表后加载

BEGIN
  DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
    table_name => 'YOUR_EXTERNAL_TABLE', -- 替换为实际外部表名
    credential_name => 'YOUR_OSS_CREDENTIAL', -- 替换为实际对象存储访问凭证名
    file_uri_list => '你的CSV文件对象存储地址',
    column_list => '列名1 类型1, 列名2 类型2...', -- 替换为实际表字段定义
    format => json_object(
        'type' value 'csv',
        'readsize' value 20971520, -- 示例设置为20MB,可根据实际调整
        'skipheaders' value 1
    )
  );
END;
/
注意事项
  • readsize参数单位为字节,最大值不能超过100MB(104857600字节),设置过大会导致不必要的内存占用
  • 调整参数后如果仍报错,建议先校验CSV文件的换行符、字段封闭符配置是否正确,避免因数据格式异常导致的单行记录超长

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:36:01