Manejo de cursores
Un cursor es un conjunto de registros de una tabla como resultado de una sentencia SELECT.
Un cursor SQL es similar a un archivo en la Qtemp, que se puede leer, modificar oeliminar, con ciertas diferencias, algunas de ellas son:
• Solo existe para el Job en que se crea.
• Solo se puede manipular por SQL.
• Para recorrer el cursor se utiliza FETCH.
• Un Cursor sedeclara, se abre, se lee y se cierra.
• Cada que un cursor se cierra se destruye.
Sintaxis General para la Creación de un cursor
DECLARE Nombre-cursor INSENSITIVE SCROLL CURSOR WITHHOLD FOR Select…
DYNAMIC WITH RETURN
Nombre-cursor: No puede repetirse dentro del mismo programa.
INSENSITIVE: Especifica que una vez que se abre el cursor, no tienesensibilidad a las inserciones, actualizaciones o eliminaciones realizadas por este o cualquier otro grupo de activación. Si se especifica INSENSITIVE, el cursor es de sólo lectura y se crea unresultado temporal cuando se abre el cursor. Además, la sentencia SELECT no puede contener una cláusula FOR UPDATE.
SCROLL: Especifica que el cursor es desplazable. El cursor se puede o no tener unasensibilidad inmediata a las inserciones, actualizaciones y eliminaciones realizadas por otros grupos de activación. Si no se especifica DYNAMIC, el cursor es de sólo lectura. Además, la sentencia SELECT nopuede contener una cláusula FOR UPDATE.
DYNAMIC SCROLL: Especifica que el cursor es actualizable si la tabla de resultados es actualizable, y que el cursor tiene una sensibilidad inmediata a lasinserciones, actualizaciones y eliminaciones realizados por otros procesos. Sin embargo, en los siguientes casos, la palabra clave DYNAMIC es ignorada y el cursor no tendrá sensibilidad inmediata a lasinserciones, actualizaciones y eliminaciones:
- Las consultas que se implementan como tablas de resultados temporales.
- Las consultas que incluyen una subconsulta.
WITH HOLD: Evita que el...
Regístrate para leer el documento completo.