Facebook
From Morose Cheetah, 5 Days ago, written in Oracle 9.2 PL/SQL.
Embed
Download Paste or View Raw
Hits: 36
  1. -- EXERC√ćCIO 22.1
  2. CREATE OR REPLACE PROCEDURE PROC_CALC_GRAUS(pCodI t_instituicao.id%TYPE) IS
  3.  
  4. -- DECLARAÇÃO DO CURSOR
  5. CURSOR c_dados_origem IS
  6.     SELECT d.grau, COUNT(*) numdocs
  7.     FROM   t_docente d JOIN t_pessoa p ON (d.id=p.id)
  8.     WHERE  p.idInst=pCodI
  9.     GROUP BY d.grau;
  10.  
  11.     SET TRANSACTION READ WRITE NAME 'INSERIR EM T_DOCS_GRAU';
  12.     DELETE FROM t_docs_grau WHERE idInst=pCodI;
  13.     FOR linha IN c_dados_origem LOOP
  14.         INSERT INTO T_DOCS_GRAU VALUES(linha.grau, linha.numdocs, pCodI);
  15.         DBMS_OUTPUT.PUT_LINE('Grau:'|| linha.grau || ' numdocs: ' || linha.numdocs || ' Inst:'||pCodI);
  16.     END LOOP;
  17.     COMMIT;
  18.         ROLLBACK;
  19.         RAISE_APPLICATION_ERROR(-20001,'ERRO:'||SQLERRM);
  20. /
  21. EXECUTE PROC_CALC_GRAUS(2);