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
Valeu
Paulo Henrique Martins
Bacharel em Ciência da Computação
Phtins
Curtir tópico
+ 0
Responder
Posts
16/08/2004
Motta
faço assim :
defino uma package
com esta packge definida uma sp que retorne um cursor tem a seguinte estrutura
para chama-la do sql-plus
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
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
Clique aqui para fazer login e interagir na Comunidade :)