Kann ein Abzug verriegelt werden? wie würde man feststellen, dass es ist?

Bei der BeantwortungVerpasse ich Änderungen, wenn ich einen Orakelauslöser ersetze, während meine Anwendung ausgeführt wird?Ich habe nachgesehen, ob der Trigger durch eine INSERT-Anweisung gesperrt wurde. Es war nicht so und ich kann im Internet nichts finden, was darauf hindeutet, dass ein Abzug gesperrt werden kann.

Wenn ich in einer Sitzung Folgendes ausführe:

create table test_trigger (id number);
create table test_trigger_h (id number);

create or replace trigger test_trigger_t 
 after insert on test_trigger for each row
begin
  insert into test_trigger_h (id) values (:new.id);
end;    
/

insert into test_trigger
 select level
   from dual
connect by level <= 1000000;

und dann in einer zweiten Sitzung versuchen, herauszufinden, welche Sperren auftreten, bekomme ich Folgendes:

select object_name, object_type
     , case l.block
            when 0 then 'Not Blocking'
            when 1 then 'Blocking'
            when 2 then 'Global'
       end as status
     , case v.locked_mode
            when 0 then 'None'
            when 1 then 'Null'
            when 2 then 'Row-S (SS)'
            when 3 then 'Row-X (SX)'
            when 4 then 'Share'
            when 5 then 'S/Row-X (SSX)'
            when 6 then 'Exclusive'
            else to_char(lmode)
       end as mode_held
  from v$locked_object v
  join dba_objects d
    on v.object_id = d.object_id
  join v$lock l
    on v.object_id = l.id1
  join v$session s
    on v.session_id = s.sid
       ;

OBJECT_NAME          OBJECT_TYPE          STATUS          MODE_HELD
-------------------- -------------------- --------------- ---------------
TEST_TRIGGER         TABLE                Not Blocking    Row-X (SX)
TEST_TRIGGER_H       TABLE                Not Blocking    Row-X (SX)

Laut Oracle ist der Auslösernicht&nbsp;gesperrt werden.

Wenn ich jedoch versuche, den Trigger zu ersetzen, während die INSERT-Anweisung ausgeführt wird, wird er erst ersetzt, nachdem die Anweisung abgeschlossen wurde (ohne Commit), was impliziert, dass der Trigger ausgeführt wirdist&nbsp;verschlossen.

Ist in dieser Situation der Abzug gesperrt und wenn ja, wie würde man feststellen, dass dies der Fall ist?