为了账号安全,请及时绑定邮箱和手机立即绑定

SQL 语句执行错误说'_HP_KYCMS18837P51144'附近的sunataxt 不正确

SQL 语句执行错误说'_HP_KYCMS18837P51144'附近的sunataxt 不正确

蝴蝶刀刀 2022-04-28 16:42:49
任何解决以下问题的建议将不胜感激。我正在尝试使用 java 运行 sql 语句,其中我一直有动态文件名例如这次我的完整文件名是"WTX-5010_HP_KYCMS18837P51144.txt"这是我的 sql 语句:`SELECT processid, * FROM [Config].[AD].[FILELOG] where filename='WTX-5010_HP_KYCMS18837P51144.txt'以下是我的脚本:    static String NewFileNmae = WTX-5010_HP_KYCMS18837P51144.txt;                System.out.println("Full New File Name is " + NewFileNmae);                try {String strpQuery2 = "SELECT processid, *  FROM [Config].[AD].[FILELOG] where filename=";                    String connectionUrl = "jdbc:sqlserver://"+strpServer+":"+strpPort+";databaseName="+strpDatabase+";IntegratedSecurity=true";                    // Declare the JDBC objects.                      Connection con = null;                      Statement stmt = null;                      ResultSet rs = null;                      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");                      con = DriverManager.getConnection(connectionUrl);                     String SQLS = strpQuery2+NewFileNmae;                    System.out.println("SQLQuery is " + SQLS);                    stmt = con.createStatement();                      rs = stmt.executeQuery(SQLS);                      while (rs.next()) {                        ProcessID = rs.getString(1);                        System.out.println("List value are " +ProcessID);                    }    } catch (Exception e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }在调试窗口中,我可以看到"SELECT processid, *  FROM [Config].[AD].[FILELOG] where filename=WTX-5010_HP_KYCMS18837P51144.txt"上面脚本中打印的 sql 语句rs = stmt.executeQuery(SQLS);我将文件名添加为变量,当自动生成动态文件名时,它不会将引号''与文件名一起添加。我怎么能在这里提到 NewFileName 变量的单引号?- 字符串 SQLS = strpQuery2+NewFileNmae;
查看完整描述

1 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

一个字符串应该包含在引号之间 'WTX-5010_HP_KYCMS18837P51144.txt'(你错过了)


SELECT processid, *  

FROM [Config].[AD].[FILELOG] 

where filename= 'WTX-5010_HP_KYCMS18837P51144.txt'



"SELECT processid, *  FROM [Config].[AD].[FILELOG] where filename='" + ;

 NewFileNmae +"';"


查看完整回答
反对 回复 2022-04-28
  • 1 回答
  • 0 关注
  • 97 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信