Pular para o conteúdo
Visualizando 10 posts - 1 até 10 (de 10 do total)
  • Autor
    Posts
  • #84819
    Anônimo

      Olá.

      Pessoal estou tentando usar o execute immediate para esse alter system, porem ele não consegue executar o alter system…Não da erro, a procedure executa normalmente porem a session continua la…
      coloquei aida esse out_put pra ver se tava passando direitinho o sid e o serial#…

      Alguem pode me dar uma LUZ ???

      *************************************************************
      PROCEDURE “PRC_TIRA_LOCK” IS
      V_SID NUMBER;
      V_SERIAL NUMBER;
      V_ERRMSG VARCHAR2(100);

      BEGIN

      select sid,serial# into V_SID,v_serial
      from v$session
      where sid =(select session_id
      from dba_locks
      where Blocking_others <> ‘Not Blocking’);

      dbms_output.put_line(V_SID||’,’||v_serial);

      execute immediate ‘alter system kill session ‘||chr(39)||to_char(v_sid)||’,’||to_char(v_serial)||chr(39)||’ immediate;’;

      EXCEPTION
      WHEN OTHERS THEN
      V_ERRMSG:= SQLERRM;
      END;
      *************************************************************

      Agradeço desde já.

      Paol

      #84820
      Marcio68Almeida
      Participante

        Eu fiz um shell para executar essa tarefa.

        #84822
        Anônimo

          Opa.. tudo bom
          Como marcio vc fez isso ???

          Na realidade o execute immediate teoricamente deveria funcionar mas parace q ele nao executa…

          No seu shell vc executa uma proc ou é de outra maneira ???

          Att

          Paol

          #84823
          Marcio68Almeida
          Participante

            faço um arquivinho chamado da seguinte forma no crontab :
            sqlplus user/senha@banco @mataprocessos
            O que tem no mataprocessos.sql ?
            spool killall.sql
            select sid,serial# into V_SID,v_serial
            from v$session
            where sid =(select session_id
            from dba_locks
            where Blocking_others 'Not Blocking');
            spool off
            @killall

            simples, não ???

            #84824
            Anônimo

              iuahuiaahihiauhiahiuahahauihaiua

              demaiss…..rs

              vlw pelo help….

              #84825
              jspaulonci
              Participante

                Para que serve o campo blocking_others ?

                #84826
                Anônimo

                  Na realidades esse campo mostra se a session está ou não bloqueando outros users.

                  #84827
                  jspaulonci
                  Participante

                    Somente para somar conhecimento, você não precisava ir até a DBA_LOCKS, basta vc pegar o campo BLOCKING_SESSION da V$session, ela mostrará a você qual é a sesão que está bloqueando-a.

                    Abraços

                    Spaulonci

                    #84829
                    Marcio68Almeida
                    Participante

                      Que versão do banco tem a coluna “BLOCKING_SESSION” ???

                      #84838
                      Anônimo

                        10G

                      Visualizando 10 posts - 1 até 10 (de 10 do total)
                      • Você deve fazer login para responder a este tópico.