我想做一个
in
语句中的值来自数据库,然后在另一个查询中使用它们。DB是Oracle
例子:
我已经绕着这个转了很久了。我需要一些帮助:
Groovy代码:
def myList = []
def myQuery = "select USER_ID from USER_TABLE where rownum < 3"
println myQuery
sql_dw.eachRow(myQuery) {
myList.add("'"+it.USER_ID+"'")
}
println myList
myQuery = "select * from USER_TABLE where USER_ID in (${myList.join(",")})"
println myQuery
def myRow = sql_dw.firstRow(myQuery);
if (myRow == null)
println "OMG its null!!"
输出为:
select USER_ID from eiv.USER_TABLE where rownum < 3
['5xsubmit', 'A10165']
select * from USER_TABLE where USER_ID in ('5xsubmit','A10165')
OMG its null!!
我不知道是什么造成的!!
如果我在这里工作的话,一切都很好
myList
具有硬编码值,如
def myList = ["'5xsubmit'", "'A10165'"]
另外,复制粘贴查询会在数据库中返回结果!!
更新
谷歌搜索后,发现了这个
link
所以我们必须使用准备好的语句。将研究如何相应地更改代码。