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

Amazon Athena通过Java JDBC创建表失败:求助原因与修复方案

Amazon Athena JDBC创建表报错:no viable alternative at input 'CREATE TABLE "gjhf"'

错误信息

java.sql.SQLException
java.sql.SQLException: [Simba][AthenaJDBC](100071) An error has been thrown from the AWS Athena client. line 1:14: no viable alternative at input 'CREATE TABLE "gjhf"' [Execution ID not available]

Caused by: com.simba.athena.amazonaws.services.athena.model.InvalidRequestException: line 1:14: no viable alternative at input 'CREATE TABLE "gjhf"' (Service: AmazonAthena; Status Code: 400; Error Code: InvalidRequestException; Request ID: 5341d5ac-0d24-430c-bcbe-fdedb9c95327)

错误原因

报错核心是Athena的SQL解析器无法识别你传递的表名格式——SQL语句里的表名被转义成了"gjhf"(HTML转义后的双引号),不符合Athena遵循的HiveQL语法规则。

修复方法

  • 直接移除表名的双引号:因为你的表名gjhf是纯字母组合,无特殊字符或大小写敏感需求,完全可以不用双引号包裹,修改后的SQL如下:
    CREATE TABLE gjhf (
        -- 这里填写你的表字段定义
    )
    
  • 若需保留双引号(比如表名含特殊字符):确保JDBC传递的SQL中使用真实的双引号,而非转义后的",正确格式:
    CREATE TABLE "gjhf" (
        -- 表字段定义
    )
    
  • 检查JDBC代码的SQL生成逻辑:如果是通过字符串拼接、模板生成SQL,要避免把双引号转义成HTML实体;推荐使用PreparedStatement来构建SQL,能自动处理标识符的转义问题,示例代码:
    String createTableSql = "CREATE TABLE gjhf (id INT, username STRING)";
    PreparedStatement stmt = connection.prepareStatement(createTableSql);
    stmt.executeUpdate();
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:55:27