Обновление Java JDBC Oracle 9i до 10g проблем - PullRequest
0 голосов
/ 24 июня 2010

Мы только что обновили oracle 9i до 10g и запрос к базе данных у меня работает с клиентом 9i, но не с 10g.Ничего в запросе не изменилось.Я получаю следующую ошибку:

java.sql.SQLException: ORA-01036: illegal variable name/number

Не совсем уверен, что происходит.Почему бы это больше не бежать?Это просто оператор выбора, который объединяет около 3 или 4 таблиц.Я удостоверяюсь, что я передаю переменную, используя setInt (это число, которое я использую).При различении объединяемых таблиц единственное, что я нахожу разным, состоит в том, что в одной таблице столбец, к которому я присоединяюсь, устанавливается как число в одной таблице и число (12) в другой.Это имеет значение?Запрос по-прежнему выполняется в TOAD и SQL Navigator ...

Ответы [ 2 ]

0 голосов
/ 25 июня 2010

Проблема заключалась в следующем вызове метода для подготовленного оператора:

ps.setEscapeProcessing(false);

Убрал это и теперь работает нормально. Не думайте, что это совместимо с драйвером oracle 10g. Спасибо всем за помощь.

0 голосов
/ 25 июня 2010

2 мысли приходят на ум:

  1. убедитесь, что вы используете правильную версию драйвера jdbc.Поскольку вы сказали, что запрос работает в TOAD и т. Д., Это, скорее всего, будет вашей проблемой.
  2. убедитесь, что вы не используете какие-либо ключевые слова ORACLE в своем запросе в качестве псевдонимов столбцов и т. Д.

Кроме того, из опыта, если ваша база данных большая / занятая, у вас естьсправедливый путь до того, как ваша среда 10g станет стабильной.Мои рекомендации:

  1. узнать как можно больше о статистике
  2. Прочитать руководства по выживанию (в сети много)
  3. следить за встроенными заданиямичто пересчитать статус.Мы забились через 12 дней после начала работы, потому что изменения в статистике снизили производительность ключевых запросов.Наше тестирование не позволило провести 12-дневный тест на стабильность.
  4. помните о необходимости просмотра переменных привязки, если вы еще не
...