如何使用Groovy查询Oracle v $表

时间:2013-12-12 22:56:06

标签: sql oracle groovy

我正在尝试使用Groovy(导入的groovy.sql.SQL)查询Oracle v $会话表,如下所示:

sql.eachRow("""
Select
'Y' as runInd
from v$session
where upper(module) = ?
having count(*) > 1
""", [programName]) {row -> etc...}

但Groovy一直告诉我:“Groovy:在静态范围内找到了表观变量'session',但没有引用局部变量,静态字段或类。”

它显然不喜欢名为v $ session的表。我尝试了很多东西,我不知道为什么我不知道怎么做。任何帮助表示赞赏。谢谢!

汤姆

1 个答案:

答案 0 :(得分:1)

而不是"""将其标记为多行模板化的groovy字符串,请尝试''',而不应尝试对$之后的内容进行模板设计:

sql.eachRow( '''Select
               |  'Y' as runInd
               |  from v$session
               |  where upper(module) = ?
               |  having count(*) > 1'''.stripMargin(), [programName]) { row ->
    etc...
}