无限的作业执行锁定表

时间:2016-05-18 13:41:08

标签: oracle oracle11g

以下是查询:

INSERT INTO resumo
            (tipo, id_tipo, qtde)
   SELECT   tipo, id_tipo, COUNT (*) qtde
       FROM tabela
      WHERE id_tipo > 400
   GROUP BY tipo, id_tipo;
COMMIT;

如果我手动运行,则需要30秒才能执行。 如果我将相同的查询放入一个包并创建一个作业来运行它,它就会一直运行,锁定表resumo。任何想法为什么会发生这种情况?

它是oracle 11g。

修改

套餐规范:

CREATE OR REPLACE PACKAGE PKG_TESTE AS

procedure geraTabela;

End PKG_TESTE;
/

套餐正文:

CREATE OR REPLACE PACKAGE body PKG_TESTE AS

procedure geraTabela is

begin

    INSERT INTO resumo
                (tipo, id_tipo, qtde)
       SELECT   tipo, id_tipo, COUNT (*) qtde
           FROM tabela
          WHERE id_tipo > 400
       GROUP BY tipo, id_tipo;
    COMMIT;

end;

end PKG_TESTE;
/

作业:

DECLARE
  X NUMBER;
BEGIN
  SYS.DBMS_JOB.SUBMIT
  ( job       => X 
   ,what      => 'PKG_TESTE.geraTabela;'
   ,next_date => to_date('18/05/2016 11:00:00','dd/mm/yyyy hh24:mi:ss')
   ,interval  => 'SYSDATE+60/1440 '
   ,no_parse  => FALSE
  );
COMMIT;
END;
/

0 个答案:

没有答案