Cursor explícito vs Cursor implícito
Cuando se trata de bases de datos, un cursor es una estructura de control que permite atravesar los registros en una base de datos. Un cursor proporciona un mecanismo para asignar un nombre a una declaración de selección de SQL y luego se puede utilizar para manipular la información dentro de esa declaración de SQL. Los cursores implícitos se crean y utilizan automáticamente cada vez que se emite una instrucción Select en PL / SQL, cuando no hay un cursor explícitamente definido. Los cursores explícitos, como sugiere su nombre, están definidos explícitamente por el desarrollador. En PL / SQL, un cursor explícito es en realidad una consulta con nombre definida usando el cursor de la palabra clave.
¿Qué es el cursor implícito??
Oracle crea automáticamente y utiliza los cursores implícitos cada vez que se emite una declaración de selección. Si se usa un cursor implícito, el Sistema de administración de bases de datos (DBMS) realizará las operaciones de abrir, buscar y cerrar automáticamente. Los cursores implícitos se deben usar solo con sentencias de SQL que devuelven una sola fila. Si la instrucción SQL devuelve más de una fila, el uso de un cursor implícito introducirá un error. Un cursor implícito se asocia automáticamente con cada declaración del lenguaje de manipulación de datos (DML), es decir, las instrucciones INSERT, UPDATE y DELETE. Además, se utiliza un cursor implícito para procesar las instrucciones SELECT INTO. Cuando se obtienen datos utilizando los cursores implícitos, la excepción NO_DATA_FOUND puede generarse cuando la instrucción SQL no devuelve datos. Además, los cursores implícitos pueden generar excepciones TOO_MANY_ROWS cuando la instrucción SQL devuelve más de una fila.
Qué es el cursor explícito?
Como se mencionó anteriormente, los cursores explícitos son consultas definidas usando un nombre. Un cursor explícito se puede considerar como un puntero a un conjunto de registros y el puntero se puede mover hacia adelante dentro del conjunto de registros. Los cursores explícitos proporcionan al usuario el control completo sobre la apertura, el cierre y la obtención de datos. Además, se pueden recuperar varias filas usando un cursor explícito. Los cursores explícitos también pueden tomar parámetros como cualquier función o procedimiento para que las variables en el cursor se puedan cambiar cada vez que se ejecutan. Además, los cursores explícitos le permiten obtener una fila completa en una variable de registro PL / SQL. Cuando se usa un cursor explícito, primero se debe declarar con un nombre. Se puede acceder a los atributos del cursor usando el nombre dado al cursor. Después de declarar, el cursor debe abrirse primero. Luego se puede iniciar la búsqueda. Si es necesario recuperar varias filas, la operación de recuperación debe realizarse dentro de un bucle. Finalmente, el cursor debe estar cerrado..
Diferencia entre el cursor explícito y el cursor implícito
La principal diferencia entre el cursor implícito y el cursor explícito es que un cursor explícito debe definirse explícitamente al proporcionar un nombre, mientras que los cursores implícitos se crean automáticamente cuando se emite una instrucción de selección. Además, se pueden recuperar múltiples filas utilizando cursores explícitos, mientras que los cursores implícitos solo pueden recuperar una única fila. Además, las excepciones NO_DATA_FOUND y TOO_MANY_ROWS no se generan cuando se usan cursores explícitos, a diferencia de los cursores implícitos. En esencia, los cursores implícitos son más vulnerables a los errores de datos y proporcionan menos control programático que los cursores explícitos. Además, los cursores implícitos se consideran menos eficientes que los cursores explícitos.