Pular para o conteúdo

TYPED REF CURSOR – Tipos Forte e Fraco (Strongly and Weakly) e suas diferenças

PL/SQL: 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

Sergio Willians

Sergio Willians

Sergio Willians é o fundador do GPO (Grupo de Profissionais Oracle) e possui quase 30 anos de experiência em tecnologias Oracle, sendo especialista em desenvolvimento Forms/Reports, PL/SQL e EBS (E-Business Suite) nos módulos Receivables, Payables e General Ledger. Atualmente trabalha na Scania Latin America, onde se dedica à área de integração de dados com Confluent Kafka. Sua paixão é compartilhar conhecimento com a comunidade Oracle, contribuindo para o crescimento e a excelência da plataforma.

Prestigie o autor e deixe o seu comentário:

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