Oracle cursores explícitos - los debe declarar físicamente - le quita la " hilera " limitación de las sentencias SELECT comunes. En lugar de copiar y almacenar los valores de columna en las variables de la instrucción SELECT una fila a la vez , los cursores explícitos permiten ejecutar una consulta, almacena una colección de valores en la memoria y volver atrás y procesar cada registro individual . Esto no sólo reduce el tiempo de procesamiento , sino que también reduce la cantidad de código que necesita para escribir . Automatizar el proceso y reducir aún más los requisitos de codificación mediante el uso de un cursor para rec bucle para recorrer y recuperar varios registros de base de datos . Instrucciones
1
Crear o declarar el cursor de forma normal , dándole un nombre único , la unión a una instrucción SELECT común y lo añaden a la sección de declaración de su función o proceso . La instrucción SELECT puede ser simple o puede ser más complejo , como un SELECT /WHERE /GROUPBY . Si, por ejemplo , desea utilizar un cursor para circuito rec a buscar el salario mensual vigente para cada uno de sus empleados y luego sumar estas cantidades , la instrucción de declaración se mostrará como :
crear o sustituir la función SalaryExpense ( name_in EN VARCHAR2 ) RETURN número varchar2IStotal_val ( 6 ) ;
DECLARE salary_cursor cursor isselect monthly_salaryfrom nombre employeeswhere = name_in ;
COMENZAR
(Referencia 1 páginas 6 , 7 y referencia 2 )
2
Escriba una sentencia de bucle que se abre automáticamente el cursor , accede a cada registro de empleado , extrae la información del sueldo mensual que usted necesita calcular sus gastos de salario mensual y se suma cada valor a un total acumulado. Cuando el bucle alcanza el último registro , se cierra automáticamente el cursor :
total_monthy_salary : = 0 ;
PARA employee_rec en salary_cursorLOOPtotal_monthy_salary : = total_monthy_salary + employee_rec.monthly_salary ; END LOOP ;
3
mostrar los resultados y finalizar la función o proceso :
RETURN total_monthy_salary ; END;