Entradas

Mostrando entradas de julio, 2008

Cursores Explicitos en PL/SQL

Declaración de cursores explicitos Los cursores explicitos se emplean para realizar consultas SELECT que pueden devolver cero filas, o más de una fila. Para trabajar con un cursor explicito necesitamos realizar las siguientes tareas: * Declarar el cursor. * Abrir el cursor con la instrucción OPEN. * Leer los datos del cursor con la instrucción FETCH. * Cerrar el cursor y liberar los recursos con la instrucción CLOSE. Para declarar un cursor debemos emplear la siguiente sintaxis: CURSOR nombre_cursor IS instrucción_SELECT También debemos declarar los posibles parametros que requiera el cursor: CURSOR nombre_cursor(param1 tipo1, ..., paramN tipoN) IS instrucción_SELECT Para abrir el cursor OPEN nombre_cursor; o bien (en el caso de un cursor con parámetros) OPEN nombre_cursor(valor1, valor2, ..., valorN); Para recuperar los datos en variables PL/SQL. FETCH nombre_cursor INTO lista_variables; -- o bien ..

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 g