¿Cómo abrir un cursor sql

Aunque el DECLARE CURSOR Sentencia SQL especifica qué filas a incluir en el cursor, que en realidad no causa nada a suceder porque DECLARAR es sólo una declaración y no una sentencia ejecutable. los OPEN declaración trae el cursor a la existencia. Se tiene la siguiente forma:

OPEN nombre-cursor -

Para abrir el cursor en el ORDER BY cláusula, utilice el siguiente:

DECLARE CURSOR ingresos FORSELECT Modelo, Unidades, Precio, Unidades * Precio AS ExtPriceFROM TRANSDETAILORDER POR Modelo, ExtPrice DESC -OPEN ingresos -

Usted no puede captar filas desde el cursor hasta que abra el cursor. Cuando se abre un cursor, los valores de las variables referenciadas en el DECLARE CURSOR declaración se convierta en fijo, al igual que todas las funciones de fecha y hora actuales. Considere el siguiente ejemplo de SQL incorporado en un programa de lenguaje principal:

EXEC SQL DECLARE CURSOR C1 PARA SELECT * FROM ORDERSWHERE ORDERS.Customer =: nameand DueDate lt; -NOMBRE CURRENT_DATE: = 'Acme Co'- // Una lengua de acogida statementEXEC SQL OPEN C1-NOMBRE: =' Omega Inc .'- // Otra declaración de acogida ... PEDIDOS DE ACTUALIZACIÓN EXEC SQL SET DueDate = CURRENT_DATE-

los OPEN declaración fija el valor de todas las variables de referencia en la declare cursor y también corrige un valor para todas las funciones de fecha y hora actuales. Como resultado, la segunda asignación a la variable nombre (NOMBRE: = 'Omega Inc. ") no tiene ningún efecto en las filas que el cursor descarge. (Eso valor de NOMBRE se utiliza el Siguiente vez que abra C1.)

E incluso si el OPEN sentencia se ejecuta un minuto antes de la medianoche y la ACTUALIZACIÓN sentencia se ejecuta de un minuto después de la medianoche, el valor de FECHA ACTUAL en el ACTUALIZACIÓN declaración es el valor de esa función en el momento de la OPEN declaración ejecutado - incluso si DECLARE CURSOR no hace referencia a la función de fecha y hora.




» » » » ¿Cómo abrir un cursor sql