› Fóruns › Banco de dados Oracle › Execução Alter System com Execute Immediate !!!
- Este tópico contém 9 respostas, 3 vozes e foi atualizado pela última vez 17 anos, 5 meses atrás por
Anônimo.
-
AutorPosts
-
20 de janeiro de 2009 às 9:57 pm #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
20 de janeiro de 2009 às 10:12 pm #84820Marcio68Almeida
ParticipanteEu fiz um shell para executar essa tarefa.
20 de janeiro de 2009 às 10:30 pm #84822Anô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
20 de janeiro de 2009 às 10:34 pm #84823Marcio68Almeida
Participantefaç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 ???20 de janeiro de 2009 às 10:38 pm #84824Anônimo
iuahuiaahihiauhiahiuahahauihaiua
demaiss…..rs
vlw pelo help….
20 de janeiro de 2009 às 10:40 pm #84825jspaulonci
ParticipantePara que serve o campo blocking_others ?
20 de janeiro de 2009 às 10:43 pm #84826Anônimo
Na realidades esse campo mostra se a session está ou não bloqueando outros users.
20 de janeiro de 2009 às 10:59 pm #84827jspaulonci
ParticipanteSomente 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
20 de janeiro de 2009 às 11:18 pm #84829Marcio68Almeida
ParticipanteQue versão do banco tem a coluna “BLOCKING_SESSION” ???
20 de janeiro de 2009 às 11:40 pm #84838Anônimo
10G
-
AutorPosts
- Você deve fazer login para responder a este tópico.
› Fóruns › Banco de dados Oracle › Execução Alter System com Execute Immediate !!!