Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Douglas Rocha

Problemas com Cursor/FUNCTION

Recommended Posts

Pra começar, quero deixar claro que não entendo nada de Oracle =\

Estou tentando aprender agora... enfim...

 

Contrui o seguinte script para executar a função F_Turmas_Aluno...

Embora eu não entenda nada de Oracle, acredito que o meu erro é não saber declarar um "Cursor" ...

 

DECLARE

 

retorno VARCHAR2(200);

CURSOR ds;

 

Begin

 

retorno:=F_Turmas_Aluno('101030630',ds);

 

End;

 

 

É apresentado o seguinte erro...

Warning: oci_execute() [function.oci-execute]: ORA-06550: line 1, column 32: PLS-00360: cursor declaration without body needs return type ORA-06550: line 1, column 32: PL/SQL: Item ignored ORA-06550: line 1, column 85: PLS-00320: the declaration of the type of this expression is incomplete or malformed ORA-06550: line 1, column 49: PL/SQL: Statement ignored in /usr/local/apache2/htdocs/atendimento/oracle.php on line 11

 

 

 

Abaixo segue o script, que me disseram ser o protótipo da função...

 

CREATE OR REPLACE FUNCTION F_Turmas_Aluno(P_MATRICULA IN VARCHAR2,P_Cursor IN OUT B_Tipos_API.T_Generic_Cursor)

RETURN VARCHAR2

 

 

Agradeço a quem puder ajudar, ou ao menos tentar!

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente algo assim :

 

set serveroutput on;
declare
  q Crystal.CrystalCursor;
  a number;
  b varchar2(7);
  c number;
  d date;
  e date;
  --
  resultado number;
begin
  resultado := minha_function(q);
  loop
    fetch q into a,b,c,d,e;
    exit when q%notfound;
    dbms_output.put_line(a);
    dbms_output.put_line(B);
    dbms_output.put_line(c);
    dbms_output.put_line(d);
    dbms_output.put_line(e);
  end loop;
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.