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

如何使用DBMS_CLOUD将包含多行字段的CSV文件加载至ADW?

解决ADW中使用DBMS_CLOUD.COPY_DATA加载含多行字段CSV的问题

你遇到的问题核心在于:默认情况下DBMS_CLOUD.COPY_DATA会把换行符当作记录分隔符,但你的O_DESC字段用双引号包裹了多行内容,过程误把字段内的换行当成了新记录的开始,导致加载失败。

关键修复方案

你需要在format参数中添加"quote" value '"'配置,同时修正recorddelimiter的错误写法。这个参数会告诉COPY_DATA:双引号包裹的内容是一个完整字段,哪怕里面包含换行符也不会被当作新记录。

修改后的完整执行代码

CREATE TABLE AW_TEST (
 O_NO VARCHAR2(8),
 O_DESC VARCHAR2(200),
 O_DATE DATE
);

BEGIN
DBMS_CLOUD.COPY_DATA(
 table_name =>'AW_TEST' ,
 credential_name =>'AW_CRED_NAME' ,
 file_uri_list => 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/mynamespace/b/mybucket/o/test.csv' ,
 format => json_object(
     'type' value 'CSV', 
     'delimiter' value ',', 
     'skipheaders' value '1', 
     'dateformat' value 'DD-Mon-YYYY HH24:MI:SS', 
     'blankasnull' value 'true', 
     'quote' value '"',
     'recorddelimiter' value '\r\n'
 )
);
END;
/

修复逻辑说明

  1. quote参数的作用:指定字段的包裹字符为双引号,过程会自动将双引号之间的所有内容(包括换行、逗号等特殊字符)视为单个字段值,不会拆分。
  2. 修正recorddelimiter:你之前的写法'\'\r\n\''是错误的,正确写法是直接使用'\r\n'(如果是Unix风格换行可以用'\n')。启用quote参数后,过程会自动忽略引号内的换行,不会把它当作记录分隔符。

执行这段修改后的代码,就能正确加载你的两行数据,包括那些包含多行内容的O_DESC字段了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 18:57:40