dup_check.sql

procedure duplicate_check(cur_operator IN varchar2,
 rows_processed OUT number) as
begin
update so_back_process b 
   set so_audsid=userenv('sessionid'),
       so_pid=(select translate(process,':','.')
                 from sys.v_$session 
                 where audsid=userenv('sessionid'))
                where not exists ( select 1 from sys.v_$session c 
                                    where audsid=b.so_audsid
                                    and c.audsid != 0 
                                    and c.audsid <> userenv('sessionid') )
                  and so_operator = cur_operator
                  and so_master = 'Y';
                  
rows_processed := sql%rowcount;
exception
  WHEN no_data_found
  THEN rows_processed := 0;
end duplicate_check;
/