Testando procedure no SQL PLUS

13/08/2004

0

Pessoal estou com um problema, fiz uma procedure que tem um parametro OUT que é um Cursor, estou tentando testar a procedureno SQLPLUS mas não consigo declarar um cursor no SQLPLUS para passa-lo como parametro, se alguem souber me da um toque.

Valeu
Paulo Henrique Martins
Bacharel em Ciência da Computação


Phtins

Phtins

Responder

Posts

16/08/2004

Motta

faço assim :

defino uma package

CREATE OR REPLACE
PACKAGE crystal IS
--
-- Definição do cursor para Crystal Reports
--
   TYPE CrystalCursor IS REF CURSOR;
END;
/


com esta packge definida uma sp que retorne um cursor tem a seguinte estrutura

CREATE OR REPLACE
PROCEDURE cr_xxx (pCursor IN OUT Crystal.CrystalCursor,
       pparam IN DATE
       )
   IS

BEGIN

     if pCursor ¬isopen then
      Close pCursor;
     end if;
    OPEN pcursor FOR

     SELECT * from tabela where coluna = pparam;

END;
/





para chama-la do sql-plus

set serveroutput on;
declare
  CU Crystal.CrystalCursor;
  data date;

begin
  dbms_output.put_line(TO_CHAR(SYSDATE,´HH24:MI:SS´));
  cr_xxx(CU,sysdate);
  loop
    fetch CU into  data;
    exit when CU¬notfound; 
    dbms_output.put_line(data);
    dbms_output.put_line(´´);
  end loop;
  dbms_output.put_line(TO_CHAR(SYSDATE,´HH24:MI:SS´));
end;


o packge chama-se crystal pois é utilizada para gerar sp´s para rel´s crystal reports (seagate), mas funciona tb internamente no Oracle.

espero ter ajuda-do

fiz o exemplo na mão pode ter um errinho ou outro


Responder

16/08/2004

Motta

c* = cr ou outro nome de variavel


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar