PL / SQL Cursor FOR LOOP
Resumen: En este tutorial, aprenderá a usar la instrucción PL/SQL cursor FOR LOOP
para obtener y procesar cada registro de un cursor.
Introducción a la instrucción PL/SQL cursor FOR LOOP
la instrucción cursor FOR LOOP
es una elegante extensión de la instrucción numérica FOR LOOP
.
El numérico FOR LOOP
ejecuta el cuerpo de un bucle una vez por cada valor entero en un rango especificado., Del mismo modo, el cursor FOR LOOP
ejecuta el cuerpo del bucle una vez por cada fila devuelta por la consulta asociada con el cursor.
una buena característica de la instrucción cursor FOR LOOP
es que le permite obtener cada fila de un cursor sin administrar manualmente el ciclo de ejecución, es decir, OPEN
, FETCH
, y CLOSE
.
el cursor FOR LOOP
crea implícitamente su índice de bucle como una variable de registro con el tipo de fila en la que regresa el cursor y luego lo abre.,
en cada iteración de bucle, la instrucción cursor FOR LOOP
obtiene una fila del conjunto de resultados en su índice de bucle. Si no hay ninguna fila que buscar, el cursor FOR LOOP
cierra el cursor.
el cursor también se cierra si una instrucción dentro del bucle transfiere control fuera del bucle, por ejemplo, EXIT
y GOTO
, o genera una excepción.,
el siguiente ejemplo ilustra La sintaxis del cursor FOR LOOP
instrucción:
1) registro
El record
es el nombre del índice que el cursor FOR LOOP
instrucción declara implícitamente como un %ROWTYPE
variable de registro del tipo de cursor.
la variable record
es local a la instrucción cursor FOR LOOP
. Esto significa que solo se puede hacer referencia dentro del bucle, no fuera., Después de que finalice la ejecución de la instrucción cursor FOR LOOP
, la variable record
se vuelve indefinida.
2) cursor_name
El cursor_name
es el nombre de un cursor explícito, que no está abierto cuando el bucle se inicia.
tenga en cuenta que además del nombre del cursor, puede usar una instrucción SELECT
como se muestra a continuación:
en este caso, el cursor FOR LOOP
declara, abre, obtiene y cierra un cursor implícito., Sin embargo, el cursor implícito es interno; por lo tanto, no puede hacer referencia a él.
tenga en cuenta que Oracle Database optimiza automáticamente un cursor FOR LOOP
para que funcione de manera similar a una consulta BULK COLLECT
. Aunque su código parece que obtiene una fila a la vez, Oracle Database obtiene varias filas a la vez y le permite procesar cada fila individualmente.
PL / SQL cursor FOR loop examples
veamos algunos ejemplos de uso de la instrucción cursor FOR LOOP
para ver cómo funciona.,
a) PL/SQL cursor FOR LOOP example
el siguiente ejemplo declara un cursor explícito y lo usa en la instrucción cursor FOR LOOP
.
en este ejemplo, la instrucción SELECT
del cursor recupera datos de la tabla products
. La instrucción FOR LOOP
se abrió, obtuvo cada fila del conjunto de resultados, mostró la información del producto y cerró el cursor.,
B) Cursor FOR LOOP with a SELECT statement example
el siguiente ejemplo es equivalente al ejemplo anterior, pero utiliza una consulta en una instrucción cursor FOR LOOP
.
en este tutorial, ha aprendido cómo usar el cursor PL/SQL FOR LOOP
para obtener datos de un cursor.
- ¿Fue útil este tutorial?
- YesNo