Cursores Implicitos

Declaración de cursores implicitos.

   Los cursores implicitos se utilizan para realizar consultas SELECT que devuelven un único registro.

   Deben tenerse en cuenta los siguientes puntos cuando se utilizan cursores implicitos:

  • Con cada cursor implicito debe existir la palabra clave INTO.
  • Las variables que reciben los datos devueltos por el cursor tienen que contener el mismo tipo de dato que las columnas de la tabla.
  • Los cursores implicitos solo pueden devolver una única fila. En caso de que se devuelva más de una fila (o ninguna fila) se producirá una excepcion. No se preocupe si aún no sabe que es una excepcion, le valdrá conocer que es el medio por el que PL/SQL gestiona los errores.

   El siguiente ejemplo muestra un cursor implicito:


declare

vdescripcion VARCHAR2(
50);
begin
SELECT DESCRIPCION
INTO vdescripcion
from PAISES
WHERE CO_PAIS =
'ESP';

dbms_output.put_line(
'La lectura del cursor es: ' || vdescripcion);

end;

    La salida del programa generaría la siguiente línea:


La lectura del cursor es: ESPAÑA

Excepciones asociadas a los cursores implicitos.

   Los cursores implicitos sólo pueden devolver una fila, por lo que pueden producirse determinadas excepciones. Las más comunes que se pueden encontrar son no_data_found y too_many_rows. La siguiente tabla explica brevemente estas excepciones.

Excepcion

Explicacion

NO_DATA_FOUND Se produce cuando una sentencia SELECT intenta  recuperar datos pero ninguna fila satisface sus condiciones. Es decir, cuando "no hay datos"
TOO_MANY_ROWS Dado que cada cursor implicito sólo es capaz de recuperar una fila , esta excepcion detecta la existencia de más de una fila.

Pedro  Herrarte  Sánchez
Cursores Implicitos en PL/SQL
Pedro Herrarte Sánchez

Pedro Herrarte, es consultor independiente, ofreciendo servicios de consultoría, análisis, desarrollo y formación. Posee mas de diez años de experiencia trabajando para las principales empresas de España. Es especialista en tecnologías .NET, entornos Web (ASP.NET, ASP.NET MVC,jQuery, HTML5), bases de datos (SQL Server y ORACLE) e integración de sistemas. Es experto en desarrollo (C#, VB.Net, T-SQL, PL/SQL, , ASP, CGI , C, Pro*C, Java, Essbase, Vignette, PowerBuilder y Visual Basic ...) y bases de datos (SQL Server y ORACLE). Pedro es MCP y MAP 2012, es fundador, diseñador y programador de www.devjoker.com..
Fecha de alta:24/05/2006
Última actualizacion:24/05/2006
Visitas totales:265620
Valorar el contenido:
Últimas consultas realizadas en los foros
Últimas preguntas sin contestar en los foros de devjoker.com