2016-11-27 13 views
0

У меня есть длинная процедура, которую я хочу сохранить. Это для начала, когда он останавливается, если что-то в базе данных произошло. Как я могу реализовать его в Oracle?Запустить процедуру с момента ее прекращения

+0

Сохраните состояние в таблице базы данных? –

+0

Но я хочу, чтобы процедура начала где-то в коде, что-то вроде начальной точки. Это возможно? –

+1

Для этого нет ничего встроенного, вам нужно будет разработать собственное решение. –

ответ

1

Я решил проблему. Благодаря комментариям я понял, что нецелесообразно вводить некоторые пусковые операции в процедуру.

Я создал таблицу Aux ProcState, где я сохранил состояние процедуры. Когда я начинаю процедуру, с помощью цикла запросов I в регистрах, которые я не вставленный в ProcState

При выполнении процедуры, я вставляю и совершать валидации, что я не хочу, чтобы проверить againg если СУБД перерывов.

И наконец, когда процедура заканчивается, я удаляю все регистры в ProcState для начала с 0 в следующий раз.

Надежды Это помогает кому-то.

1

Вы можете сделать это с помощью собственного решения.

Я совет вам с этим решением:

Помещенный if case перед каждым dml statements и проверить это нормально S или нет.

Я имею в виду, что вы можете положить 1 конец каждого dml statements и проверить его перед запуском этого блока. Это длинный путь, который я знаю, но он решает вашу проблему.