Groovy: 运行 SQL SELECT LIKE 来自带参数的文件
Groovy: run SQL SELECT LIKE from file with params
groovy代码是
import groovy.sql.*
dbUrl = 'jdbc:sqlserver://server'
dbUser = 'username'
dbPassword = 'password'
dbDriver = 'com.microsoft.sqlserver.jdbc.SQLServerDriver'
sql = Sql.newInstance(dbUrl, dbUser, dbPassword, dbDriver)
def sqlfromfile = new SqlFromFile()
sqlfromfile.sql_filename='select_query.sql'
sqlfromfile.read()
try{
def result = sql.rows(sqlfromfile.result,[id:'01'])
println result
}catch(e){
println e
}
class SqlFromFile {
def sql_filename
def read(){
result= new File("sqlfolder/"+sql_filename).text
return result
}}
sql 文件工作正常:
SELECT * FROM [db].[dbo].[TABLE] WHERE [ID] = :id
但是如果我尝试让 LIKE SELECT
SELECT * FROM [db].[dbo].[TABLE] WHERE [ID] LIKE %:id%
我有一个错误Incorrect syntax near '@P0'
有没有办法解决这个问题?
试试这个
SELECT * FROM [db].[dbo].[TABLE] WHERE [ID] LIKE '%'+convert(varchar(50),:id)+'%'
groovy代码是
import groovy.sql.*
dbUrl = 'jdbc:sqlserver://server'
dbUser = 'username'
dbPassword = 'password'
dbDriver = 'com.microsoft.sqlserver.jdbc.SQLServerDriver'
sql = Sql.newInstance(dbUrl, dbUser, dbPassword, dbDriver)
def sqlfromfile = new SqlFromFile()
sqlfromfile.sql_filename='select_query.sql'
sqlfromfile.read()
try{
def result = sql.rows(sqlfromfile.result,[id:'01'])
println result
}catch(e){
println e
}
class SqlFromFile {
def sql_filename
def read(){
result= new File("sqlfolder/"+sql_filename).text
return result
}}
sql 文件工作正常:
SELECT * FROM [db].[dbo].[TABLE] WHERE [ID] = :id
但是如果我尝试让 LIKE SELECT
SELECT * FROM [db].[dbo].[TABLE] WHERE [ID] LIKE %:id%
我有一个错误Incorrect syntax near '@P0'
有没有办法解决这个问题?
试试这个
SELECT * FROM [db].[dbo].[TABLE] WHERE [ID] LIKE '%'+convert(varchar(50),:id)+'%'