Tira o exception da tua procedure e executa ela ... Tu já vai ver qual é o erro que esta dando.
Begin SYSTEM.METRIC_CONSUMO_CPU; End; Sergio Lucchini ________________________________ De: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] Em nome de Duilio Bruniera Junior Enviada em: sexta-feira, 22 de janeiro de 2010 14:12 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] problema para executar procedure em um job. Ambiente S.O.: Red Hat Linux 5.2 64bits Oracle 10.2.0.4 RAC com 3 nós E ai peoples tudo belezinha .... seguinte eu estou com um problema, eu criei um procedure para capturar os 10 maiores processos(consumo de CPU), minha ideia era colocar isso pra rodar em um job que executaria de 15 em 15 min, alimentando uma tabela com esses dados. eu criei a procedure ela executa normalmente! mais quando coloco para rodar no job o job não roda(roda mais da erro e o erro não aparece para mim) estou postando o codigo abaixo se alguem puder dar uma força e dizer onde eu to errando! ################################################################################################################################### create table SYSTEM.DATA_METRIC_CPU ( DATA_TIME TIMESTAMP, INST_ID NUMBER, SID NUMBER, PID NUMBER, USERNAME VARCHAR2(30), PROGRAM VARCHAR2(30), VALOR NUMBER ) TABLESPACE "METRIC"; _______________________________________________________ GRANT SELECT ON "SYS"."GV_$SESSTAT" TO "SYSTEM"; GRANT SELECT ON "SYS"."GV_$STATNAME" TO "SYSTEM"; GRANT SELECT ON "SYS"."GV_$SESSION" TO "SYSTEM"; GRANT SELECT ON "SYS"."GV_$PROCESS" TO "SYSTEM"; _______________________________________________________ create or replace procedure SYSTEM.METRIC_CONSUMO_CPU is CURSOR cpu_cursor IS SELECT * FROM (SELECT s.inst_id, s.sid, p.spid, s.username, s.module, st.value/100 valor FROM sys.gv_$sesstat st, sys.gv_$statname sn, sys.gv_$process p, sys.gv_$session s WHERE sn.name = 'CPU used by this session' AND s.inst_id = p.inst_id AND s.inst_id = sn.inst_id AND s.inst_id = st.inst_id AND st.statistic# = sn.statistic# AND st.sid = s.sid AND s.paddr = p.addr AND s.last_call_et < 1800 -- ativo nos ultimos 30 min. AND s.logon_time > (SYSDATE - 240 / 1440) -- sessão logada a pelo menos 4 horas. ORDER BY st.value desc) WHERE ROWNUM <= 10; begin for lcpu in cpu_cursor loop insert into SYSTEM.DATA_METRIC_CPU (DATA_TIME, -- DATE INST_ID, -- NUMBER SID, -- NUMBER PID, -- NUMBER USERNAME, -- VARCHAR2(30) PROGRAM, -- VARCHAR2(30) VALOR) -- NUMBER values (TO_CHAR(SYSDATE, 'DD/MM/YYYY HH24:MI:SS'), lcpu.inst_id, lcpu.sid, lcpu.spid, lcpu.username, lcpu.module, lcpu.valor ); commit; end loop; exception when others then raise_application_error(-20001,'erro ao inserir dados-' || sqlerrm); end METRIC_CONSUMO_CPU; _______________________________________________________ -- 15 em 15min. declare x number; begin sys.dbms_job.submit ( job => X , what => 'SYSTEM.METRIC_CONSUMO_CPU;', next_date => to_date('21/01/2010 00:01:00', 'dd/mm/yyyy hh24:mi:ss'), interval => 'TRUNC(sysdate+15/1440)', no_parse => TRUE ); sys.dbms_output.put_line('Job Number is: ' || to_char(x)); commit; end; / ---------------------------------------------------------- ################################################################################################################################### Valeu. [As partes desta mensagem que não continham texto foram removidas] No virus found in this incoming message. Checked by AVG - www.avg.com Version: 8.5.432 / Virus Database: 271.1.1/2636 - Release Date: 01/21/10 07:34:00 [As partes desta mensagem que não continham texto foram removidas]