Использование Groovy Sql объекта - PullRequest
0 голосов
/ 17 августа 2010

Я пытаюсь выполнить некоторые базовые запросы, используя объект 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.

Ответы [ 2 ]

2 голосов
/ 17 августа 2010

Учитывая, что в исключении указано Invalid column name, а единственный столбец, к которому вы обращаетесь, - body, я считаю, что такого столбца нет. Однако вы указали в комментариях, что такой столбец существует, и, кроме того, вы заявили о наличии этого столбца в строке, предшествующей той, которая вызывает исключение

assert row.body != null

Так что кажется невозможным, чтобы этот код выдавал это исключение, поэтому я думаю, что вы изменили код, показанный здесь, как-то отличается от кода, который фактически выдает исключение - возможно, вы не хотели публиковать реальный код, потому что он слишком сложный или по соображениям IP / конфиденциальности.

Если я прав, ван, вы проверяете, что этот код действительно идентичен реальному коду, потому что мне кажется невозможным, чтобы этот код выдавал данное исключение.

1 голос
/ 04 февраля 2012

Вы можете использовать что-то вроде этого

  clob?.asciiStream.text
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...