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

Athena执行INSERT INTO时字符串含单引号逗号报错如何解决

Athena INSERT语句单引号转义问题修复

问题复现

向存储格式为Parquet的Athena表database.product插入数据时,执行以下SQL触发报错:

insert into database.product (title,description) 
values (
'Waxpol Vinyl & Leather Polish (35', Ltr.)',
'Restores with an extremely High & Durable Shine & Gloss.'
)

报错截图如下:
SQL执行报错截图

根因分析

报错和字符串中的逗号无关,逗号在单引号包裹的字符串常量内属于合法字符,不会触发语法解析错误。
触发报错的核心原因是title字段值中35后面的单引号未做转义:Athena的SQL解析逻辑中,单个单引号是字符串常量的起止边界符,未转义的内部单引号会被引擎识别为字符串提前结束,后续的 Ltr.)'片段会被判定为非法语法,最终抛出解析错误。

修复方案

Athena标准SQL中,字符串内部的单引号需要用两个连续的单引号做转义,不要使用反斜杠转义(反斜杠转义在Athena标准SQL模式下不生效)。
修复后可正常执行的SQL如下:

insert into database.product (title,description) 
values (
'Waxpol Vinyl & Leather Polish (35'', Ltr.)',
'Restores with an extremely High & Durable Shine & Gloss.'
)

补充说明

  • 该语法规则和表的底层Parquet存储格式没有关联,是Athena引擎解析SQL的通用要求
  • 批量插入数据时如果字段内容存在大量单引号,建议优先使用参数化查询方式,避免手动转义出现遗漏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 03:45:33