Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Внутренняя ошибка.  [new]
Ryuu
Member

Откуда:
Сообщений: 549
Доброго времени суток.
Накидал на скорую руку запрос, никак не могу понять, почему вылетает ошибка...
+
Select bezz.art_id, Z.z from
(
SELECT pot.art_id,
  pot.kod_odi,
  pot.kod_odi_zag,
  pot.norma,
  pot.ed_izm,
  pot.avtor,
  'T13' AS t13,
  pot.data_aktual,
  (
  CASE
    WHEN z_art.pr_id = 6
    THEN 'V'
    ELSE ''
  END)               AS pr_id,
  '0'                AS NL,
  'Основной маршрут' AS OM,
  pot.section_id,
  (
  CASE
    WHEN z_art.purchased = '+'
    THEN 2
    ELSE 1
  END )AS purchased,
  pot.massa,
  (
  CASE
    WHEN sos.kod_odi_p = pot.kod_odi_zag
    THEN 1
    ELSE 0
  END) AS sovpalo
FROM
  ( SELECT DISTINCT tpz.f_key AS f_key,
    zas.art_id                AS art_id,
    zas.kod_odi               AS kod_odi,
    tpzdd.f_value             AS kod_odi_zag,
    tpzf.f6                   AS norma,
    tpzs.f4                   AS ed_izm,
    tpzd.f_value              AS avtor,
    tpz.f_data_aktual         AS data_aktual,
    art.section_id            AS section_id,
    art.massa                 AS massa
  FROM zebra_all_sect zas,
    sysdba.articles art ,
    sysdba.tc_obj2link@imbase obj2link,
    sysdba.tp_zag@imbase tpz,
    sysdba.tp_zag_d@imbase tpzd,
    sysdba.tp_zag_d@imbase tpzdd,
    sysdba.tp_zag_f@imbase tpzf,
    sysdba.tp_zag_s@imbase tpzs
  WHERE zas.art_id        = art.art_id
  AND zas.art_id          = obj2link.f_art_id
  AND obj2link.f_obj_key  = tpz.f_key
  AND tpz.f_status        =0
  AND obj2link.f_obj_type = 3
  AND tpz.f_key           = tpzd.f_parentkey
  AND tpzd.f_entity       = '%ZUO'
  AND tpzdd.f_parentkey   = tpz.f_key
  AND tpzdd.f_entity      = 'Мкдо'
  AND tpzf.f_parentkey    =tpz.f_key
  AND tpzf.F_ROW          =1
  AND tpzs.f_parentkey    = tpz.f_key
  AND tpzs.f_row          =8
  AND zas.KOD_ODI        IS NOT NULL
  AND zas.art_id          = 317029
  )pot
LEFT JOIN zebra_all_sect z_zas
ON z_zas.kod_odi_p = pot.kod_odi_zag
LEFT JOIN sysdba.articles z_art
ON z_art.art_id = z_zas.art_id
LEFT JOIN
  (SELECT art_id,
    kod_odi_p
  FROM sysdba.pc a,
    zebra_all_sect b
  WHERE a.part_aid              = b.art_id
  AND level                     = 1
  AND KOD_ODI_P                IS NOT NULL
    START WITH a.proj_aid       =317029
    CONNECT BY PRIOR a.part_aid = a.proj_aid
  ) sos
ON sos.art_id = z_art.art_id
LEFT JOIN sysdba.tp_zag_d@imbase tpzddd
ON tpzddd.F_PARENTKEY =pot.F_KEY
AND tpzddd.F_ROW      =0
AND tpzddd.F_ENTITY   ='ЗАМз'
WHERE tpzddd.f_value IS NULL
) bezz
LEFT JOIN
(
SELECT polZ.f_art_id,
  MAX(tupz.f_value) AS Z
FROM
  ( SELECT DISTINCT tupozag.f_key,
    tobi.f_art_id
  FROM sysdba.tc_obj2link@imbase tobi,
    sysdba.tp_zag@imbase tupozag
  WHERE tobi.f_obj_key = tupozag.f_key
  AND tupozag.f_status =0
  AND tobi.f_obj_type  = 3
  AND tobi.f_art_id    = 317029
  ) polZ
LEFT JOIN sysdba.tp_zag_d@imbase tupz
ON tupz.F_PARENTKEY =polZ.F_KEY
AND tupz.F_ROW      =0
AND tupz.F_ENTITY   ='ЗАМз'
GROUP BY polZ.f_art_id
) Z
ON Z.f_art_id = bezz.art_id;

Собственно сам код ошибки:
автор
ORA-00600: код внутр. ошибки, аргументы: [kkqcbydrv:1], [], [], [], [], [], [], []
00600. 00000 - "internal error code, arguments: [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s]"
*Cause: This is the generic internal error number for Oracle program
exceptions. This indicates that a process has encountered an
exceptional condition.
*Action: Report as a bug - the first argument is the internal error number

По отдельности оба запроса работают.
+
SELECT pot.art_id,
  pot.kod_odi,
  pot.kod_odi_zag,
  pot.norma,
  pot.ed_izm,
  pot.avtor,
  'T13' AS t13,
  pot.data_aktual,
  (
  CASE
    WHEN z_art.pr_id = 6
    THEN 'V'
    ELSE ''
  END)               AS pr_id,
  '0'                AS NL,
  'Основной маршрут' AS OM,
  pot.section_id,
  (
  CASE
    WHEN z_art.purchased = '+'
    THEN 2
    ELSE 1
  END )AS purchased,
  pot.massa,
  (
  CASE
    WHEN sos.kod_odi_p = pot.kod_odi_zag
    THEN 1
    ELSE 0
  END) AS sovpalo
FROM
  ( SELECT DISTINCT tpz.f_key AS f_key,
    zas.art_id                AS art_id,
    zas.kod_odi               AS kod_odi,
    tpzdd.f_value             AS kod_odi_zag,
    tpzf.f6                   AS norma,
    tpzs.f4                   AS ed_izm,
    tpzd.f_value              AS avtor,
    tpz.f_data_aktual         AS data_aktual,
    art.section_id            AS section_id,
    art.massa                 AS massa
  FROM zebra_all_sect zas,
    sysdba.articles art ,
    sysdba.tc_obj2link@imbase obj2link,
    sysdba.tp_zag@imbase tpz,
    sysdba.tp_zag_d@imbase tpzd,
    sysdba.tp_zag_d@imbase tpzdd,
    sysdba.tp_zag_f@imbase tpzf,
    sysdba.tp_zag_s@imbase tpzs
  WHERE zas.art_id        = art.art_id
  AND zas.art_id          = obj2link.f_art_id
  AND obj2link.f_obj_key  = tpz.f_key
  AND tpz.f_status        =0
  AND obj2link.f_obj_type = 3
  AND tpz.f_key           = tpzd.f_parentkey
  AND tpzd.f_entity       = '%ZUO'
  AND tpzdd.f_parentkey   = tpz.f_key
  AND tpzdd.f_entity      = 'Мкдо'
  AND tpzf.f_parentkey    =tpz.f_key
  AND tpzf.F_ROW          =1
  AND tpzs.f_parentkey    = tpz.f_key
  AND tpzs.f_row          =8
  AND zas.KOD_ODI        IS NOT NULL
  AND zas.art_id          = 317029
  )pot
LEFT JOIN zebra_all_sect z_zas
ON z_zas.kod_odi_p = pot.kod_odi_zag
LEFT JOIN sysdba.articles z_art
ON z_art.art_id = z_zas.art_id
LEFT JOIN
  (SELECT art_id,
    kod_odi_p
  FROM sysdba.pc a,
    zebra_all_sect b
  WHERE a.part_aid              = b.art_id
  AND level                     = 1
  AND KOD_ODI_P                IS NOT NULL
    START WITH a.proj_aid       =317029
    CONNECT BY PRIOR a.part_aid = a.proj_aid
  ) sos
ON sos.art_id = z_art.art_id
LEFT JOIN sysdba.tp_zag_d@imbase tpzddd
ON tpzddd.F_PARENTKEY =pot.F_KEY
AND tpzddd.F_ROW      =0
AND tpzddd.F_ENTITY   ='ЗАМз'
WHERE tpzddd.f_value IS NULL;

+
SELECT potnui.f_art_id,
  MAX(tupz.f_value) AS Z
FROM
  ( SELECT DISTINCT tupozag.f_key,
    tobi.f_art_id
  FROM sysdba.tc_obj2link@imbase tobi,
    sysdba.tp_zag@imbase tupozag
  WHERE tobi.f_obj_key = tupozag.f_key
  AND tupozag.f_status =0
  AND tobi.f_obj_type  = 3
  AND tobi.f_art_id    = 317029
  ) potnui
LEFT JOIN sysdba.tp_zag_d@imbase tupz
ON tupz.F_PARENTKEY =potnui.F_KEY
AND tupz.F_ROW      =0
AND tupz.F_ENTITY   ='ЗАМз'
GROUP BY potnui.f_art_id;

Так же, если есть идеи, как ускорить запрос, буду признателен. Не то, чтобы меня не устраивают 0.3 секунды работы первой его части...
22 авг 14, 10:51    [16478444]     Ответить | Цитировать Сообщить модератору
 Re: Внутренняя ошибка.  [new]
Ryuu
Member

Откуда:
Сообщений: 549
Так же, сама по себе связь работает.
+
SELECT *
FROM
  ( SELECT '317029' AS my_id, '666' AS ad FROM dual
  ) a
LEFT JOIN
  (SELECT potnui.f_art_id,
    MAX(tupz.f_value) AS Z
  FROM
    ( SELECT DISTINCT tupozag.f_key,
      tobi.f_art_id
    FROM sysdba.tc_obj2link@imbase tobi,
      sysdba.tp_zag@imbase tupozag
    WHERE tobi.f_obj_key = tupozag.f_key
    AND tupozag.f_status =0
    AND tobi.f_obj_type  = 3
    AND tobi.f_art_id    = 317029
    ) potnui
  LEFT JOIN sysdba.tp_zag_d@imbase tupz
  ON tupz.F_PARENTKEY =potnui.F_KEY
  AND tupz.F_ROW      =0
  AND tupz.F_ENTITY   ='ЗАМз'
  GROUP BY potnui.f_art_id
  ) b ON b.f_art_id = a.my_id;
22 авг 14, 10:55    [16478467]     Ответить | Цитировать Сообщить модератору
 Re: Внутренняя ошибка.  [new]
KoTTT
Member

Откуда: Екб
Сообщений: 1511
select * from v$version;
22 авг 14, 10:59    [16478485]     Ответить | Цитировать Сообщить модератору
 Re: Внутренняя ошибка.  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7135
Версия то какая?
ORA-600 - это как правило баг
MOS Note:153788.1 "ORA-600/ORA-7445/ORA-700 Error Look-up Tool"
22 авг 14, 11:00    [16478493]     Ответить | Цитировать Сообщить модератору
 Re: Внутренняя ошибка.  [new]
Ryuu
Member

Откуда:
Сообщений: 549
Забыл, извиняюсь.
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod
PL/SQL Release 10.2.0.4.0 - Production
"CORE	10.2.0.4.0	Production"
TNS for Solaris: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
22 авг 14, 11:00    [16478497]     Ответить | Цитировать Сообщить модератору
 Re: Внутренняя ошибка.  [new]
KoTTT
Member

Откуда: Екб
Сообщений: 1511
Ставьте последний 10.2.0.5 или последний PSU на 10.2.0.4.
22 авг 14, 11:01    [16478507]     Ответить | Цитировать Сообщить модератору
 Re: Внутренняя ошибка.  [new]
Ryuu
Member

Откуда:
Сообщений: 549
Хм, действительно дело в базе. Здесь все работает. Спасибо.
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
"CORE 11.2.0.3.0 Production"
TNS for 64-bit Windows: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production
22 авг 14, 11:28    [16478705]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить