【问题标题】:How to query Oracle v$ tables using Groovy如何使用 Groovy 查询 Oracle v$ 表
【发布时间】:2013-12-12 22:56:05
【问题描述】:

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

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

但是 Groovy 一直告诉我:“Groovy:在静态范围内发现了明显的变量 'session',但没有引用局部变量、静态字段或类。”

它显然不喜欢名为 v$session 的表。我已经尝试了很多东西,我不确定为什么我不知道如何做到这一点。任何帮助表示赞赏。谢谢!

汤姆

【问题讨论】:

  • 你尝试过的很多事情是什么?它们是否包括将其转义为 v\$session、使用 'slashy strings' 或连接两个部分字符串?
  • 使用三个单引号 ''' 而不是双引号 """ 来声明你的多行字符串

标签: sql oracle groovy


【解决方案1】:

""" 将其标记为多行模板化的 groovy 字符串,而不是 ''',它不应该尝试在 $ 之后进行模板化:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 2020-04-10
    • 2018-11-04
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多