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

如何用aws_s3.query_export_to_s3从RDS/Aurora导出到S3并使用制表符分隔符?

解决Aurora PostgreSQL导出S3时制表符分隔符报错问题

我尝试运行以下SQL代码导出数据到S3:

SELECT
     *
 FROM 
 aws_s3.query_export_to_s3(
 'SELECT * FROM <tbl> WHERE <cond>',
 aws_commons.create_s3_uri(
        '<bucket_name>',
        '<file_name>',
        '<region>'
    ),
        options :='format csv, HEADER true, delimiter $$\t$$'
    )
 ;

按照AWS文档设置了自定义分隔符,但导出失败,报错:ERROR: COPY delimiter must be a single one-byte character。我认为制表符符合Postgres COPY命令要求,求解决思路。


解决思路:

  • 直接输入字面制表符:PostgreSQL的美元引号($$)不会解析转义序列,$$\t$$会被当作普通的\t字符串而非制表符。直接在delimiter参数里按Tab键输入实际的制表符,写成delimiter $$ $$(中间是Tab键生成的制表符)。
  • 使用转义字符串语法:改用带E前缀的单引号字符串来启用转义,比如:
    options := E'format csv, HEADER true, delimiter \'\\t\''
    
    这里E前缀开启转义,\\t会被解析为单字节的制表符。
  • 验证分隔符字节值:先执行SELECT E'\\t'::bytea;确认制表符的字节表示(ASCII码9,对应单字节),确保传递给query_export_to_s3的是符合要求的单字节字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 23:20:41