连接查询字符串时出现SQL语法错误

什拉米克
try(Connection dbConnection = DBConnectionManager.getIntakeConnection();
PreparedStatement preparedStmtSetMaxStrikeId = dbConnection.prepareStatement(
    "SELECT MAX(strike_id) FROM strike WHERE 'SELECT p.party_type_id,"
    + "p.csa_score,p.party_tn,p.rec_create_date,"
    + "s.strike_id, s.strike_date, s.strike_level, s.strike_status,
       s.appealable,s.appeal_status,s.rec_change_date,s.event_id,
       s.is_email_processed,s.policy_id"
    + "FROM strike s "
    + "INNER JOIN parties p"
    + "ON p.party_id = s.party_id"
    + "WHERE p.account ='"+appealStatus.getSubscriberId()
    +"'AND strike_status = '"+OCIRISConstants.STRIKE_STATUS_ACTIVE+"' ");)

错误如下。
错误中的整数是订户ID。

您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第1行的'0957936101205'和strike_status ='ACTIVE'附近使用

安德烈亚斯(Andreas)

错误消息显示:

0957936101205'AND strike_status = 'ACTIVE'第1行的' '附近

它实际上是在标识0后面的',该结尾以第一行开头的文本文字,因为这是错误的SQL:

SELECT MAX(strike_id) FROM strike WHERE '...'0957936101205'AND strike_status = 'ACTIVE'
--                                          ^^ BAD

这是带有注释的代码:

try(Connection dbConnection = DBConnectionManager.getIntakeConnection();
PreparedStatement preparedStmtSetMaxStrikeId = dbConnection.prepareStatement(
      "SELECT MAX(strike_id) FROM strike WHERE 'SELECT p.party_type_id,"
//                                             ^ What is this? Even without ' it makes no sense
//                                             ^ But it STARTS A TEXT LITERAL
    + "p.csa_score,p.party_tn,p.rec_create_date,"
    + "s.strike_id, s.strike_date, s.strike_level, s.strike_status, s.appealable,s.appeal_status,s.rec_change_date,s.event_id,s.is_email_processed,s.policy_id"
    + "FROM strike s "
//     ^ Missing space, but it's in a text literal so doesn't matter
    + "INNER JOIN parties p"
    + "ON p.party_id = s.party_id"
//     ^ Missing space, but it's in a text literal so doesn't matter
    + "WHERE p.account ='"+appealStatus.getSubscriberId()
//     ^ Missing space, but it's in a text literal so doesn't matter
//                      ^ END TEXT LITERAL from first line
//                         ^ error complains about inserted value 0957936101205
    +"'AND strike_status = '"+OCIRISConstants.STRIKE_STATUS_ACTIVE+"' ");)
//    ^ Starts a new text literal
//     ^ Missing space, but it's in a text literal so doesn't matter
//                         ^ end text literal
//                            ^ would complain about inserted value ACTIVE
//                                                                  ^ Dangling '

同样,您不应该使用字符串连接来构建SQL,因为它会导致语法错误,并使您容易受到SQL Injection攻击,从而使黑客能够窃取您的数据并删除表。

假设姓名缩写有SELECT MAX( ... WHERE '误,以下是一个经过清理的版本,为清楚起见,其格式如下:

String sql = "SELECT p.party_type_id, p.csa_score, p.party_tn, p.rec_create_date" +
                  ", s.strike_id, s.strike_date, s.strike_level, s.strike_status" +
                  ", s.appealable, s.appeal_status, s.rec_change_date, s.event_id" +
                  ", s.is_email_processed, s.policy_id" +
              " FROM strike s" +
             " INNER JOIN parties p ON p.party_id = s.party_id" +
             " WHERE p.account = ?" +
               " AND strike_status = ?";
try (Connection conn = DBConnectionManager.getIntakeConnection();
     PreparedStatement stmt = conn.prepareStatement(sql)) {
    stmt.setString(1, appealStatus.getSubscriberId());
    stmt.setString(2, OCIRISConstants.STRIKE_STATUS_ACTIVE);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Python调用bash脚本时出现“语法错误:引号末尾的字符串”错误

来自分类Dev

从Python调用bash脚本时出现“语法错误:引号末尾的字符串”错误

来自分类Dev

尝试自动执行WinSCP时出现Visual Basic字符串语法错误

来自分类Dev

MySQL-尝试插入字符串/数字时出现语法错误

来自分类Dev

将字符串转换为 int 时出现语法错误

来自分类Dev

C# SQL Server 数据库连接字符串语法错误

来自分类Dev

在 sql 查询中使用 LIKE 时出现语法错误

来自分类Dev

Excel VBA SQL:查询字符串中日期的语法错误

来自分类Dev

拆分字符串时angularjs解析语法错误

来自分类Dev

C#字符串中的SQL语法错误

来自分类Dev

C#字符串中的SQL语法错误

来自分类Dev

字符串分配语法错误

来自分类Dev

字符串语法错误

来自分类Dev

运行xampp安装程序文件时出现“语法错误:带引号的字符串未终止”

来自分类Dev

运行xampp安装程序文件时出现“语法错误:带引号的字符串未终止”

来自分类Dev

将 DISTINCT 关键字放入连接查询时出现语法错误

来自分类Dev

在SQL中执行左外连接时出现SQL语法错误

来自分类Dev

连接字符串正确时出现“实例失败”错误

来自分类Dev

查询表达式中字符串的语法错误

来自分类Dev

查询表达式中字符串的语法错误

来自分类Dev

shortssize = S 中查询表达式中字符串的语法错误

来自分类Dev

IBM Cloud Functions:尝试连接到 DB2 时出现 SQL 语法错误

来自分类Dev

在Pandas SQL查询中传递参数时出现语法错误

来自分类Dev

在 UPDATE 查询中使用 INTERSECT 时出现 SQL 语法错误

来自分类Dev

从PHP插入查询时出现MySQL语法错误

来自分类Dev

尝试动态编写搜索查询时出现语法错误

来自分类Dev

在mysql中选择查询时出现语法错误

来自分类Dev

尝试运行 IF EXISTS 查询时出现语法错误

来自分类Dev

使用字符串值更新时,sqlite语法错误

Related 相关文章

  1. 1

    从Python调用bash脚本时出现“语法错误:引号末尾的字符串”错误

  2. 2

    从Python调用bash脚本时出现“语法错误:引号末尾的字符串”错误

  3. 3

    尝试自动执行WinSCP时出现Visual Basic字符串语法错误

  4. 4

    MySQL-尝试插入字符串/数字时出现语法错误

  5. 5

    将字符串转换为 int 时出现语法错误

  6. 6

    C# SQL Server 数据库连接字符串语法错误

  7. 7

    在 sql 查询中使用 LIKE 时出现语法错误

  8. 8

    Excel VBA SQL:查询字符串中日期的语法错误

  9. 9

    拆分字符串时angularjs解析语法错误

  10. 10

    C#字符串中的SQL语法错误

  11. 11

    C#字符串中的SQL语法错误

  12. 12

    字符串分配语法错误

  13. 13

    字符串语法错误

  14. 14

    运行xampp安装程序文件时出现“语法错误:带引号的字符串未终止”

  15. 15

    运行xampp安装程序文件时出现“语法错误:带引号的字符串未终止”

  16. 16

    将 DISTINCT 关键字放入连接查询时出现语法错误

  17. 17

    在SQL中执行左外连接时出现SQL语法错误

  18. 18

    连接字符串正确时出现“实例失败”错误

  19. 19

    查询表达式中字符串的语法错误

  20. 20

    查询表达式中字符串的语法错误

  21. 21

    shortssize = S 中查询表达式中字符串的语法错误

  22. 22

    IBM Cloud Functions:尝试连接到 DB2 时出现 SQL 语法错误

  23. 23

    在Pandas SQL查询中传递参数时出现语法错误

  24. 24

    在 UPDATE 查询中使用 INTERSECT 时出现 SQL 语法错误

  25. 25

    从PHP插入查询时出现MySQL语法错误

  26. 26

    尝试动态编写搜索查询时出现语法错误

  27. 27

    在mysql中选择查询时出现语法错误

  28. 28

    尝试运行 IF EXISTS 查询时出现语法错误

  29. 29

    使用字符串值更新时,sqlite语法错误

热门标签

归档