Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Oracle 9i problem: ORA-03113: end-of-file on communication channel

425
12 июля 2005 года
sq_deep
498 / / 18.02.2005
Коллеги, подскажите, пожалуйста, в чём проблема.

Имею:
  • Oracle 9i
  • view ar_payment_view_date с полями
    currency
    customer
    amt_open
    и ещё другими
  • view ar_inv_view_date с такими же полями
Запрос
Код:
SELECT p.currency pc, p.amt_open po,
       i.currency ic, i.amt_open io
FROM
  (SELECT currency, amt_open
   FROM ar_payment_view_date
   WHERE customer = 'ДЕЦИМА' AND amt_open > 0) p
  LEFT OUTER JOIN
  (SELECT currency, amt_open
   FROM ar_inv_view_date
   WHERE customer = 'ДЕЦИМА' AND amt_open > 0) i
  ON p.currency = i.currency;
выполняется правильно и выдаёт 9 строк результата.

Запрос
Код:
SELECT p.currency pc, p.amt_open po,
       i.currency ic, i.amt_open io
FROM
  (SELECT currency, amt_open
   FROM ar_payment_view_date
   WHERE customer = 'ДЕЦИМА' AND amt_open > 0) p
  FULL OUTER JOIN
  (SELECT currency, amt_open
   FROM ar_inv_view_date
   WHERE customer = 'ДЕЦИМА' AND amt_open > 0) i
  ON p.currency = i.currency;
выдаёт ошибку
ORA-03113: end-of-file on communication channel.
При этом моя сессия дохнет.

Второй запрос отличается от первого только тем, что вместо LEFT OUTER JOIN написано FULL OUTER JOIN.

Вообще-то FULL OUTER JOIN в других случаях работает.

Что посоветуете?
10
12 июля 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by sq_deep
Вообще-то FULL OUTER JOIN в других случаях работает.

Что посоветуете?


Подобная хрень может происходить, когда в Oracle случается внутренняя ошибка. Может быть, что и труба.

Кстати, для подключения к серверу используется клиект той же, или старшей/младшей версии?

425
12 июля 2005 года
sq_deep
498 / / 18.02.2005
Цитата:
Originally posted by Freeman
Подобная хрень может происходить, когда в Oracle случается внутренняя ошибка. Может быть, что и труба.

Кстати, для подключения к серверу используется клиект той же, или старшей/младшей версии?

До этого у меня был сервер версии 8, а клиент 9. Проблемы, естественно, не было, потому что сервер 8 вообще не понимает слова JOIN.

Теперь сервер апгрейднули до 9. Клиент остался тот же (9). Хочется написать FULL JOIN, а то без него SQL предложение получается длиннее страницы. В тестах FULL JOIN работает подобно зверю, а в реальном запросе — фиг :(

Всё ещё надеюсь, что труба не полная...

10
12 июля 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by sq_deep
Теперь сервер апгрейднули до 9. Клиент остался тот же (9).


У 9i есть две версии - 1-я и Release 2. Full outer join, если не изменяет память, появился только во втором релизе. Поэтому, вопрос повторяется: совпадает ли версия клиента и сервера.

Несмотря на совместимость по большей части снизу вверх, у нас уже много раз бывали случаи, когда по полдня терялось на поиск проблемы, а потом выяснялось, что связана она с несоответствием версии клиента и сервера (у нас с этим полный зоопарк).

425
12 июля 2005 года
sq_deep
498 / / 18.02.2005
Спасибо за разъяснение, Freeman. У нас тоже зоопарк, но я сейчас работаю на клиенте v9 с только что установленным сервером v9.

На sql.ru пишут, что надо установить последний patch.

Я написал письмо сисадминам, они сейчас отсутствуют. Пусть разбираются. Может быть, проблема решится легко, а пока я слепил вместо FULL JOINа запрос с UNIONами. Получилось раз в 20 длиннее и непонятнее, но работает.

Спасибо.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог