Shape1 Shape2

Copyright 2010 le coin du dba oracle

Shape4

Le coin du DBA Oracle

All rights reserved

Oracle est une marque déposée d'Oracle Corporation

2006_0815aout_canal20060093 DBA Oracle
Shape1

Petite procédure permettant de déverrouiller un enregistrement laps de temps en seconde (Téléchargement du script)

N'oubliez pas de donner les droit à l'utilisateur (grant)




CREATE OR REPLACE PROCEDUREuser.unlock( TimeOut VARCHAR2) IS

    retval    NUMBER := 0;

    cid       NUMBER := 0;

    SID              NUMBER := 0;

    SERIAL    NUMBER := 0;

begin

    cid := DBMS_SQL.OPEN_CURSOR;

--        dbms_output.put_line ('Open cursor');

    DBMS_SQL.PARSE(cid,'select sid from sys.v_$lock l where l.ctime > '||TimeOut||' and l.TYPE = ''TX''',DBMS_SQL.V7);

--        dbms_output.put_line ('Parse');

    DBMS_SQL.DEFINE_COLUMN(cid,1,SID);

    retval :=DBMS_SQL.EXECUTE_AND_FETCH(cid);

    IF (retval > 0) THEN

        DBMS_SQL.COLUMN_VALUE(cid,1,SID);

           DBMS_SQL.PARSE(cid,'select s.serial# from sys.v_$session s where s.sid = '||SID||' and s.username is not null',DBMS_SQL.V7);

--        dbms_output.put_line ('Parse');

           DBMS_SQL.DEFINE_COLUMN(cid,1,SERIAL);

           retval :=DBMS_SQL.EXECUTE_AND_FETCH(cid);

           IF (retval > 0) THEN        

               DBMS_SQL.COLUMN_VALUE(cid,1,SERIAL);

            execute immediate 'alter system kill session ''' || SID|| ',' || SERIAL||'''';

           END IF;

       

    else

               dbms_output.put_line ('no KILL');

    END IF;

    DBMS_SQL.CLOSE_CURSOR(cid);


END unlock;

/

Shape2

Scripts Oracle Déverrouillage d'un enregistrement