Comunidad Underground Hispana  

Retroceder   Comunidad Underground Hispana > Programacion > Programación > SQL


Respuesta Crear Nuevo Tema
 
Compartir en twitter LinkBack Herramientas Desplegado
Antiguo 18-may-2007, 21:23   #1
alvaro4356
Guest
 
Amigos
Mensajes: n/a
Predeterminado Diferencia entre librerías de red y bibliotecas de red??

Estoy leyendo acerca de sql, pero como dice el título, no tengo bien en claro esos 2 términos. Haber si alguien me echa una mano. Busqué en google, pero no busca lo k yo kiero, peor es!!!
  Responder Citando
Antiguo 18-mar-2009, 02:44   #2
FireBlack
Guest
 
Amigos
Mensajes: n/a
Predeterminado Esto ayudará

CURSORES EXPLÃCITOS vs CURSORES IMPLÃCITOS
Hasta el momento hemos utilizado cursores implícitos, sencillos y cómodos de usar, pero con un gran problema: no sirven cuando la consulta recupera más de una fila.
Puesto que normalmente las consultas que nos interesen implicarán varias filas, deberemos utilizar cursores explícitos (definidos y controlados por el programador).
Existen cuatro operaciones básicas para trabajar con uno de estos cursores:
• Declaración: Se realiza en la zona de declaraciones del subprograma o bloque anónimo, utilizando la estructura CURSOR <nombrecursor> IS <sentencia SELECT>;
• Apertura: En la zona de instrucciones (entre el BEGIN y el END), debe aparecer la instrucción OPEN <nombrecursor>;. Esto implica que se ejecute automáticamente la sentencia select sobre la que se ha definido el cursor y los resultados obtenidos se almacenan en estructuras internas de memoria manejadas por el cursor.
• Recuperación de información: Para acceder a la información recuperada por el cursor y almacenarla en variables de nuestros programas, debemos utilizar la orden FETCH <nombrecursor> INTO {variable |registro |lista_variables};. Tenemos varias opciones: o bien creamos una variable para cada columna que se recupere en el cursor, o bien creamos una variable registro del mismo tipo que el cursor (<variable_registro> <nombrecursor>%ROWTYPE).
• Cierre: Cuando acabamos de utilizar el cursor, debemos cerrarlo mediante CLOSE <nombrecursor>;

Para conocer detalles respecto a la situación del cursor, existe cuatro atributos asociados a cada cursor que se pueden consultar:
• %FOUND: Devuelve verdadero si el último FETCH ha recuperado alguna información y falso en caso contrario. Si el cursor no había sido abierto previamente devuelve error, y si estaba abierto pero no se había ejecutado ningún FETCH, devuelve NULL. Se suele utilizar como condición de continuación en bucles WHILE (WHILE cursor%FOUNDLOOP).
• %NOTFOUND: Hace lo contrario que el atributo anterior. Se suele utilizar como condición de salida en bucles.
• %ROWCOUNT: Devuelve el número de filas recuperadas hasta el momento por el cursor (número de FETCH realizados con éxito).
• %ISOPEN: Devuelve verdadero si el cursor está abierto y falso en caso contrario.

ATRIBUTOS EN CURSORES IMPLÃCITOS
Oracle abre implícitamente un cursor cuando procesa un comando SQL no asociado a un cursor explícito. El cursor implícito siempre se llama SQL y dispone
también de los cuatro atributos vistos para los cursores explícitos. Con los cursores implícitos podemos averiguar información útil sobre la ejecución de los comandos SELECT INTO, INSERT, UPDATE y DELETE.
El valor de los atributos del cursor SQL se refiere, en cada momento, a la última orden DML ejecutada:
• SQL%NOTFOUND será TRUE si el último INSERT, UPDATE, DELETE o SELECT INTO no ha afectado a ninguna fila.
• SQL%FOUND será TRUE si el último INSERT, UPDATE, DELETE o SELECT INTO ha afectado a una o varias filas.
• SQL%ROWCOUNT devuelve el número de filas afectadas por la última orden DML ejecutada.
• SQL%ISOPEN será siempre FALSE, ya que ORACLE cierra automáticamente el cursor después de la ejecución de cada orden DML.
Debemos tener en cuenta que en el caso de que se trate de una orden SELECT INTO, ésta debe obligatoriamente devolver una sola fila, o de lo contrario se
produciría un error y se levantaría automáticamente una excepción (situación de error) del tipo NO_DATA_FOUND (si la consulta no recupera ninguna fila) o
TOO_MANY_ROWS (si la consulta recupera más de una fila).
  Responder Citando
Respuesta

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado
Trackbacks están Activado
Pingbacks están Activado
Refbacks están Activado



Temas Similares
Tema Autor Foro Respuestas Último mensaje
[bat][g][f] (IF diferencia equ y == ) (SET /A Diferencia entre %v% y v) 0x0309 Batch 5 05-may-2009 16:18
Diferencia entre un CPU y un GPU Black Videos 3 28-sep-2008 02:02
Diferencia entre RAT y troyano? alvaro4356 HacK GeneraL 4 21-dic-2007 23:17
¿Que diferencia hay entre...? CraftyKox Software 4 23-mar-2004 21:46



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0