GPO ( Grupo de Profissionais Oracle )
A maior comunidade Oracle do Brasil !

PL/SQL: Tipos de TYPED REF CURSOR

Olá pessoal !

Um camarada developer me questionou sobre TYPED REF CURSOR, dizendo que tinha lido que haviam tipos diferentes, só que ele não sabia quais eram e quais as diferenças entre ambos.

Na verdade, existem dois tipos:  Forte (Strongly) e o Fraco (Weakly), que tem de diferente entre si, a definição de sua estrutura e seu retorno.

Um exemplo prático, seria que no Forte (Strongly) , há a verificação da estrutura de dados em tempo de compilação e no Fraco (Weakly) em tempo de execução.


Exemplo REF CURSOR Strongly:

CREATE OR REPLACE FUNCTION fTesteStrong
   RETURN SYS_REFCURSOR

IS
   TYPE teste_row IS RECORD
      (
       codigo teste.codigo%TYPE
      ,descr  teste.descr%TYPE
      );

   TYPE teste_strong IS REF CURSOR RETURN teste_row;

   cTS teste_strong;

BEGIN
   OPEN cTS FOR
      SELECT codigo,
             descr
      FROM   teste;

   RETURN(cTS);         

END fTesteStrong;

Exemplo REF CURSOR Weakly:

CREATE OR REPLACE FUNCTION fTesteWeak
   RETURN SYS_REFCURSOR IS
   cTS SYS_REFCURSOR;

BEGIN
   OPEN cTS FOR
      SELECT codigo,
             descr
      FROM   teste;

   RETURN cTS;

END fTesteWeak;  

Está aí o conceito de Strongly e Weakly TYPE REF CURSOR ! J

Abraço

Share

You may also like...

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *