Compartir a través de


Solución de problemas de SQL estático para DB2

En este tema se describen errores comunes y errores de codificación que pueden producirse al trabajar con la característica estática SQL para paquetes DB2 en proveedor de Microsoft ADO.NET para DB2 (proveedor de datos).

Errores comunes

En la tabla siguiente se describen los errores de servidor DB2 que pueden producirse junto con las acciones que debe realizar para corregirlos.

SQLCODE Acción
SQLCODE -104 (instrucción no válida) - Validar y buscar coincidencias de datos con el esquema de la base de datos.

: compruebe que los elementos de comando coinciden con el esquema del paquete.
SQLCODE -204 (objeto no encontrado) Compruebe que los nombres de objeto calificados (de cuatro partes o alias).
SQLCODE -440 (parámetros incorrectos) Compruebe que los elementos de comando coinciden con el esquema del paquete.
SQLCODE -501 (cursor no abierto) Compruebe que el comando incluye CALL STATIC.
SQLCODE -551 (privilegios insuficientes) Compruebe que se han establecido los privilegios para CREAR, ENLAZAR y EJECUTAR paquetes.
SQLCODE -601 (nombre de objeto no único) Compruebe la unicidad de la convención de nomenclatura.

Errores comunes de codificación

En la tabla siguiente se describen los errores de codificación comunes por área de características.

Ámbito Descripción
Documento XML : cada parámetro de entrada requiere un elemento de parámetro. Cada columna de salida requiere un elemento de columna.

- Los nombres de cursor deben ser únicos dentro de un paquete.

- Los elementos no están cerrados correctamente o no coinciden.
Nivel de aislamiento de DB2 para IBM i En HIS 2010, el nivel de aislamiento admitido es No Commit (NC), que debe especificarse en el documento XML como "IsolationLevel="NoCommit.
Superposición de procedimiento almacenado y alias - Se producirá un error en la creación del paquete cuando el nombre del paquete, el número de sección o el alias del paquete no sea único.

- Si la creación del paquete se realiza correctamente, pero el nombre del alias es el mismo que un nombre de procedimiento almacenado, puede producirse un error en tiempo de ejecución (por ejemplo, SQLCODE -440 para parámetros no válidos). Como alternativa, el servidor DB2 puede devolver un conjunto de resultados inesperado.
Sin nombre de alias - Si el archivo de metadatos no contiene un nombre de alias, el cliente de Microsoft ejecuta la instrucción como un procedimiento almacenado.

- Si existe un procedimiento almacenado con el mismo nombre, se ejecutará el procedimiento almacenado y el programa puede experimentar resultados inesperados.

- Si no hay ningún procedimiento almacenado con el mismo nombre, el servidor de bases de datos devolverá un error que indica que el nombre del objeto no está definido (SQLCODE -204).