powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / процедура отваливается
4 сообщений из 4, страница 1 из 1
процедура отваливается
    #32025917
user1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, имеется процедура на Oracle 8i
нормально компилируется и работает.
Вызываем ее из Delphi5.
И после какого-то вызова 10-го ли, или тысячного - по-разному, она вдруг перестает работать. Как-будто откомпилирована с ошибками.
1) Почему это происходит

2) Что делать

3) можно ли заново откомпилировать процедуру с клиента каки-либо способом (кроме посылки sql-запроса (CREATE OR REPLACE PROCEDURE и все ее тело))?

Заранее благодарен. Вадим.
...
Рейтинг: 0 / 0
процедура отваливается
    #32025965
none
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если взять за основу то, что состояние "работающая" означает изменение дынных процедурой в базе, а "неработающая" - соответственно их неизменение, то можно предложить следующее: в процедуре происходит какойто exception, который не обрабатываеться в этой процедуре. Причем все изменения, производимые процедурой в транзакции, приведшей к исключению, откатываються автоматически.

PS: Может ктото подскажет, как избавиться от этого АВТОМАТИЧЕСКОГО отката? Может как то возможно это настроить? Сколько не копал документацию, как от этого избавиться, увы, не нашел.
...
Рейтинг: 0 / 0
процедура отваливается
    #32026042
user1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению процедура действительно вообще перестает работать, при вызове из FoxPro возвращаеться -1, из Delphi тоже ошибки. После такого сбоя ее приходится только перекомпилировать (, прям хоть перед запуском ее каздый раз компилируй с клиента.

А в конце я по-честному поставил WHEN OTHERS и после него rollback, так что выполняется она без необрабатываемых ошибок (или может этот rollback все портит?).

Она просто вообще перестает работать после энного запуска.
В чем же дело? И что делать?
Кто-то сказал мне что мол делфи плохо формирует запрос на сервер с вызовом процедуры и она от этого портится. Не знаю - она же может сотндю раз у меня выполниться а потом просто портится...
...
Рейтинг: 0 / 0
процедура отваливается
    #32026050
vskv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это у тебя ещё цветочки
С комбинацией 5.11-й БДЕ, последний драйвер для 8-го оракула и 8.1.х сервер
видены и не такие чудеса. В частности, иногда вместо данных в первой строке
грида можно получить пустоту и тому подобные прелести.
Так что, это не сервер виноват, а БДЕ. Мне советовали вернуться обратно на
клиент от 7-ки Там действительно таких глюков не наблюдается,
ни с процедурами, ни с запросами.

И главный вопрос -- не забывашь ли ты делать Prepare. Его вообще-то,
так же как и с запросами, надо делать всего один раз за сессию,
но перед ExecProc.

Да... Alter procedure some_proc compile;
Ну или совсем жестоко -- dbmsutil.sql: dbms_dll.alter_compile
Это можно и через ExecProc звать
--
procedure alter_compile(type varchar2, schema varchar2, name varchar2);
-- Equivalent to SQL "ALTER PROCEDURE|FUNCTION|PACKAGE [<schema>.]
-- <name> COMPILE [BODY]". If the named object is this package,
-- or any packages upon which it depends (currently "standard" or
-- "dbms_standard") then the procedure simply returns (since these
-- packages are clearly successfully compiled).
-- Input arguments:
-- type
-- Must be one of "PROCEDURE", "FUNCTION", "PACKAGE", "PACKAGE
-- BODY" or "TRIGGER".
-- schema
-- The schema name. If NULL then use current schema. Case sensitive.
-- name
-- The name of the object. Case sensitive.
-- Exceptions:
-- ORA-20000: Insufficient privileges or object does not exist.
-- ORA-20001: Remote object, cannot compile.
-- ORA-20002: Bad value for object type. Should be one of PACKAGE,
-- PACKAGE BODY, PROCEDURE, FUNCTION, or TRIGGER.
--
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / процедура отваливается
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]