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 - то же самое.
Подскажите где и как можно поискать источник ошибки?


Seg   (2005-10-12 11:17:00) [1]

Мой ICQ

Вау, а говорил, что женатый...


ANB   (2005-10-12 11:15:00) [2]


> k2 ©   (12.10.05 10:57) [41]
- тогда спасибо.
ЗЫ. Ща тут все тереть начнут, так как флудим. Мой ICQ# 285340244


k2   (2005-10-12 10:57:00) [3]

я незаради замуж выйти :о) я просто так подлизываюсь :)))


ANB   (2005-10-12 10:54:00) [4]


> k2 ©   (12.10.05 10:31) [39]
- я женат. :)


k2   (2005-10-12 10:31:00) [5]

1) представление из исходного запроса, выборка из него - все работает
2) а вот хранимка использует еще некоторые, при раскручивании получился монстр и ошибка осталась :) поставим автору на вид (нет совсем обработки ошибок), пусть ищет

спасибо большое за советы и обсуждение, както в голову не пришло раскручивать в такой ситуации, процедуры достаточно не новые

to ANB ©    Вы мой герой :о)


Seg   (2005-10-11 16:48:00) [6]

- напиши примерчик такой функции ?

Я уже приводил пример простой функции, которая возвращает строку, разделенную через запятую в ветке про издательства и их авторов.


ANB   (2005-10-11 16:45:00) [7]


> Seg   (11.10.05 16:43) [35]
- нормальная конструкция, вполне рабочая. Иногда не стоит такие в WHERE загонять.


ANB   (2005-10-11 16:44:00) [8]


> Sergey13 ©   (11.10.05 16:36) [33]
- я программист в отделе тестирования. Производственная необходимость.


ANB   (2005-10-11 16:43:00) [9]


> можно вынести в отдельную функцию, которая возвращает набор
> ID через запятую.
> <Цитата>
- напиши примерчик такой функции ?


Seg   (2005-10-11 16:43:00) [10]

А эту конструкцию нельзя сделать как вызов таблицы с ограничением в общем разделе where?

(SELECT NVL(jan_fact_price,0) price, prass_id,YEAR FROM BD_DOC_STRINGS_FACT_PRICE WHERE YEAR=2005) fact_pr


Sergey13   (2005-10-11 16:36:00) [11]

2[31] ANB ©   (11.10.05 16:31)
> - у меня на компе 7 экземпляров ораклы восьмой развернуто. И на серваке еще штук 6.
Солишь их? Или коллекционер? 8-)


Seg   (2005-10-11 16:35:00) [12]

С возвращением курсора в Оракле действительно проблемы.
Но в процедуре можно раскидать запрос по подзапросам и посмотреть, как все работает.
Например подзапрос
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))
))

можно вынести в отдельную функцию, которая возвращает набор ID через запятую.


ANB   (2005-10-11 16:31:00) [13]


> Все верно, но, если в 8-ке ручками не создать n-е количество
> этих самых сегментов, то ничего работать не будет
- у меня на компе 7 экземпляров ораклы восьмой развернуто. И на серваке еще штук 6. И ни на одной ничего не создавал. И все работает.


ANB   (2005-10-11 16:30:00) [14]


> Seg   (11.10.05 16:19) [28]
- не факт. В ХП может еще больше поломаться. Плюс в оракле не так просто написать ХП, возвращаюшую набор данных.


Sergey13   (2005-10-11 16:30:00) [15]

2[25] DenK_vrtz ©   (11.10.05 13:02)
>  а в 9-ке об этом не надо заботиться, так как для этих целей создано специальное ТП
Спорить не буду, ибо не юзал, но сомневаюсь. И в 8 такое ТП создается, если ставить учебную БД при установке. При создании ручками - что укажешь, то и будет.


Seg   (2005-10-11 16:19:00) [16]

- для чего ?

Чтобы заработало.


ANB   (2005-10-11 16:14:00) [17]


> Seg   (11.10.05 16:12) [26]
- для чего ?


> создано специальное ТП (не помни как называется, ну не админ
> я :) )
- этим и должен админ заниматься. Наше дело найти ошибку и попинать его.


Seg   (2005-10-11 16:12:00) [18]

Почему бы исходный запрос не положить в ХП, или хотя бы часть запроса?


DenK_vrtz   (2005-10-11 13:02:00) [19]

> Sergey13 ©   (11.10.05 11:31) [21]

> Их и в 8 нет, за исключением 1 с именем SYSTEM в одноименном
> ТП. Все остальные создается отдельно.


Все верно, но, если в 8-ке ручками не создать n-е количество этих самых сегментов, то ничего работать не будет, а в 9-ке об этом не надо заботиться, так как для этих целей создано специальное ТП (не помни как называется, ну не админ я :) )


Val   (2005-10-11 11:54:00) [20]

+ANB пробуем также
...
SELECT   /*+ index (bd_doc )*/
       1 nw,
       2 tn,
 3 jan_summ ...
пробуем также на основе исходного запроса создать обзор, и выборку из него.


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

Наверх

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