Opción CURRENTDATA para acceso local
Para acceso local, la opción CURRENTDATA especifica si los datos situados bajo un cursor deben mantenerse actualizados con los datos de la tabla base local.
Para cursores situados en datos de un archivo de trabajo, la opción CURRENTDATA no tiene efecto. Este efecto solo se aplica a cursores de sólo lectura o ambiguos en planes o paquetes enlazados con la opción ISOLATION(CS).
CURRENTDATA(YES)
CURRENTDATA (YES) significa que los datos sobre los que está colocado el cursor no pueden cambiar mientras el cursor esté situado sobre ellos. Si el cursor está situado sobre datos de una tabla o un índice base local, los datos devueltos con el cursor están actualizados respecto al contenido de dicha tabla o índice. Si el cursor se encuentra situado sobre los datos de un archivo de trabajo, lo datos que devuelve el cursor coincidirán únicamente con el contenido actual del archivo de trabajo. Los datos no necesariamente se mantienen actualizados respecto al contenido de la tabla o el índice subyacente.
La siguiente figura muestra bloqueo con CURRENTDATA (YES).
Al igual que sucede con archivos de trabajo, si un cursor utiliza paralelismo de consultas, puede que los datos no estén actualizados respecto el contenido de la tabla o el índice, independientemente de si se utiliza un archivo de trabajo. Por lo tanto, para acceso de archivo de trabajo o para paralelismo en consultas de sólo lectura, la opción CURRENTDATA no tiene efecto.
Si va a utilizar paralelismo pero desea mantener la actualización con los datos, tiene las siguientes opciones:
- Inhabilite el paralelismo mediante uno de los métodos siguientes:
- Emita la sentencia SQL siguiente:
SET CURRENT DEGREE = '1' - Enlace la aplicación con la opción de enlace DEGREE(1).
- Emita la sentencia SQL siguiente:
- Utilizar aislamiento RR o RS (todavía se puede utilizar paralelismo)
- Utilice la sentencia LOCK TABLE (aún se puede utilizar paralelismo).
CURRENTDATA(NO)
Esta opción significa que los datos que hay en la posición del cursor pueden cambiar mientras el cursor esté situado sobre ellos.