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

调用dbms_cloud.export_data导出CSV至AWS S3时遇ORA-20000错误求助

问题场景

我首次尝试将数据以CSV格式导出至已有的AWS S3存储桶,执行了以下SQL语句:

call dbms_cloud.export_data(
    credential_name => 'cred', 
    file_uri_list => 'https://s3.us-east-2.amazonaws.com/bucket/test/object.csv',
    format => json_object('type' value 'csv', 'compression' value 'gzip'), 
    query => 'select * from table'
);

触发如下错误:

ERROR at line 1:
ORA-20000: Export operation is only allowed for Oracle Datapump
ORA-06512: at "C##CLOUD$SERVICE.DBMS_CLOUD", line 1181
ORA-06512: at "C##CLOUD$SERVICE.DBMS_CLOUD", line 3943
ORA-06512: at "C##CLOUD$SERVICE.DBMS_CLOUD", line 3962
ORA-06512: at line 1

但使用JSON格式且关闭压缩时可正常执行,请问为何CSV格式无法工作?


问题原因与解决办法

这个报错的核心原因是DBMS_CLOUD.EXPORT_DATA的compression参数仅支持Oracle Datapump格式的导出。当你指定CSV类型同时开启gzip压缩时,Oracle会尝试调用仅适用于Datapump的压缩逻辑,而CSV不属于Datapump格式,因此触发了“仅允许Oracle Datapump导出”的限制错误。

而你用JSON格式且关闭压缩时,属于DBMS_CLOUD直接支持的纯文本格式导出场景,所以可以正常执行。

如果需要导出压缩后的CSV文件,推荐两种可行方案:

  • 方案1:先导出未压缩的CSV到S3,再通过AWS Lambda等工具对文件进行gzip压缩;
  • 方案2:改用Oracle Datapump格式导出(将format中的type设为datapump),该格式天然支持压缩,之后若需要CSV格式,可再将Datapump文件转换为CSV。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 00:33:26