sql >> Base de Datos >  >> RDS >> Oracle

Introducción a los cursores de referencia PL/SQL en Oracle Database

¿Qué son los cursores de referencia PL/SQL en la base de datos Oracle?

Cuando se trata de rendimiento, los cursores de referencia PL/SQL en Oracle siempre han demostrado ser superiores a los cursores estáticos. Debido a la capacidad de un solo cursor de referencia para asociarse con múltiples instrucciones SELECT en un solo bloque PL/SQL. Además, esto reduce la necesidad de escribir cursores explícitos separados. Además, los convierte en una característica altamente eficiente, flexible y robusta del lenguaje PL/SQL. Así que exploremos Ref Cursors en PL/SQL y aprendamos más al respecto.

¿Qué son los cursores de referencia PL/SQL en Oracle Database?

Ref Cursor es un acrónimo de Referencia a un Cursor. Es un tipo de datos PL/SQL con el que puede declarar un tipo especial de variable llamada Variable de cursor.

¿La variable de cursor y el cursor de referencia están conectados entre sí?

Esa es una muy buena pregunta. Vi en muchos libros que ambos nombres se usan indistintamente. Sin embargo, ambos son dos temas separados pero interdependientes.

Por un lado, la variable de cursor es como un puntero que se refiere a un área de contexto diferente en SGA. Mientras que Ref Cursor es un tipo de datos que contiene un valor de cursor.

Entonces, ¿cómo son la variable de cursor y los cursores de referencia interdependientes entre sí?

Como se mencionó anteriormente, las variables de cursor se declaran con la ayuda de Ref Cursors. En consecuencia, podemos decir que en Oracle Database las variables de cursor existen en forma de Ref Cursors.

Definición de variable de cursor
Utilizando toda la información anterior, podemos definir la variable de cursor como:Una variable de Tipo de cursor de referencia se denomina Variable de cursor.

¿Cuál es la sintaxis para declarar el cursor de referencia?

Esta es la sintaxis generalizada para declarar cursores Ref en Oracle Database:

DECLARE
 TYPE [cursor_variable_name] IS REF CURSOR [RETURN (return_type)];

La sintaxis se puede modificar y usar según el tipo de cursores de referencia que desee usar en su aplicación. Habiendo dicho eso, veamos los tipos de Ref Cursors disponibles en Oracle Database.

¿Cuántos tipos de cursores de referencia PL/SQL tenemos?

Hay dos tipos de cursores de referencia en PL/SQL. Estos son:

  1. Cursor de referencia fuerte y
  2. Cursor de referencia débil

¿Qué es Strong Ref Cursor en Oracle Database?

Cualquier cursor de referencia que tenga un tipo de retorno fijo se denomina cursor de referencia fuerte.

Además, dichos cursores de referencia solo se pueden usar con algunas declaraciones SELECT. Además, el resultado del tipo de datos de la declaración SELECT debe coincidir con el que se corrigió durante la declaración del cursor seguro.

Sintaxis de cursores de referencia fuertes en PL/SQL

Esta es la sintaxis del cursor de referencia fuerte.

DECLARE
	TYPE cursor_variable_name IS REF CURSOR 
RETURN (return type);

La cláusula de retorno juega un papel muy importante en la declaración de un Ref Cursor. Restringe su alcance. Y hace que su Ref Cursor se limite solo a aquellas declaraciones SELECT que devuelven el resultado cuyo tipo de datos coincide con el que especificó en la cláusula RETURN al declararlo.

Además, el tipo de retorno de un Ref Cursor siempre debe ser de Record Datatype. Puede ser una estructura de registro de una tabla o una estructura de registro definida por el usuario.

¿Qué es un cursor de referencia débil en Oracle Database?

A diferencia de los cursores de referencia fuerte, los cursores de referencia débil son aquellos que no tienen ningún tipo de retorno. En otras palabras, los cursores de referencia que no tienen un tipo de retorno fijo se denominan cursores de referencia débiles.

Dado que los cursores de referencia débiles no tienen ningún tipo de retorno fijo, están abiertos a todas las declaraciones SELECT. Y esto los convierte en uno de los cursores de referencia más utilizados en PL/SQL.

Sintaxis de cursores de referencia débiles en PL/SQL

DECLARE
	TYPE ref_cursor_name IS REF CURSOR;

Excepto por la falta de la cláusula de devolución, la sintaxis es bastante similar a los cursores de referencia fuertes.

Un estudio canadiense sugiere que los seres humanos están biológicamente programados para ser perezosos. Además, ¿cuál es el punto de tener una computadora con todos estos poderes de procesamiento cuando tenemos que hacer todo el trabajo duro de declarar un tipo de puntero Ref y luego crear una variable?

Bueno, mis queridos amigos, si usted es uno de los que quiere abstenerse de hacer todo el trabajo duro de crear una variable de cursor, entonces Oracle PL/SQL tiene una opción para usted. Esta opción le servirá como una variable de cursor creada implícitamente. Entonces, veamos qué es.

Sys_RefCursor

Sys Ref cursor es una variable de cursor incorporada de Oracle. Declara un cursor de referencia débil y eso también sin declarar el tipo de puntero de referencia. En su mayoría, se usa como un cursor genérico que se puede pasar como argumento a un subprograma almacenado.

Eso es todo por este tutorial sobre la introducción a PL/SQL Ref Cursors en Oracle Database. Estén atentos ya que en los próximos tutoriales haremos una demostración práctica del Ref Cursor en Oracle PL/SQL.

También puede consultar el video tutorial sobre el mismo tema en mi canal de YouTube para obtener más detalles.

Gracias por pasar. ¡Que tengas un gran día!