Groovy SQL 语句语法错误
Groovy SQL statement syntax error
我正在尝试创建一个 groovy 脚本,该脚本将从数据库中的 table 中提取一个值,然后在 SOPAUI 中的请求中使用该值。
问题是在我的 SQL 查询中,我有一个包含带单引号的字符串值的 where 子句,当 运行 时 return 会出错。
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 ')
.......
错误如下:
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.call(......
脚本的其余部分将转换为字符串并将数据库中的值设置为 属性,然后可以在请求中使用。
关于我做错了什么有什么想法吗?
可能缺少 FROM?
SELECT TOP 1 m.ID FROM [DB].[dbo].[AOTableName] AS m 等...
加上双引号与单引号问题:AND (c.Code = "'ESB'")
应该是:AND (c.Code = \'ESB\')
我正在尝试创建一个 groovy 脚本,该脚本将从数据库中的 table 中提取一个值,然后在 SOPAUI 中的请求中使用该值。
问题是在我的 SQL 查询中,我有一个包含带单引号的字符串值的 where 子句,当 运行 时 return 会出错。
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 ')
.......
错误如下:
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.call(......
脚本的其余部分将转换为字符串并将数据库中的值设置为 属性,然后可以在请求中使用。
关于我做错了什么有什么想法吗?
可能缺少 FROM?
SELECT TOP 1 m.ID FROM [DB].[dbo].[AOTableName] AS m 等...
加上双引号与单引号问题:AND (c.Code = "'ESB'")
应该是:AND (c.Code = \'ESB\')