Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.08.15;
Скачать: [xml.tar.bz2];

Вниз

Баг с хранимой процедурой   Найти похожие ветки 

 
Black Cat   (2002-07-24 10:53) [0]

Второй день маюсь с хранимой процедурой, где-то баг, не пойму где.
Процедура отрабатывается, все как-бы нормально, баг выползает в
момент дисконнекта - происходит подвисание проги (причем не важно,
откуда процедура вызывается - из дельфей или SQL браузера).

Текст процедуры:

CREATE OR REPLACE PROCEDURE "UPHG"."INSERT_RL_DATA"(sm_num number,sm_id number, sm_day date) as
cursor oprtimes is
select * from rl_t5 order by rl_t5.times desc;
cursor par is
select nobj4 from rl_t4 where rl_t4.work="Y";
count_in number;
w_day date;
wd varchar2(30);
begin
count_in:=0;
for tm in oprtimes loop
if tm.nobj7=sm_num then
if count_in=0 then count_in:=1;
end if;
if count_in=1 then w_day:=sm_day;
else w_day:=sm_day+1;
end if;
wd:=to_char(w_day,"dd.mm.yyyy")||" "||tm.times;
w_day:=to_date(wd,"dd.mm.yyyy hh24:mi");
for pr in par loop
insert into rl_t6
values (w_day, sm_id, pr.nobj4,null,null,null);
end loop;
else
if count_in=1 then count_in:=2;
end if;
end if;
end loop;
end;


 
Johnmen   (2002-07-24 11:09) [1]

А почему думаешь, что дело в ХП ?


 
Black Cat   (2002-07-24 11:28) [2]


> Johnmen

Я уже не знаю, в чем дело, но трабла проявляется только после вызова ХП (все триггеры отключены). Если вызывать в дельфях, то при дисконнекте (при выходе из проги) валится сообщение "невозможно получить текст сообщения для ORA-00600".


 
dimis   (2002-07-24 11:30) [3]

Мое мнение, не претиндующее на правильность
Oracle не пишет напрямую в таблицы
он сначала пишет в cashe.
при disconnect он пытается выполнить коммит, а т.к. инсертов много он задумывается.
Попробуй вставить в конец процедуры commit;


 
Black Cat   (2002-07-24 12:21) [4]

В том-то и дело,что commit абсолютно не спасает


 
Johnmen   (2002-07-24 12:30) [5]

Как делается дисконнект ?


 
Jim   (2002-07-24 12:39) [6]

А пробовал переписать процедуру без применения цикла с курсором, т.е. явно открывать и закрывать курсоры?
может поможет...:-\


 
Bachin   (2002-07-24 12:41) [7]

ORA-00600 internal error code, arguments: [num], [?], [?], [?], [?], [?]

Cause: This is a catchall internal error message for Oracle program exceptions. It indicates that a process has met a low-level, unexpected condition.

Various causes of this message include:

time-outs
file corruption
failed data checks in memory
hardware, memory, or I/O errors
incorrectly restored files

The first argument is the internal message number. Other arguments are various numbers, names, and character strings. The numbers may change meanings between different versions of the Oracle Server.

Action: Report this error to customer support after gathering the following information:

events that led up to the error
the operations that were attempted that led to the error
the conditions of the operating system and database at the time ofthe error
any unusual circumstances that occurred before receiving theORA-00600 message
contents of any trace files generated by the error
the relevant portions of the Alert file

Copyright (C) 1995, Oracle Corporation


 
Nonam   (2002-07-24 13:03) [8]

Попробуй добавить в процедуру обработчик исключения OTHERS и возврати текст ошибки при помощи функции SQLERRM. Вообще, ORA-00600 - это внутренняя ошибка и Oracle советует обратится в службу техподдержки.


 
roottim   (2002-07-24 13:14) [9]

не пробовал сделать трассировку в PL/SQL Explorer


 
Black Cat   (2002-07-25 09:31) [10]

Всем спасибо за сочувствие, пришел к выводу, что это приколы сервака (Oracle 8.1.5 на w2k server) мать-его :(), давно руки чесались его убить, теперь отступать некуда. На 8.1.7 (w2k server) все работает как часы.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.08.15;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.006 c
7-48330
esprit_bel
2002-06-01 10:12
2002.08.15
раскладка


1-48140
Hooch
2002-08-01 13:45
2002.08.15
Flat компоненты


14-48292
Digitman
2002-07-18 08:15
2002.08.15
С днем рождения, Алексей Петров !


1-48044
SPeller
2002-07-30 05:58
2002.08.15
WindowProc внутри объекта


14-48255
Дремучий
2002-07-18 13:26
2002.08.15
первая лпасточка... UBPFD off-line Сlient





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский