Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Oracle9. ORA-03113


Страницы:   1 2 3

k2 ©   (2005-10-11 08:11:00) 

Случайно столкнулась с такой проблемой:
Небольшой запрос выполняется, возвращает мелкое количество строк(до десятка), однако если его обернуть, причем с тем же полями без группировок или ещё каких изменений получаем ORA-03113.
исходный запрос:
select table1.field1 f1,table1.field2 f2,table2.field1 f3 from table1, table2 where [any_conditions]
обернутый:
select f1, f2, f3 from (select table1.field1 f1,table1.field2 f2,table2.field1 f3 from table1, table2 where [any_conditions])
ошибка возникает стабильно, на разных машинах и под разными пользователями (запрос один и тот же)
клиент toad, но проверила под sql*plus - то же самое.
Подскажите где и как можно поискать источник ошибки?


ANB   (2005-10-11 11:39:00) [21]


> k2 ©   (11.10.05 11:31) [22]
- попробуй во вложенном запросе убрать хинт и вызов функций из пакетов. Затем добавляй обратно по одному, пока не сломается. Имхо - проблема в хранимках.


k2   (2005-10-11 11:31:00) [22]

Sergey13 ©   (11.10.05 11:14) [17]
в смысле *.trc и алерт в принципе есть, нет записей об ошибках в этот момент времени, ещё поищем как админ освободиться

Val ©   (11.10.05 11:13) [16]
исходный запрос

   SELECT   /*+ index (bd_doc )*/
        Call_Value_From_Dict.get_name_subdiv(bd_doc.subdivision_id) nw,
        DECODE (bd_type.bd_dct_id,50256, 1,50063, 2,50255, 3,4) tn,
  nvl(bd_new.jan_quant*fact_pr.price, 0) jan_summ
   FROM BD_DOCHEAD bd_doc,
        BD_DOCTYPE bd_type,
        BD_DOC_STRINGS bd_doc_st,
        BD_DOC_STRINGS_EXTEND_NEW bd_new,
  (SELECT NVL(jan_fact_price,0) price, prass_id,YEAR FROM BD_DOC_STRINGS_FACT_PRICE WHERE YEAR=2005) fact_pr
  WHERE bd_doc.bd_dh_id = bd_doc_st.bd_dh_bd_dh_id
    AND bd_doc.company_id = 69460
    AND bd_new.YEAR_OF_USE = 2005
    AND bd_type.bd_dct_id = bd_doc.document_type_id
 AND bd_doc_st.PRASS_ID= fact_pr.PRASS_ID(+)
    AND bd_doc_st.resource_mng_id IN (
           SELECT ID
             FROM MTM_RESOURCE_MANAGERS
            WHERE manager_id IN (SELECT * FROM TABLE (CAST (Logistic_Units.group_res_managers('60204',',') AS boss_cxp.vtable))))
    AND bd_doc.subdivision_id IN (4095)
    AND bd_doc_st.bd_doc_st_id = bd_new.f_bd_doc_st_id



select nw, tn, jan_summ  
 from (  
   SELECT   /*+ index (bd_doc )*/
        Call_Value_From_Dict.get_name_subdiv(bd_doc.subdivision_id) nw,
        DECODE (bd_type.bd_dct_id,50256, 1,50063, 2,50255, 3,4) tn,
  nvl(bd_new.jan_quant*fact_pr.price, 0) jan_summ
   FROM BD_DOCHEAD bd_doc,
        BD_DOCTYPE bd_type,
        BD_DOC_STRINGS bd_doc_st,
        BD_DOC_STRINGS_EXTEND_NEW bd_new,
  (SELECT NVL(jan_fact_price,0) price, prass_id,YEAR FROM BD_DOC_STRINGS_FACT_PRICE WHERE YEAR=2005) fact_pr
  WHERE bd_doc.bd_dh_id = bd_doc_st.bd_dh_bd_dh_id
    AND bd_doc.company_id = 69460
    AND bd_new.YEAR_OF_USE = 2005
    AND bd_type.bd_dct_id = bd_doc.document_type_id
 AND bd_doc_st.PRASS_ID= fact_pr.PRASS_ID(+)
    AND bd_doc_st.resource_mng_id IN (
           SELECT ID
             FROM MTM_RESOURCE_MANAGERS
            WHERE manager_id IN (SELECT * FROM TABLE (CAST (Logistic_Units.group_res_managers('60204',',') AS boss_cxp.vtable))))
    AND bd_doc.subdivision_id IN (4095)
    AND bd_doc_st.bd_doc_st_id = bd_new.f_bd_doc_st_id)

коегде загадочности и непостижимости есть, сильно не ругайтесь-так надо :о)


Sergey13   (2005-10-11 11:31:00) [23]

2[19] DenK_vrtz ©   (11.10.05 11:25)
Я с 9 не работал, но что значит "нет по умолчанию"? Их и в 8 нет, за исключением 1 с именем SYSTEM в одноименном ТП. Все остальные создается отдельно.


ANB   (2005-10-11 11:28:00) [24]


> DenK_vrtz ©   (11.10.05 11:25) [19]
- ну так я про него и говорю. Для упрощения. Размер же у него менять можно ?


DenK_vrtz   (2005-10-11 11:25:00) [25]

>ANB ©   (11.10.05 11:18) [18]

> - а куды они делись ?


они никуда не делись, только их нет по умолчанию. Если хочешь можешь сделать(добавить, настроить).
В 9-ке специальное табличное пространство этим занимается.


ANB   (2005-10-11 11:18:00) [26]


> DenK_vrtz ©   (11.10.05 10:59) [13]
> >ANB ©   (11.10.05 10:56) [12]
>
> В девятке по умолчанию нет роллбэк сегментов.
- а куды они делись ?
ЗЫ. Эту ошибку я на девятке и ловил. На 8 еще ни разу не нарывался.


Sergey13   (2005-10-11 11:14:00) [27]

2[15] k2 ©   (11.10.05 11:06)
>пусто, и в алерте и в трейсах
Везде искала? Они вроде могут в разных местах формироваться, в зависимости от причины возникновения. Посмотри в параметрах оракла параметры, где значением является дисковый путь и название похоже на dump, trace и т.п.
Или просто по дискам поиском .trc посмотреть. ИМХО, должны быть.


Val   (2005-10-11 11:13:00) [28]

Было у меня как-то из-за синтаксиса, помню точно. Реальный полный запрос пожалуйста. Если в пл блоке/процедуре, то весь пл блок. Если хотите , в почту.


k2   (2005-10-11 11:06:00) [29]

Sergey13 ©   (11.10.05 10:47) [9]
пусто, и в алерте и в трейсах

DenK_vrtz ©   (11.10.05 10:53) [10]
да

Курдль ©   (11.10.05 10:55) [11]
может, а почему тогда в исходном запросе это скушивается?

Reindeer Moss Eater ©   (11.10.05 11:00) [14]
сервер пропатчен


Reindeer Moss Eater   (2005-10-11 11:00:00) [30]

Возникает внутренняя ошибка приводящая к тому, что рвется соединение.
В синтаксисе запроса искать ошибку бесполезно.
Патчить сервер.
Если не помогает - писать в техсапорт.


DenK_vrtz   (2005-10-11 10:59:00) [31]

>ANB ©   (11.10.05 10:56) [12]

В девятке по умолчанию нет роллбэк сегментов.


ANB   (2005-10-11 10:56:00) [32]


> k2 ©   (11.10.05 10:46) [8]
- нарывался, но только один раз. Попробуй увеличить роллбэк сегмент и время его жизни. Полазь вообще по настройкам оракла - нехорошая ошибка.


Курдль   (2005-10-11 10:55:00) [33]

А в [any_conditions] не может быть длинного ... and X in (A, B, C, ... Z)?


DenK_vrtz   (2005-10-11 10:53:00) [34]

>k2 ©

Клиент и сервер одной версии?


Sergey13   (2005-10-11 10:47:00) [35]

2[6] k2 ©   (11.10.05 10:30)
>в трейсах исходного запроса
Не тут. При ошибках системы на сервереформируются файлы .trc там где Alert.log лежит (или рядом где то). Возможно там что-то есть. Можно и в алерте посмотреть - нет ли чего подозрительного.


k2   (2005-10-11 10:46:00) [36]

to Desdechado ©   (11.10.05 10:40) [7]
обрыв связи возникает стабильно при одном и том же запросе и не возникает при других, в данных условиях каким образом искать и в какую сторону смотреть?


Desdechado   (2005-10-11 10:40:00) [37]

это обрыв связи
ищи причину


k2   (2005-10-11 10:30:00) [38]

Sergey13 ©   (11.10.05 09:34) [2]
в трейсах исходного запроса мне кажется ничего страшного нет:
recursive calls 6;consistent gets 848;execute count 8
план запроса тоже как бы не жуткий, cost=171 (choose)
если нужно могу полный запостить


k2   (2005-10-11 09:41:00) [39]

я читала што это за ошибка :) я не могу понять где искать :(


k2   (2005-10-11 09:37:00) [40]

to Reindeer Moss Eater ©   (11.10.05 09:27) [1]
но ведь в исходном запросе эти условия срабатывают, блок where во втором случае абсолютно такой же


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо