Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Introdução aos cursores de referência PL/SQL no banco de dados Oracle

O que são cursores de referência PL/SQL no banco de dados Oracle?


Quando se trata de desempenho, os cursores de referência PL/SQL no Oracle sempre se mostraram superiores aos cursores estáticos. Devido à capacidade de um único cursor ref ser associado a várias instruções SELECT em um único bloco PL/SQL. Além disso, isso reduz a necessidade de escrever cursores explícitos separados. Além disso, os torna um recurso altamente eficiente, flexível e robusto da linguagem PL/SQL. Então, vamos explorar os cursores de referência em PL/SQL e aprender mais sobre isso.

O que são cursores de referência PL/SQL no banco de dados Oracle?


Ref Cursor é um acrônimo de Reference to a Cursor. É um tipo de dados PL/SQL com o qual você pode declarar um tipo especial de variável chamado Cursor Variable.

A variável de cursor e o cursor de referência estão conectados entre si?


Esta é uma questão muito boa. Vi em muitos livros que ambos os nomes são usados ​​de forma intercambiável. No entanto, ambos são dois tópicos separados, mas interdependentes.

Por um lado, a variável de cursor é como um ponteiro que se refere a diferentes áreas de contexto no SGA. Considerando que Ref Cursor é um tipo de dados que contém um valor de cursor.

Então, como a variável de cursor e os cursores de referência são interdependentes entre si?


Como mencionado acima, as variáveis ​​de cursor são declaradas com a ajuda de cursores de referência. Consequentemente, podemos dizer que no banco de dados Oracle as variáveis ​​de cursor existem na forma de cursores de referência.

Definição da variável do cursor
Usando todas as informações acima, podemos definir a variável de cursor como:Uma variável do tipo de cursor de referência é chamada de variável de cursor.

Qual ​​é a sintaxe para Declarar o cursor de referência?


Aqui está a sintaxe generalizada para declarar cursores Ref no Oracle Database:
DECLARE
 TYPE [cursor_variable_name] IS REF CURSOR [RETURN (return_type)];

A sintaxe pode ser modificada e usada dependendo do tipo de cursores de referência que você deseja usar em sua aplicação. Dito isso, vamos ver os tipos de cursores de referência disponíveis no Oracle Database.

Quantos tipos de cursores de referência PL/SQL temos?


Existem dois tipos de cursores de referência em PL/SQL. Esses são:
  1. Cursor de referência forte e
  2. Cursor de referência fraco


O que é Strong Ref Cursor no Oracle Database?


Qualquer cursor de referência que tenha um tipo de retorno fixo é chamado de cursor de referência forte.

Além disso, tais cursores ref só podem ser usados ​​com algumas instruções SELECT. Além disso, o resultado do tipo de dados da instrução SELECT deve corresponder ao que foi corrigido durante a declaração do cursor forte.

Sintaxe de cursores de referência fortes em PL/SQL


Aqui está a sintaxe do cursor ref forte.
DECLARE
	TYPE cursor_variable_name IS REF CURSOR 
RETURN (return type);

A cláusula de retorno desempenha um papel muito importante na declaração de um cursor de referência. Ele restringe seu escopo. E torna seu Cursor Ref limitado apenas às instruções SELECT que retornam o resultado cujo tipo de dados corresponde ao que você especificou na cláusula RETURN ao declará-lo.

Além disso, o tipo de retorno de um cursor de referência deve ser sempre do tipo de dados de registro. Pode ser uma estrutura de registro de uma tabela ou uma estrutura de registro definida pelo usuário.

O que é um cursor de referência fraco no banco de dados Oracle?


Ao contrário dos cursores ref fortes, os cursores ref fracos são aqueles que não possuem nenhum tipo de retorno. Em outras palavras, aqueles cursores ref que não possuem tipo de retorno fixo são chamados de cursores ref fracos.

Como os cursores de referência fracos não têm nenhum tipo de retorno fixo, eles estão abertos a todas as instruções SELECT. E isso os torna um dos cursores de referência mais usados ​​em PL/SQL.

Sintaxe de cursores de referência fracos em PL/SQL

DECLARE
	TYPE ref_cursor_name IS REF CURSOR;

Exceto pela cláusula de retorno ausente, a sintaxe é bastante semelhante aos cursores ref fortes.

Um estudo canadense sugere que os humanos são biologicamente programados para serem preguiçosos. Além disso, qual é o sentido de ter um computador com todos esses poderes de processamento quando temos que fazer todo o trabalho duro de declarar um tipo de ponteiro Ref e depois criar uma variável.

Bem, meus queridos amigos, se você é um daqueles que quer se abster de fazer todo o trabalho duro de criar uma Variável de Cursor, o Oracle PL/SQL tem uma opção para você. Esta opção servirá como uma variável de cursor criada implicitamente para você. Então, vamos ver o que é.

Sys_RefCursor


O cursor Sys Ref é uma variável de cursor incorporada ao Oracle. Ele declara um cursor ref fraco e isso também sem declarar o tipo de ponteiro ref. Principalmente é usado como um cursor genérico que pode ser passado como um argumento para um subprograma armazenado.

É isso para este tutorial sobre a introdução aos cursores de referência PL/SQL no banco de dados Oracle. Fique atento pois nos próximos tutoriais faremos uma demonstração prática do Cursor Ref no Oracle PL/SQL.

Você também pode consultar o tutorial em vídeo sobre o mesmo tópico no meu canal do YouTube para obter mais detalhes.



Obrigada por apareceres. Tenha um ótimo dia!