2016-08-02 3 views
0

데이터베이스의 테이블에서 값을 추출하여 SOPAUI의 요청에 사용되는 Groovy 스크립트를 만들려고합니다.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(......

속성으로 DB에서 단지 문자열로 변환합니다 스크립트의 나머지 설정 값

그 수 그런 다음 요청에 사용됩니다.

내가 뭘 잘못하고 있는지에 대한 아이디어가 있습니까?

+1

당신은이 부분을 읽어보십시오 : http://docs.groovy-lang.org/ latest/html/documentation/index.html # all-strings – SiKing

답변

3

누락 된 FROM이있을 수 있습니까? FROM m.ID

SELECT TOP 1 DB] [DBO] AOTableName] 등 m ...

플러스 따옴표 문제 VS 이중 AS :.. AND (c.Code = " 'ESB'")

가 있어야한다 : AND (c.Code = \ 'ESB \')

+0

오타가 내 부분에있어 'FROM'이 누락 된 이유입니다. 고마워 - c.Code = \ 'ESB \') – Nobody