Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Теоретические аспекты и практические реализации создания, внедрения и использования баз данных, СУБД, хранилищ.
  • Страница:
  • 1

ТЕМА: Ошибка в Oracle - Ora-00600

Ошибка в Oracle - Ora-00600 21 июль 2011 01:12 #2589

  • BadWolf
  • BadWolf аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 50
  • Спасибо получено: 0
Выполняю примерно следующее:
update TABLE_NAME@LINK_NAME t

set (U_FIELD) = (select U_FIELD from VIEW_NAME tt where tt.id = 24 )

where t.id = 10

при этом
select U_FIELD from VIEW_NAME tt where tt.id = 24

всегда возвращает ОДНУ и ТОЛЬКО одну запись.
под TABLE_NAMEом мы понимаем TABLE или VIEW,
под VIEW_NAMEом - только VIEW, так как с таблицами проблем не возникает.

Методом проб выявил, что с некоторыми вьюхами (VIEW_NAME) данный запрос отрабатывает правильно, с некоторыми выдает нечто злое и нехорошее:
ORA-00600: internal error code, arguments: [kkdcacc1],[],[],[],[],[],[],[]
Подскажите, как с этой бедой бороться, или поясните хотя бы причины её возникновения. Интересно любое мнение по этому поводу.
Заранее спасибо.
В качестве базы на линке используется аналогичный ORACLE 9.2
Ошибки типа невалидных триггеров, неприводимых типов, нарушения целостности и прочей ламерской гадости исключены.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Ошибка в Oracle - Ora-00600 21 июль 2011 01:13 #2590

  • reset
  • reset аватар
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 49
  • Спасибо получено: 0
Попробуй "доспецифицировать"
update TABLE_NAME@LINK_NAME t
set t.U_FIELD = (select tt.U_FIELD from VIEW_NAME tt where tt.id = 24 )
where t.id = 10;

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Ошибка в Oracle - Ora-00600 21 июль 2011 01:22 #2591

  • BadWolf
  • BadWolf аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 50
  • Спасибо получено: 0
Буквально:
update V_OUT_NAKL@manager t set 

(DOCNAME) = 

( select  DOCNAME

 from V_OUT_NAKL tt where tt.id = 2551 ) 

where t.id = 2584

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Ошибка в Oracle - Ora-00600 21 июль 2011 01:23 #2592

  • reset
  • reset аватар
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 49
  • Спасибо получено: 0
update TABLE_NAME@LINK_NAME t
set t.U_FIELD = (select tt.U_FIELD from VIEW_NAME tt where tt.id = 24 )
where t.id = 10;

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Ошибка в Oracle - Ora-00600 21 июль 2011 01:26 #2593

  • BadWolf
  • BadWolf аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 50
  • Спасибо получено: 0
Reset, комбинации синтаксических оборотов вокруг моего желания выполнить подобную операцию результатом имеют все ту же ошибку )

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Ошибка в Oracle - Ora-00600 21 июль 2011 01:27 #2594

  • reset
  • reset аватар
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 49
  • Спасибо получено: 0
1) select t.U_FIELD from TABLE_NAME@LINK_NAME t where t.id = 10 and rownum < 10;
2) select tt.U_FIELD from VIEW_NAME tt where tt.id = 24
3) какие типы данных у t.U_FIELD и у tt.U_FIELD
И все будет ок...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1