La sentencia EGL open selecciona un conjunto de filas de una base de datos relacional para recuperarlo posteriormente mediante sentencias get next. La sentencia open puede operar sobre un cursor o sobre un procedimiento al que se llama.
La opción scroll solo está disponible si está generando salida en Java.
Si no especifica hold, la primera ejecución de paso 3d fallará debido a que el cursor ya no está abierto.
Los cursores para los que especifique hold no se cierran en una operación de compromiso, pero una operación de retrotracción o conexión a base de datos cierra todos los cursores.
Si no necesita conservar la posición del cursor durante una operación de compromiso, no especifique hold.
No puede especificar forUpdate si está llamando a un procedimiento almacenado para recuperar un conjunto de resultados.
Si no especifica una cláusula usingKeys, el componente de clave-valor de la sentencia implícita se basa en el componente de registro SQL al que se hace referencia en la sentencia open.
La información de usingKeys se pasa por alto si especifica una sentencia SQL explícita.
A continuación se ofrecen ejemplos (suponiendo la existencia de un registro SQL denominado emp):
open empSetId forUpdate for emp; open x1 with #sql{ select empnum, empname, empphone from employee where empnum >= :empnum for update of empname, empphone } open x2 with #sql{ select empname, empphone from employee where empnum = :empnum } for emp; open x3 with #sql{ call aResultSetStoredProc(:argumentItem) }
SELECT columna01, columna02, ... columnaNN INTO :elementoRegistro01, :elementoRegistro02, ... :elementoRegistroNN FROM nombreTabla WHERE columnaClave01 = :elementoClave01 FOR UPDATE OF columna01, columna02, ... columnaNN
Puede alterar temporalmente el valor por omisión especificando una sentencia SQL en la sentencia EGL open.
Conceptos relacionados
Tipos de registros y propiedades
Soporte de SQL
resultSetID
Referencias a componentes
Tareas relacionadas
Diagrama de sintaxis