У меня есть следующий (пример) запрос, который я пытаюсь выполнить
SELECT some_field
FROM MY_VIEW
WHERE date_field >= TO_DATE('2011-06-22', 'yyyy-mm-dd')
Когда я запускаю это в SQL * Plus, я получаю набор результатов при попытке через JDBC (используяjava.sql.Statement) Я получаю следующую ошибку: java.sql.SQLException: ORA-01722: неверный номер .
Чтобы сделать его еще более странным, следующий код работает через JDBC:
select field_1
FROM MY_VIEW v1
WHERE field_2 != 'some value'
AND not exists (
SELECT field_1
FROM MY_VIEW v2
WHERE v1.field_1 = v2.field_1
and t1.timestamp < t2.timestamp
)
Но приведенный ниже код (который все еще работает в SQL * Plus) не работает (та же ошибка ORA-01722):
select field_1
FROM MY_VIEW v1
WHERE field_2 != 'some value'
AND not exists (
SELECT field_1
FROM MY_VIEW v2
WHERE v1.field_1 = v2.field_1
and v2.field_2 = 'some value' -- Does not work with this line (same value as above)
and v1.timestamp < v2.timestamp
)
Я использую Java 6,подключение к Oracle 10g и использование ojdbc14.jar.Я думаю, что важно отметить, что запрашиваемое представление (MY_VIEW) является довольно сложной вещью, включающей более одного поля, преобразуемого из varchar в числовое.Мое текущее подозрение заключается в том, что Oracle создает другой, неработоспособный план выполнения для запроса jdbc, а не для SQL * Plus.
Любые предложения относительно того, что мне следует делать здесь?
Спасибо.