Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用GroovySQL对象_Sql_Groovy - Fatal编程技术网

使用GroovySQL对象

使用GroovySQL对象,sql,groovy,Sql,Groovy,我试图使用groovy.sql.sql对象进行一些基本查询,但我得到了一个SQLException,我似乎无法诊断或消除它。我已经把它简化为最简单的情况,我仍然看到了问题所在。我的代码: import groovy.sql.Sql def bodyText def sql = Sql.newInstance("jdbc:oracle:thin:@192.168.X.Y:1521:hostname", "user", "passwd", "or

我试图使用groovy.sql.sql对象进行一些基本查询,但我得到了一个SQLException,我似乎无法诊断或消除它。我已经把它简化为最简单的情况,我仍然看到了问题所在。我的代码:

import groovy.sql.Sql

def bodyText
def sql = Sql.newInstance("jdbc:oracle:thin:@192.168.X.Y:1521:hostname",
                          "user", "passwd", "oracle.jdbc.OracleDriver")

sql.eachRow('select * from t_email_recipients') { row ->
  assert row.body != null
  java.sql.Clob clob = (java.sql.Clob) row.body
  bodyText = clob.getAsciiStream().getText()
  println bodyText
}
我之前有一个版本的工作,但现在似乎得到的是:

Caught: java.sql.SQLException: Invalid column name
        at sqlTest$_run_closure1.doCall(sqlTest.groovy:14)
        at sqlTest.run(sqlTest.groovy:13)

有人有什么想法吗?我正在使用groovy 1.7.4和jdk 1.6.0_12。

鉴于异常显示
无效列名
,并且您访问的唯一列是
body
,我的第一个猜测是没有这样的列。然而,您已经在注释中指出存在这样一个列,而且,您已经在引发异常的前一行中声明了该列的存在

assert row.body != null
因此,这段代码似乎不可能引发此异常,因此我的最佳猜测是,您修改了此处显示的代码,但与实际引发异常的代码有所不同-可能您不想发布真正的代码,因为它太复杂或出于IP/隐私原因


如果我是对的,请检查此代码在功能上是否与实际代码完全相同,因为在我看来,此代码不可能引发给定的异常。

假设异常显示
无效列名
,并且您访问的唯一列是
正文
,我的第一个猜测是没有这样的专栏。然而,您已经在注释中指出存在这样一个列,而且,您已经在引发异常的前一行中声明了该列的存在

assert row.body != null
因此,这段代码似乎不可能引发此异常,因此我的最佳猜测是,您修改了此处显示的代码,但与实际引发异常的代码有所不同-可能您不想发布真正的代码,因为它太复杂或出于IP/隐私原因


如果我是对的,请检查此代码在功能上是否与实际代码完全相同,因为我认为此代码不可能抛出给定的异常。

您可以使用类似的方法

  clob?.asciiStream.text

你可以用这样的东西

  clob?.asciiStream.text

那张桌子看起来像什么?错误告诉您在名为“t\u email\u recipients”的表中没有名为“body”的列。我猜这没那么简单。不,没那么简单。有一个clob类型的body列。还有一个pk和一些其他字符串。当您“println row”时会得到什么?我一直在使用GroovySQL,我认为您的代码片段没有问题。我认为真正的问题是被掩盖了…错误在第14行,但您提供的脚本只有12行。也许您可以按原样共享代码……既然我已经在Java中使用了Groovy,我将在Groovy中再试一次。一旦我尝试了,我会发布更新的代码。那个表是什么样子的?错误告诉您在名为“t\u email\u recipients”的表中没有名为“body”的列。我猜这没那么简单。不,没那么简单。有一个clob类型的body列。还有一个pk和一些其他字符串。当您“println row”时会得到什么?我一直在使用GroovySQL,我认为您的代码片段没有问题。我认为真正的问题是被掩盖了…错误在第14行,但您提供的脚本只有12行。也许您可以按原样共享代码……既然我已经在Java中使用了Groovy,我将在Groovy中再试一次。一旦我尝试了,我会发布更新的代码。是的,这里实际上有两个问题,当我试图解决第一个问题时,我导致了第二个问题,你注意到了。我退了一步,试图用Java解决这个问题,直到后来才注意到Matcher和模式捕获组似乎不起作用,除非在调用Matcher.group(n)之前调用Matcher.groupCount()。眼睛疲劳导致了我的其他问题……是的,这里实际上有两个问题,第二个问题是我造成的,你注意到了,当我试图解决第一个问题时。我退了一步,试图用Java解决这个问题,直到后来才注意到Matcher和模式捕获组似乎不起作用,除非在调用Matcher.group(n)之前调用Matcher.groupCount()。眼睛疲劳导致了我的其他问题。。。