Diferència entre el cursor explícit i el cursor implícit

Diferència entre el cursor explícit i el cursor implícit
Diferència entre el cursor explícit i el cursor implícit

Vídeo: Diferència entre el cursor explícit i el cursor implícit

Vídeo: Diferència entre el cursor explícit i el cursor implícit
Vídeo: Untethered vs Tethered vs Semi-tethered Jailbreak - Explained - Revival of old iPhone EP2 2024, Juliol
Anonim

Cursor explícit vs Cursor implícit

Quan es tracta de bases de dades, un cursor és una estructura de control que permet recórrer els registres d'una base de dades. Un cursor proporciona un mecanisme per assignar un nom a una instrucció de selecció SQL i després es pot utilitzar per manipular la informació dins d'aquesta instrucció SQL. Els cursors implícits es creen i s'utilitzen automàticament cada vegada que s'emet una instrucció Select a PL/SQL, quan no hi ha cap cursor definit explícitament. Els cursors explícits, com el seu nom indica, els defineix explícitament el desenvolupador. A PL/SQL, un cursor explícit és en realitat una consulta amb nom definida mitjançant la paraula clau cursor.

Què és el cursor implícit?

Oracle crea i utilitza automàticament cursors implícits cada vegada que s'emet una declaració de selecció. Si s'utilitza un cursor implícit, el sistema de gestió de bases de dades (DBMS) realitzarà les operacions d'obertura, recuperació i tancament automàticament. Els cursors implícits només s'han d'utilitzar amb sentències SQL que retornin una sola fila. Si la instrucció SQL retorna més d'una fila, l'ús d'un cursor implícit introduirà un error. Un cursor implícit s'associa automàticament a cada instrucció del llenguatge de manipulació de dades (DML), és a dir, les sentències INSERT, UPDATE i DELETE. A més, s'utilitza un cursor implícit per processar sentències SELECT INTO. Quan s'obtenen dades amb cursors implícits, es pot generar l'excepció NO_DATA_FOUND quan la sentència SQL no retorna cap dada. A més, els cursors implícits poden generar TOO_MANY_ROWS excepcions quan la instrucció SQL retorna més d'una fila.

Què és el cursor explícit?

Com s'ha esmentat anteriorment, els cursors explícits són consultes definides mitjançant un nom. Un cursor explícit es pot pensar com un punter a un conjunt de registres i el punter es pot moure cap endavant dins del conjunt de registres. Els cursors explícits proporcionen a l'usuari el control complet sobre l'obertura, el tancament i l'obtenció de dades. A més, es poden obtenir diverses files mitjançant un cursor explícit. Els cursors explícits també poden prendre paràmetres com qualsevol funció o procediment, de manera que les variables del cursor es poden canviar cada vegada que s'executa. A més, els cursors explícits us permeten obtenir una fila sencera a una variable de registre PL/SQL. Quan s'utilitza un cursor explícit, primer s'ha de declarar amb un nom. Es pot accedir als atributs del cursor mitjançant el nom donat al cursor. Després de declarar, primer s'ha d'obrir el cursor. A continuació, es pot començar a buscar. Si cal obtenir diverses files, l'operació d'obtenció s'ha de fer dins d'un bucle. Finalment, cal tancar el cursor.

Diferència entre el cursor explícit i el cursor implícit

La principal diferència entre el cursor implícit i el cursor explícit és que s'ha de definir explícitament un cursor explícit proporcionant un nom, mentre que els cursors implícits es creen automàticament quan s'emet una instrucció select. A més, es poden obtenir diverses files mitjançant cursors explícits, mentre que els cursors implícits només poden obtenir una sola fila. A més, les excepcions NO_DATA_FOUND i TOO_MANY_ROWS no es plantegen quan s'utilitzen cursors explícits, a diferència dels cursors implícits. En essència, els cursors implícits són més vulnerables als errors de dades i proporcionen menys control programàtic que els cursors explícits. A més, els cursors implícits es consideren menys eficients que els cursors explícits.

Recomanat: