У меня есть пакет, который выполняющий различные вставки и обновления для положения работы и местонахождения tables.Something как:Откат весь блок во время выполнения остальных в PLSQL
Create or replace package body pack_name
as
procedure proc
as
----Posistion Block
Begin
Begin
insert into xx_pos_table
select *
from xx_i_pos_table;
exception when others then
end;
Begin
insert into xx_pos_tl_table
select * from xx_i_pos_tl_table;
exception when others then
end;
Begin
Update xx_pos_extra
set err_msg =Null
exception when others then
end;
end;
---Job block
Begin
Update xx_job_extra
set err_msg =Null
exception when others then
end;
-- Loc block
Begin
Update xx_loc_extra
set err_msg =Null
exception when others then
end;
end;
end;
Теперь я хочу, что если в позиции блока для Например, есть ошибка при вставке данных в xx_pos_extra, тогда только кадр позиции должен быть откат, а данные из xx_pos_table, xx_pos_tl_table и xx_pos_extra не должны вводиться. Но остальные блоки (Job и location) должны быть выполнены.
я не получил вас. Вы сказали, что * данные из xx_pos_table, xx_pos_tl_table и xx_pos_extra не должны вводиться * и в то же время * Но остальные блоки должны быть выполнены *. Являются ли вставки 'xx_pos_tl_table' и' xx_pos_extra' не * остальными блоками *? –
@ agent5566-Спасибо за исправление ... Я отредактировал свой вопрос. Я хочу, чтобы работа и блок позиции выполнялись. Xx_job_extra и xx_location должны быть обновлены. –
Вы должны просто поместить свой позиционный блок в 'SAVEPOINT' и откат к нему в блоке исключений –