简体   繁体   English

Groovy SQL语句语法错误

[英]Groovy SQL statement syntax error

I am attempting to create a groovy script that will extract a value from a table in a database, that will then be used in a request in SOPAUI. 我试图创建一个Groovy脚本,该脚本将从数据库中的表中提取一个值,然后将其用于SOPAUI中的请求。

The issue is that within my SQL query, I have a where clause that includes a string value with single quotes,that when is run will return an error. 问题是在我的SQL查询中,我有一个where子句,其中包含带单引号的字符串值,当运行时将返回错误。

     import groovy.sql.Sql
     import java.sql.Driver


    def sql = Sql.newInstance     ('jdbc:sqlserver://hostname\\INSTANCE1;Database=DB;integratedSecurity=true','com.microsoft.sqlserver.jdbc.SQLServerDriver')
    row = sql.firstRow('SELECT TOP 1  m.ID [DB].[dbo].[AOTableName] AS m INNER JOIN [DOC_MASTER_dev].[dbo].[AOMatterTableName] AS c ON m.SystemID = c.ID  WHERE  (m.Status = 0) AND (c.Code = "'ESB'") order by newid(), m.DateAddedForReplication desc ')

....... .......

The error is below: 错误如下:

ERROR:org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: Script25.groovy: 6: unexpected token: ESB @ line 6, column 231. us = 0) AND (c.Code = "'ESB'") ord ^ org.codehaus.groovy.syntax.SyntaxException: unexpected token: ESB @ line 6, column 231. at org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:140) at org.codehaus.groovy.antlr.AntlrParserPlugin.parseCST(AntlrParserPlugin.java:108) at org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:236) at org.codehaus.groovy.control.CompilationUnit$1.call(...... 错误:org.codehaus.groovy.control.MultipleCompilationErrorsException:启动失败:Script25.groovy:6:意外令牌:ESB @第6行,第231列。us = 0)AND(c.Code =“'ESB'”)ord ^ org.codehaus.groovy.syntax.SyntaxException:意外令牌:ESB @第6行,第231列。 org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:236)的.parseCST(AntlrParserPlugin.java:108),org.codehaus.groovy.control.CompilationUnit $ 1.call(......

The rest of the script will just convert into a string and set value from DB as property that can then be used in the request. 脚本的其余部分将仅转换为字符串,并将DB中的值设置为属性,然后可以在请求中使用该属性。

Any ideas as to what I'm doing wrong? 关于我在做什么错的任何想法吗?

May be a missing FROM ? 可能是缺少的FROM吗?

SELECT TOP 1 m.ID FROM [DB].[dbo].[AOTableName] AS m etc... SELECT TOP 1 m.ID FROM [DB]。[DBO]。[AOTableName] AS米等...

plus a double vs single quote problem in : AND (c.Code = "'ESB'" ) 加上:AND中的双引号和单引号问题(c.Code = “'ESB'”

should be : AND (c.Code = \\'ESB\\' ) 应该是:AND(c.Code = \\'ESB \\'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM