2016-08-02 2 views
0

Я пытаюсь создать groovy-скрипт, который будет извлекать значение из таблицы в базе данных, которая затем будет использоваться в запросе в SOPAUI.Ошибка синтаксиса оператора Groovy SQL

Проблема заключается в том, что в моем 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 ') 

.......

Ошибка ниже:

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(......

Остальная часть сценария будет просто преобразовать в строку и установить значение из БД как свойство, которое может затем использоваться в запросе.

Любые идеи относительно того, что я делаю неправильно?

+1

Вы можете прочитать: http://docs.groovy-lang.org/ last/html/documentation/index.html # all-strings – SiKing

ответ

3

Может быть, отсутствует FROM?

Выбор TOP 1 m.ID ОТ [DB] [DBO] [AOTableName] А.С. м и т.д. ...

плюс двойной против одной проблемы котировок в:.. И (c.Code = "" ESB")

должно быть: И (c.Code = \ 'ESB \')

+0

Типично с моей стороны, и именно поэтому мне не хватает «FROM». Спасибо, он сработал - c.Code = \ 'ESB \') – Nobody