Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2 + Java + PreparedStatement / 6 сообщений из 6, страница 1 из 1
16.09.2009, 13:53
    #36199073
DB2 + Java + PreparedStatement
Есть функция в DB2 :
DOKLAD.DATEOFVN(VAR0 DATE,VAR1 INTEGER) RETURNS DATE .....
(функция возвращает нужную дату в зависимости от параметра VAR1 c учётом даты VAR0)

при выполнении следующего запроса - всё отработает

select DOKLAD.DATEOFVN(DATE('2009-09-01'),1) from sysibm.sysdummy1;

в программе пытаюсь сделать так :
String DV = '2009-09-01';
String sqlREL = "select DOKLAD.DATEOFVN(DATE(?),1) from sysibm.sysdummy1"
PreparedStatement pstmtREL = conn.prepareStatement(sqlREL);
pstmtREL.setString (1, DV);
ResultSet RES = pstmtREL.executeQuery();
// ВОТ ТУТ ВЫЛЕТАЕТ с SQLCODE: -418, SQLSTATE: 42610, SQLERRMC: null

подскажите в чём ошибка - пробовал и так
pstmtREL.setDate (1, Date.StringOf(DV)); - тоже самое...
...
Рейтинг: 0 / 0
16.09.2009, 15:22
    #36199353
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 + Java + PreparedStatement
Слободской АндрейЕсть функция в DB2 :
DOKLAD.DATEOFVN(VAR0 DATE,VAR1 INTEGER) RETURNS DATE .....
(функция возвращает нужную дату в зависимости от параметра VAR1 c учётом даты VAR0)

при выполнении следующего запроса - всё отработает

select DOKLAD.DATEOFVN(DATE('2009-09-01'),1) from sysibm.sysdummy1;

в программе пытаюсь сделать так :
String DV = '2009-09-01';
String sqlREL = "select DOKLAD.DATEOFVN(DATE(?),1) from sysibm.sysdummy1"
PreparedStatement pstmtREL = conn.prepareStatement(sqlREL);
pstmtREL.setString (1, DV);
ResultSet RES = pstmtREL.executeQuery();
// ВОТ ТУТ ВЫЛЕТАЕТ с SQLCODE: -418, SQLSTATE: 42610, SQLERRMC: null

подскажите в чём ошибка - пробовал и так
pstmtREL.setDate (1, Date.StringOf(DV)); - тоже самое...

ЗдесьСлободской АндрейString DV = '2009-09-01'; кавычки двойные или одинарные?
И потом, раз ваша функция что-то возвращает, то, наверное, надо использовать CallableStatement вместо PreparedStatement с регистрацией возвращаемого параметра.
...
Рейтинг: 0 / 0
16.09.2009, 15:55
    #36199454
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 + Java + PreparedStatement
Слободской Андрей,

Попробуйте так:
String sqlREL = "select DOKLAD.DATEOFVN(DATE( cast(? as varchar(10)) ),1) from sysibm.sysdummy1"
...
Рейтинг: 0 / 0
16.09.2009, 16:14
    #36199527
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 + Java + PreparedStatement
...
Рейтинг: 0 / 0
17.09.2009, 07:41
    #36200346
DB2 + Java + PreparedStatement
Mark Barinstein,

Спасибо! :) - заработало :)
как жёский контроль типов оказывается.
...
Рейтинг: 0 / 0
18.09.2009, 10:13
    #36203303
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 + Java + PreparedStatement
Слободской Андрей,

дело в том, что у ф-ции DATE может быть параметр 3-х типов, а на этапе prepare тип данных надо знать.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2 + Java + PreparedStatement / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]