Errores SQLCODE

Códigos de Error SQLCODE


-007 : La instrucción contiene algún carácter no válido en SQL.

-010 : La instrucción contiene una cadena de constantes que comienza por STRING pero no termina debidamente.

-029 : La sentencia SELECT no puede ser ejecutada. La sentencia embebida SELECT en un programa deber tener un INTO donde dejar el resultado de la SELECT. La sentencia dinámica SELECT no permite este INTO.

-060 : Longitud y escala debe ser especificada por un entero sin signo y el valor debe estar en el rango permitido por ese tipo.

-084 : Encuentra una instrucción SQL errónea. La instrucción SQL embebida no es una instrucción SQL soportada por DB2, o hace referencia a un cursor no declarado.

-101 : La instrucción es más larga que la longitud permitida para la misma, o es demasiado compleja.

-102 : Literal concatenado (STRING) es demasiado largo; tiene una longitud mayor de 254 caracteres o 142 caracteres gráficos.
Estos literales sólo pueden ser especificados a través de variables Host.

-103 : El contenido de una columna de la tabla no es numérico (entero, decimal o flotante).

-104 : La instrucción SQL contiene un error de sintaxis. El campo SQLERRM de SQLCA se rellena. El error ocurre en el primer símbolo TOKEN.

-105 : La instrucción SQL contiene una cadena inválida. La cadena no es ni gráfica ni alfanumérica. Especifica el formato correcto de la cadena, comprueba los caracteres gráficos, los caracteres G o N y los números de bytes sin encadenar.

-107 : El nombre de algún objeto es demasiado largo. Usa como mucho18 caracteres para los nombres de columnas, índices, vistas, tablas, alias y sinónimos; como mucho 8 caracteres para grupos de almacenamiento, miembros de librerías especificados en INCLUDE, librerías, miembros de DBRM, planes y bases de datos; las variables Host no pueden tener más de 64 caracteres; los nombres de volúmenes seriales no pueden tener más de 6 y las etiquetas no pueden exceder de 30 caracteres.

-109 : Se encuentran cláusulas que no son compatibles (FETCH de UPDATE con ORDER, una subselec no puede tener cláusula INTO, un estamento CREATE VIEW no puede tener cláusulas INTO, ORDER BY o FOR UPDATE, una sentencia SELECT embebida no admite cláusulas ORDER BY o FOR UPDATE, un estamento SELECT usado en la declaración de un cursor no debe tener cláusula INTO,...).

-110 : La cadena de hexadecimales contiene caracteres inválidos.

-111 : La especificación de funciones AVG, MAX, MIN, o SUM es inválida porque estas funciones deben de incluirse en una columna para poder operar
con ellas; esta columna no está especificada.

-112 : El nombre especificado tiene un carácter no permitido en DB2.
El operando de una columna de función debe ser una expresión o DISTINCT seguido por una expresión. El operando no puede ser otra columna de función.

-113 : El nombre identificador contiene un carácter que no está permitido en nombres DB2. El nombre debe empezar por un carácter alfabético y puede contener alfanuméricos o caracteres nacionales como Ñ o @.

-114 : Una 3-part del nombre de un procedimiento SQL proporciona un estamento SQL CALL. La primera parte del nombre del procedimiento SQL, la cual especifica la localización del procedimiento, no encuentra el valor del
SQL CURRENT SERVER registro especial.

-115 : En un predicado, una comparación simple como '<' no puede ir seguida de una lista de valores. Cualquier comparación en un predicado debe ir seguida por una subselect y no por una expresión o lista de valores.

-117 : El número de valores de la INSERT no coincide con el número de columnas de la tabla. Para un INSERT, hay que especificar uno y sólo un valor para cada columna de la tabla.

-118 : Un estamento INSERT, DELETE o UPDATE no puede ser ejecutado porque hace referencia a una tabla que también se usa en la cláusula FROM de una subselec del estamento INSERT, DELETE o UPDATE.


-119 : Una columna especificada en la cláusula HAVING no aparece en la cláusula GROUP BY. Las columnas especificadas en la cláusula HAVING deben aparecer dentro de una columna función o ser especificada en la cláusula GROUP BY.

-120 : Una columna función no está permitida en una cláusula SET. Una columna función sólo está permitida en una cláusula WHERE si está dentro de una subselect con una cláusula HAVING.

-121 : En una INSERT o en un UPDATE hay un campo que está varias veces.

-122 : El estamento SELECT contiene uno de estos errores:

a) Contiene un nombre de columna y una columna función en la SELECT, pero no contiene cláusula GROUP BY.

b) Una columna de la GROUP BY es una columna que deriva de una constante, expresión o función.

-125 : La cláusula ORDER BY contiene un número de columnas menor que 1 o mayor que el número de columnas de la tabla.

-126 : Una cláusula ORDER BY no puede usarse para declarar un cursor usado para actualizar. ORDER BY y FOR UPDATE OF no se pueden especificar juntas.

-127 : La palabra reservada DISTINCT puede ser especificada sólo una vez en una SELECT o subselect.

-128 : Uso inválido de NULL en un predicado.
No se puede usar NULL en una condición de búsqueda.

-129 : El estamento SQL hace referencia a más tablas de lo permitido, (como mucho 15 tablas).

-130 : La cláusula ESCAPE no puede ser especificada si el nombre de columna a la izquierda de LIKE o NOT LIKE es de un tipo MIXED.

-131 : El nombre de columna(expresión de la izquierda) y la expresión de la derecha de un predicado con LIKE o NOT LIKE debe ser del mismo tipo.

-132 : El token que aparece a la izquierda de un LIKE o NOT LIKE debe ser un nombre de columna. El valor que aparece a la derecha del LIKE o NOT LIKE debe ser una cadena de constantes o una variable.

-133 : Un operador aritmético no puede ser aplicado a una referencia correlacionada en una subselect de una cláusula HAVING. Una columna T.C es una referencia correlacionada si y solo si:
-T.C se usa en una condición de búsqueda de una subselect
-T no se usa en la cláusula FROM de una subselect
-T se usa en la cláusula FROM de un nivel anterior.

-134 : Una columna o variable Host cuya longitud máxima es mayor que 254 bytes no puede aparecer en un ORDER BY o GROUP BY, en operaciones aritméticas, en una cláusula UNION, en subselect, funciones, funciones escalares(excepto SUBSTR) o en predicados(excepto LIKE y NOT LIKE).

-136 : Un SORT no puede ser ejecutado porque la clave he excedido la máxima longitud interna de 4000. Comprueba la lista de columnas que siguen al DISTINCT, ORDER BY y GROUP BY.

-137 : El resultado de una concatenación excede el máximo permitido, 32.764 para caracteres y 16.382 para operandos gráficos.

-138 : El segundo o tercer argumento de una función SUBSTR está fuera de rango:
-El segundo argumento de una función SUBSTR es menor que 1 o mayor que M.
-El tercer argumento de una función SUBSTR es 0 o una expresión cuyo valor es menor que 0 o mayor que M-N+1.
donde
M es la longitud del primer argumento, si es de longitud fija, o la máxima longitud del primer argumento, si es de longitud variable.
N es el valor del segundo argumento.

-144 : Número de sección inválido.
El número de sección en la lista de parámetros de la CALL puede que sea negativo, esté duplicado o sea mayor que el máximo número de secciones de la DBRM del package.

-150 : El objeto de un estamento INSERT, DELETE o UPDATE es una vista para la cual las operaciones requeridas no están permitidas.
Insertar en una vista está prohibido si:
-la definición de la vista contiene un JOIN, un GROUP BY o un HAVING
-la cláusula SELECT de la definición de la vista contiene el calificativo DISTINCT, una expresión aritmética, una expresión concatenada, una función o una constante
-dos o más columnas de la vista derivan de una misma columna
-una tabla de la vista contiene alguna columna que no tiene un valor por defecto y no se incluye en la vista.
 Actualizar en una vista está prohibido si:
-la definición de la vista contiene un JOIN, un GROUP BY o un HAVING
-la cláusula SELECT de la definición de la vista contiene el calificativo DISTINCT o una función.
 Además una el valor de una columna en una vista no puede ser actualizado
si la columna deriva de una expresión aritmética, una constante, o forma parte de una clave o un índice.
Borrar de una vista está prohibido si:
-la definición de la vista contiene un JOIN, un GROUP BY o un HAVING
-la cláusula SELECT de la definición de la vista contiene el calificativo DISTINCT o una función.

-151 : La columna especificada no puede ser actualizada por una de las siguientes razones:
-forma parte de la clave de una tabla particionada
-está en una vista y la definición de la vista prohibe la actualización de esa columna
-pertenece a una tabla cuyas columnas no son actualizables.

-152 : La cláusula DROP de un ALTER TABLE es inválida.

-153 : En el estamento CREATE VIEW SQL no se incluye ninguna columna.
Se debe especificar alguna columna.

-154 : El estamento CREATE VIEW SQL falla porque contiene una cláusula UNION o UNION ALL o un objeto remoto.
DB2 no puede crear vistas que contengan UNION o objetos remotos.

-156 : El estamento falla porque no se identifica ninguna tabla.

-157 : El objeto referido en la cláusula FOREIGN KEY no identifica a una tabla.

-158 : El número de columnas especificadas para la vista no es el mismo que el número de columnas en la cláusula SELECT.

-159 : El objeto identificado en un estamento DROP VIEW, DROP ALIAS o COMMENT ON ALIAS identifica una tabla en lugar de una vista o alias.

-160 : La cláusula WITH CHECK OPTION no puede aplicarse en la creación de vistas en los siguientes casos:
-la vista es de sólo lectura
-la vista contiene una subselect, un GROUP BY, un HAVING, la palabra reservada DISTINCT, JOIN,...

-161 : El INSERT o UPDATE de una vista falla porque no se encuentra el criterio CHECK OPTION para insertar y actualizar una fila de la vista.

-164 : El Id autorizado no tiene privilegios para crear vistas calificadas cómo de otro, sólo puede crear vistas calificadas cómo suyas. Por ejemplo, aut_id1 no puede crear una vista llamada 'aut_id2.nombre_vista'.

-170 : El número de argumentos especificados en una función escalar es inválido.
Hay demasiados o muy pocos.

-171 : El tipo de dato, la longitud o el valor de un argumento de una función escalar es incorrecto.

-172 : El estamento SQL incluye una función escalar desconocida.

-173 : El cursor no es de sólo lectura. WITH UR sólo puede especificarse si DB2 puede determinar que el cursor es sólo de lectura.

-180 : Sintaxis incorecta en datos del tipo DATE o TIME. Ej: DATE ==> mm/dd/yyyy y TIME ==> hh:mm AM

-181 : El valor de los datos del tipo DATE o TIME es incorrecto.
Puede estar fuera de rango:
-yyyy puede estar entre 0001 y 9999
-mm entre 1 y 12
-dd entre 1 y xx
-hh entre 0 y 24
-mm, ss entre 0 y 59
-microsegundo entre 0 y 999999 ,
donde xx puede ser 28, 29, 30 o 31 dependiendo del mes.

-182 : El valor de datos tipo DATE o TIME en una expresión aritmética es inválido.

-183 : El resultado de una operación aritmética es un dato tipo DATE o TIMESTAMP que está fuera del rango válido para fechas (entre 0001/01/01 y 9999/12/31).

-184 : Una expresión aritmética con un dato tipo DATE o TIME contiene un registro parámetro.

-185 : La opción de formato local se ha usado con fechas y horas, pero la salida no ha sido instalada.

-186 : El formato local se está usando con un valor DATE/TIME y DB2 detecta que a salida de este formato ha incrementado.

-187 : DB2 ha encontrado un reloj 'time of day' (TOD) inválido al hacer referencia a algún registro especial como CURRENT DATE, CURRENT TIME, CURRENT TIMESTAMP o CURRENT TIMEZONE. Si se hace referencia a CURRENT TIMEZONE, el parámetro MVS (PARMTZ) está fuera de rango.

-188 : La variable Host a la que se refiere en el estamento DESCRIBE TABLE no contiene una representación válida de un nombre. Puede ocurrir por lo siguiente:

-el primer dígito de la variable es un punto o blanco
-el número de identificadores es mayor que 3
-un identificador es demasiado largo
-un identificador delimitado va seguido de otro carácter que no es ni punto ni blanco.

-197 : En una cláusula ORDER BY no se permite poner el nombre de columna calificada si se está usando la sentencia UNION o UNION ALL.

-198 : El operando del estamento PREPARE o EXECUTE IMMEDIATE está vacío o todo a blancos.

-199 : Error al utilizar una palabra clave incorrecta.

-203 : El nombre de la columna referida es ambiguo. Puede ocurrir que esté especificado más de una vez, o que dos o más tablas especificadas en la cláusula FROM tengan la misma columna.

-204 : El objeto que queremos identificar no está definido para el DB2.
También puede faltar por hacer el sinónimo de una tabla.

-205 : La columna especificada no pertenece a la tabla referida.

-206 : La columna especificada en la INSERT, UPDATE, SELECT o DELETE no es una columna que pertenezca a la tabla referida.

-207 : El estamento falla porque contiene una subselect con UNION o UNION ALL y hay una nombres de columnas especificados en la cláusula ORDER BY.

-208 : Uno de los campos utilizados en el ORDER BY no está incluido en la SELECT.
Sólo las columnas que aparecen en el resultado pueden ser utilizadas para ordenar.

-219 : El estamento EXPLAIN asume la existencia de una tabla de explanación, pero ésta no existe en el subsistema DB2 como tabla. Para que el EXPLAIN se ejecute bien, la tabla llamada autid.PLAN_TABLE debe existir, donde'autid' es el usuario autorizado que realizó el BIND o creó el PLAN_TABLE.

-220 : El estamento EXPLAIN falla porque alguna columna de la tabla autid.PLAN_TABLE no está definida, o está definida incorrectamente, o las columnas no están definidas en un orden correcto, o la tabla tiene alguna columna de más.

-221 : El estamento EXPLAIN ha fallado porque el nombre de una columna opcional no está definido. O se definen todas o no se define ninguna columna opcional en el PLAN_TABLE.

-250 : Una tercera parte del nombre del objeto ha sido usado, pero el nombre local no está definido para DB2. Instala o reinstala el DDF(Distributed Data Facility) registrando el nombre local para DB2.

-251 : Nombre local inválido, no pude contener caracteres especiales como Ñ, @, $...

-300 : Una variable Host o un parámetro es inválido. Su entrada en la SQLDA está indicada por el número de posición. Esta variable Host o parámetro es una
C cadena en uno de los siguientes casos:
-se usa como un parámetro de entrada de un prodedimieto de almacenaje
-es devuelta como un parámetro de salida de un procedimiento de almacenaje
-hace referencia a una variable de entrada de una sentencia SQL embebida
-se usa para mantener un valor de un parámetro señalado de una sentencia SQL dinámica.
Si la variable es una cadena de caracteres, es inválido porque no se incluye X'00'. Si es una cadena gráfica, es inválido porque no se incluye X'0000'.

-301 : Se utiliza una variable Host (:a) que no puede ser utilizada ya que los t ipos de datos son incompatibles.

-302 : El valor de la variable de entrada que utilizamos es inválido o demasiado largo para la columna de destino.
Si se trata de una SELECT, es posible que no le estemos moviendo nada a la clave o no está completa.
Si se trata de un OPEN, lo más probable es que no se le esté moviendo nada a la clave, y que además haya un WHERE.
Si se trata de un UPDATE es muy posible que tenga ceros o el valor por defecto del campo a actualizar.

-303 : El valor de la variable no puede ser asignado a una variable Host de salida porque el tipo de datos no es comparable.

-304 : Un valor no puede ser asignado a una variable Host porque el valor no está dentro del rango o no corresponde con el tipo de dato que puede contener la variable.

-305 : El valor NULL no puede ser asignado a una variable Host porque esa variable no lo especifica.
Es posible que se esté haciendo una SELECT con valores directos en lugar de haber hecho el MOVE a las variables Host para la selección.
También puede dar error al hacer una SELECT con MAX (o MIN, ...) y se ha puesto INTO. Se soluciona poniendo una SELECT con una SUBSELECT por igual al MAX que queremos.
También puede producirse al hacer una SELECT con SUM y no se ha puesto la variable nula que necesita asociada al mismo:

SELECT SUM(CERTICOMI), SUM(CERTIDESC)
INTO :WDSUMCOMI:WDNULL1, :WDSUMDESC:WDNULL2 FROM PFTCERTI
WHERE CERTIFOND = :CERTIFOND AND CERTIFECH >= :WCFECDES AND CERITFECH < :WCFECHAS;
(NOTA: definir WDNULL1 como BIN FIXED (15))

-309 : Un predicado es inválido porque hace referencia a una variable Host con un valor nulo. Aunque una columna puede contener el valor NULL, en los predicados del tipo nombre_columna = :variable_host  no son válidos si la variable_host es NULL:

-310 : Las variables del WHEN que se utilizan no tienen cargado ningún valor.
DB2 recibe un valor no decimal desde una aplicación(en forma de variable Host o de parámetro),

-311 : La longitud de una variable host de entrada es negativa o mayor que el máximo permitido.

-312 : La variable Host no está definida o no se puede utilizar en ese momento.
Puede no haberse declarado en el programa o los atributos de esa variable no son propios para esa función.

-313 : El número de variables Host especificado no es igual al número de parámetros marcado.

-314 : La instrucción contiene referencia ambiguas a una variable Host, que puede estar definida más de una vez.

-330 : Una cadena no puede ser usada porque no se puede trasladar.

-331 : Una cadena no puede ser usada porque no se puede trasladar.

-338 : Una de la cláusulas es inválida.
Se ha producido error por una de las siguientes causas:
-una expresión del predicado sólo debe hacer referencia a columnas de alguna de las tablas del operador asociado JOIN, y la otra expresión del predicado sólo debe referirse a columnas de otra de las tablas.
-una función VALUE o COALESCE sólo se permite en una cláusula ON cuando el operador join es un FULL OUTER JOIN o FULL JOIN.
-un operador distinto de '=' no está permitido en un FULL OUTER JOIN o FULL JOIN.

-400 : El catálogo tiene el máximo número de índices definidos. Sólo pueden crearse 100 índices por el usuario.

-401 : Los operandos de una comparación u operación aritmética son incompatibles.

-402 : Los operandos de una comparación u operación aritmética son incompatibles (en datos de tipo fecha/hora).

-404 : El mandato INSERT o UPDATE especificado contiene un nombre de columna que es demasiado largo.

-405 : Se ejecuta una SELECT y se ha salido de rango uno de los literales numéricos.
Puede haberse olvidado las comillas en un campo alfanumérico. Los rangos para los valores SQL son:
°FLOAT---------------------------------> 5.4E-79 a 7.2E+75
°DECIMAL------------------------------> -(10(31)-1) a +(10(31)-1)
°INTEGER------------------------------> -2147483648 a +2147483647
°SMALLINT(SMALL INTEGER)---> -32768 a +32767

-406 : Un valor numérico calculado o derivado de la instrucción SQL está fuera del rango permitido para esa columna.

-407 : Falta un campo de la tabla al hacerse un INSERT. Un valor insertado o actualizado es nulo, pero la columna no puede contener valores nulos.

-408 : El valor de una INSERT o UPDATE es incompatible con el tipo de dato de la columna referida.

-409 : El operando de una función COUNT es inválido. Para usar COUNT(nombre_columna,...) se debe especificar DISTINCT, sin embargo si se usa COUNT(*), no hay que poner DISTINCT.

-410 : El literal de punto flotante tiene más de 30 caracteres.

-411 : La palabra reservada CURRENT fecha/hora o USER está siendo aplicada y es incompatible con el tipo de dato especificado. Se ha de especificar un tipo de dato CHAR(8) para USER, uno DATE para CURRENT DATE, uno TIME para CURRENT TIME, uno TIMESTAMP para CURRENT TIMESTAMP
y uno DECIMAL(6,0) para CURRENT TIMEZONE.

-412 : En una subselect, la cláusula SELECT sólo puede especificar una columna y hay más de una especificada.

-413 : Se produce un overflow(desbordamiento) durante una conversión del tipo de datos.

-414 : En un predicado LIKE, se ha especificado el nombre de una columna como numérico o que contiene atributos DATE/TIME/TIMESTAMP.

-415 : Las correspondientes columnas de una UNION o UNION ALL no tienen la misma descripción, y no se pueden comparar. Para que sean comparables, ambas tienen que tener el mismo t ipo de datos.

-416 : En una UNION hay tablas que tienen columnas de tipo VARCHAR y una longitud mayor de 254, excediendo la longitud permitida.

-417 : La cadena especifica en el estamento PREPARE contiene un predicado o expresión en la cual algún parámetro se usa cómo ambos operandos del mismo operador. Por ejemplo: ? > ?.

-418 : El estamento PREPARE falla porque contiene algún parámetro cómo columna de la SELECT, o cómo primer y segundo operando de un operador simple (WHERE ? = ?), o cómo el primer y segundo operando usado con BETWEEN o IN (WHERE ? BETWEEN ?).

-419 : El resultado de una división decimal está en una escala negativa. La escala deriva de la fórmula:
15 - mp + ns - ds
y debe ser > o = 0, donde np es la precisión del numerador, ns la escala del numerador y ds la escala del denominador.

-420 : El valor del argumento de una función es una cadena de de caracteres, que no es aceptable para esa función.

-421 : Los operandos de una UNION o UNION ALL deben de tener el mismo número de columnas.

-426 : El COMMIT dinámico no está permitido en esta aplicación del servidor porque no se permite actualizar.

-427 : El ROLLBACK dinámico no está permitido en esta aplicación del servidor porque no se permite actualizar.

-440 : DB2 recibe una llamada a una instrucción SQL para un proceso de almacenaje.
DB2 encuentra la fila en la tabla catalogada SYSIBM.SYSPROCEDURES asociada con ese proceso. Sin embargo, el número de parámetros dados en la CALL, no coincide con el número de parámetros definidos en la columna PARMLIST de la tabla SYSIBM.SYSPROCEDURES.

-444 : DB2 recibe una llamada a una instrucción SQL para un proceso de almacenaje.
DB2 encuentra la fila en la tabla catalogada SYSIBM.SYSPROCEDURES asociada con ese proceso. Sin embargo, el módulo cargable de MVS identificado en la columna LOADMOD de la tabla SYSIBM.SYSPROCEDURES una fila que no puede ser encontrada.

-450 : Durante el retorno de parámetros de un proceso de almacenaje a una aplicación, DB2 ha detectado una sobrecarga de algún parámetro, el parámetro puede que se haya definido con una longitud menor.

-469 : DB2 recibe una llamada a una instrucción SQL para un proceso de almacenaje.
DB2 encuentra la fila en la tabla catalogada SYSIBM.SYSPROCEDURES asociada con ese proceso. Sin embargo, el número de parámetros está identificado en la columna PARMLIST de la tabla SYSIBM.SYSPROCEDURES cómo un parámetro de OUT o INOUT. Una variable Host debe ser especificada en la instrucción CALL de SQL para estos parámetros definidos como OUT
o INOUT.

-470 : El instrucción CALL especifica un valor nulo para algún parámetro de entrada, pero el procedimiento de almacenaje no soporta valores NULL.

-471 : DB2 recibe una instrucción SQL CALL para un proceso de almacenaje. El estamento CALL no se acepta por el código de retorno de DB2, rc. El rc describe la causa del fallo y puede tomar los valores: 00E79000, 00E79001, 00E79002, 00E79003, 00E79004, 00E79005, y 00E79006.

-500 : La instrucción FETCH, UPDATE, DELETE o CLOSE identifica un cursor cerrado que fue definido con la opción WITH HOLD. El cursor se cerró cuando la conexión de la que dependía fue destruida durante una operación de COMMIT.

-501 : El cursor utilizado en una FETCH o en un CLOSE no está abierto.

-502 : Se intenta hacer un OPEN a un cursor ya abierto.

-503 : El campo que se quiere actualizar no se ha especificado en la declaración del cursor utilizado (CURSOR con FOR UPDATE).

-504 : El cursor utilizado no ha sido declarado.

-507 : El cursor identificado en un UPDATE o DELETE no está abierto.

-508 : El cursor identificado en un UPDATE o DELETE no está posicionado en ninguna fila de la tabla.

-509 : La tabla identificada en el DELETE o UPDATE no es la misma que la tabla designada en el cursor.

-510 : La tabla que se especificó en el cursor no puede ser modificada. O el cursor no fue definido con la cláusula FOR UPDATE, o la tabla o vista es de sólo lectura.

-511 : No admite cláusula FOR UPDATE porque la tabla o vista no puede ser modificada. Esto puede ocurrir porque:
-en una SELECT se ha especificado más de una tabla en la cláusula FROM
-si la SELECT contiene una función o un DISTINCT
-si la instrucción contiene un ORDER BY, un GROUP BY o un HAVING.

-512 : O el estamento se refiere a múltiples localizaciones, o se refiere a un objeto remoto de forma impropia.

-513 : El alias identificado no debe ser definido sobre otro alias, debe estar basado en objetos de tablas o vistas.

-514 : El cursor utilizado no está preparado. O el cursor nunca estuvo preparado o el programa usa el cursor después de un punto de sincronismo.

-516 : La instrucción DESCRIBE no identifica un estamento preparado.

-517 : El cursor no puede ser usado cómo se especifica porque la instrucción a la que se refiere en la definición de cursor no es una SELECT.

-518 : La instrucción EXECUTE no identifica una instrucción válida preparada.

-519 : La instrucción PREPARE identifica una instrucción SELECT con un cursor que ya está abierto.

-525 : Hay un error en el bind. Puede ser por lo siguiente:
-hay error en el 'package', pero se ignora porque se ha usado la opción SQLERROR(CONTINUE).
-el estamento sólo puede ser ejecutado a petición de una aplicación DB2.

-530 : La instrucción INSERT o UPDATE no puede ser ejecutada porque la fila insertada o actualizada tiene un valor para una clave externa que no se encuentra como clave primaria de ninguna fila en la tabla padre de la relación.

-531 : La clave primaria en una fila de una tabla padre no puede ser actualizada porque tiene una o más filas relacionadas en tablas que dependen de ella.

-532 : La instrucción DELETE especifica una fila de una tabla padre, y por tanto, a todas las filas descendientes en otras tablas. Sin embargo se ha especificado la regla de borrado RESTRICT para alguna tabla descendiente.

-533 : La subselect de una instrucción INSERT devuelve más de una fila, y por tanto, la INSERT no puede ser ejecutada.

-534 : La instrucción UPDATE falla porque la clave primaria está siendo actualizada y hay varias filas seleccionadas para actualizar.

-535 : Una instrucción UPDATE con la cláusula WHERE CURRENT OF no puede usarse para actualizar la clave primaria de la tabla objeto.
Una instrucción DELETE con la cláusula WHERE CURRENT OF no puede usarse para borrar de la misma tabla a la que se refiere.

-536 : La instrucción DELETE falla porque se hace referencia a una tabla en una subselect del DELETE que puede ser objeto del DELETE a través de una regla en CASCADA o SET NULL.

-537 : Un nombre de columna se usa más de una vez en una cláusula PRYMARY KEY, FOREIGN KEY o UNIQUE.

-538 : El número de columnas en la PRIMARY KEY no es el mismo que el número de columnas en la FOREIGN KEY, o sus descripciones(tipo de dato, longitud, campo de procedencia, ...) no son idénticas.

-539 : La instrucción CREATE o ALTER TABLE no puede ser ejecutada porque indica una tabla que no tiene PRIMARY KEY.

-540 : Se hace una referencia a una tabla que tiene una clave primaria pero no un índice primario. La referencia puede ser en la cláusula FOREIGN KEY o en una instrucción SQL manipulativa.

-541 : En una cláusula FOREIGN KEY, el nombre de una constante referencial se ha usado también en otra cláusula FOREIGN KEY de la instrucción CREATE TABLE.

-542 : Una columna que esté definida como parte de una clave primaria, no puede tomar el valor NULL.

-543 : La instrucción DELETE no puede ser ejecutada porque la tabla es una tabla padre y está conectada con una constante referencial a una tabla dependiente con una regla de borrado de SET NULL. Sin embargo, una constante de búsqueda definida en la tabla dependiente restringe la columna por tener un valor nulo.

-544 : Una fila existente viola el criterio de búsqueda especificado en una instrucción
 ALTER TABLE.

-545 : Se viola el criterio de búsqueda en un INSERT o UPDATE. La fila resultante viola la definición de la tabla.

-546 : La restricción buscada en la instrucción CREATE TABLE o ALTER TABLE es inválida por alguna de estas razones:
-la restricción definida se refiere a una columna que tiene un procedimiento de campo.
-la restricción definida se refiere a una columna con un tipo de dato que es más bajo en la jerarquía de los tipos de datos numéricos que el tipo de dato de cualquier otro operando. La jerarquía es la siguiente:
small integer < large integer < decimal <
< single precision float < double precision float
-la restricción definida se refiere a una columna con un tipo de dato numérico que no es el mismo tipo de dato numérico que la otra columna operando.
-la restricción definida se refiere a una columna con una longitud menor que el otro operando cuando la columna y otros operandos no son cadena
de caracteres.

-548 : La restricción buscada en la instrucción CREATE TABLE o ALTER TABLE es inválida por alguna de estas razones:
-la restricción definida se refiere a una columna que tiene un procedimiento de campo.

-la restricción definida se refiere a una columna con un tipo de dato que es más bajo en la jerarquía de los tipos de datos numéricos que el tipo de dato de cualquier otro operando. La jerarquía es la siguiente:
small integer < large integer < decimal <
< single precision float < double precision float
-la restricción definida se refiere a una columna con un tipo de dato numérico que no es el mismo tipo de dato numérico que la otra columna operando.
-la restricción definida se refiere a una columna con una longitud menor que el otro operando cuando la columna y otros operandos no son cadena de caracteres.

-549 : Un programa intenta emitir la instrucción SQL indicada, que es una de las instrucciones severas SQL que no pueden ser emitidas desde un plan o 'package' mientras la opción DINAMICRULES(BIND) tenga efecto. Estas instrucciones SQL son: GRANT, REVOKE, ALTER, CREATE y DROP dinámicos, y SET CURRENT SQLID dinámico o estático.
El estamento SQL se encuentra en alguna de estas situaciones:
-nombra un plan o package realizado con la opción DYNAMICRULES(BIND)
-nombra un package realizado con la opción DYNAMICRULES, pero está ligado a un plan realizado con DYNAMICRULES(BIND).

-551 : El usuario que intenta realizar la operación no tiene autorización para realizarla. También puede ser que algún objeto nombrado no exista, o que se intente crear una tabla o vista para otro usuario y su autorización no sea SYSADM, DBADM o DBCTRL, o que se intente insertar o actualizar en una vista de 'solo lectura'.

-552 : El usuario que intenta realizar la operación no tiene autorización para realizarla.

-553 : El usuario especificado no es válido para dar autorización.
Falla la instrucción SET CURRENT SQLID porqur el valor que se le asigna al SQLID no es ningún usuario principal ni alguno de sus asociados secundarios.

-554 : El usuario intenta darse a sí mismo autorización. Falla la instrucción GRANT.

-555 : El usuario intenta revocarse a sí mismo la autorización que tiene.

-556 : El usuario intenta revocar un privilegio que no tiene.

-557 : Se intenta hacer un GRANT o un REVOKE y hay error de sintaxis.

-558 : Cláusula inválida o combinación de cláusulas en un GRANT o REVOKE inválida, o se intenta hacer un GRANT TO PUBLIC con la opción GRANT.

-559 : Todas las funciones de autorizaciones se han desactivados.
El mecanismo de autorización debe estar fuera de lugar en el subsistema DB2, y en consecuencia, las instrucciones GRANT o REVOKE son ignorados.

-562 : Se intenta hacer un BIND o ejecutar un PLAN que no tiene autorización para realizarlo.

-567 : La autorización indicada no tiene los privilegios indicados y no puede invocar el subcomando indicado contra el package indicado.

-571 : La instrucción no puede ser ejecutada porque el resultado podría ser una actualización múltiple sin la misma recuperación.
O se ha intentado una actualización de un objeto remoto del IMS o CICS.

-574 : El valor especificado por defecto está en conflicto con la definición de la columna. USER, CURRENT SQLID, o un valor constante se ha especificado por defecto para una columna, pero o la longitud de la columna es demasiado pequeña o el tipo de dato es incompatible.

-601 : Se intenta hacer un objeto y ya hay uno del mismo tipo y con ese nombre.

-602 : Hay demasiadas columnas especificadas en la instrucción CREATE INDEX. El máximo permitido por DB2 es 16.

-603 : No puede ser creado un índice único porque la tabla contiene filas duplicadas con respecto al valor de la columna identificada.

-604 : Una definición de columna contiene una longitud inválida, precisión, escala o tipo de dato puede estar especificado incorrectamente.

-607 : Operación no definida para ese objeto. No puede hacerse un INSERT, UPDATE o DELETE a una tabla del sistema.

-611 : Este mensaje aparece cuando:
-El LOCKSIZE del espacio de la tabla es TABLESPACE o TABLE, y LOCKMAC está siendo alterado o se está creando como un valor no cero.
-El LOCKSIZE del espacio de la tabla está siendo cambiado a TABLESPACE o TABLE, y LOCKMAC está siendo alterado o se está creando un valor
no cero.
Si LOCKSIZE es TABLESPACE o TABLE, LOCKMAX debe ser 0 porque la escala de bloqueo no está soportada para estos niveles.

-612 : El nombre de una columna en un CREATE TABLE o VIEW debe ser único dentro de la misma tabla.

-613 : La clave primaria es demasiado larga ( > 254 bytes ) o tiene demasiadas columnas ( > 16 columnas ).

-614 : No se puede crear el índice porque la suma de las longitudes internas de las columnas identificadas es mayor que la máxima permitida. Este valor máximo permitido depende de si el índice es particionado o no, de si es único o no,
y del número de particiones que tenga.

-615 : El tipo de operación no está permitida porque el package está siendo usado por el mismo proceso de la aplicación.

-616 : A algunos tipos de objeto no se les puede hacer un DROP porque están referenciados unos sobre otros.

-617 : Todos los índices definidos sobre una tabla en un espacio con LOCKSIZE ROW deben ser definidos como índices tipo 2.

-618 : Operación no permitida por el sistema de bases de datos.

-619 : Para hacer un CREATE, ALTER o DROP para un espacio de tabla en el fichero de trabajo de la base de datos(DSNDB07), primero se debe hacer un STOP de ese fichero.

-620 : La palabra reservada en la llamada a SQL no está permitida por un espacio de tabla en el fichero de trabajo de la base de datos (DSNB07).

-621 : Existe una incongruencia entre el catálogo DB2 y el directorio. La DBID ya existe. La instrucción CREATE DATABASE no se puede ejecutar hasta que se resuelva este problema.

-622 : La opción FOR MIXED DATA se especifica en la descripción de una columna de un CREATE o ALTER TABLE, pero la opción MIXED DATA de la instalación toma el valor NO. La opción FOR MIXED DATA sólo es válida cuando la opción MIXED DATA de la instalación toma el valor YES.

-623 : La instrucción CREATE INDEX indica crear un segundo cluster indexado en la tabla especificada y en esa tabla ya existe uno.
En una tabla sólo puede haber un cluster indexado.

-624 : Se pretende crear un índice primario, pero esa tabla ya tiene un índice primario.

-625 : Se pretende crear una clave primaria, pero la tabla no tiene un índice con una clave que sea idéntica a la nombrada clave primaria.

-626 : La instrucción no puede ser ejecutada porque especifica una cláusula USING, PRIQTY, SECQTY o ERASE, pero el 'pageset' no se ha parado.

-627 : La instrucción no puede ser ejecutada porque se especifica una cláusula PRIQTY, SECQTY o ERASE, o no se especifica una cláusula STOGROUP, y la paginación tiene un fichero de usuario maestro.

-628 : La instrucción especifica cláusulas que son mutuamente exclusivas.

-629 : La opción SET NULL no puede ser especificada en una cláusula FOREIGN KEY porque las columnas de una clave no permiten el valor nulo.

-630 : Los índices de tipo 1 no pueden ser creados con la especificación WHERE NOT NULL.

-631 : La clave externa es demasiado larga ( > 254 bytes) o tiene demasiadas columnas ( > 16 columnas).

-632 : La instrucción no puede ser ejecutada por alguna restricción de borrado. El objeto de una instrucción ALTER TABLE no puede ser definido como dependiente de la tabla indicada, porque:
-la relación entre las tablas pude formar un ciclo que cause que la tabla sea borrada-conectada con ella misma.
-la relación puede causar que la tabla a ser borrada-conectada a la tabla indicada a través de múltiples caminos y la regla de borrado de la relación existente sea SET NULL.

-633 : La regla de borrado indicada en la cláusula FOREIGN KEY de una instrucción
 ALTER TABLE es inválida. Se requiere la regla de borrado indicada porque:
-una misma constante de referencia debe tener una regla de borrado de CASCADE
-las relaciones de la misma tabla a través de múltiples caminos deben tener la misma regla de borrado.

-634 : La instrucción no puede ser ejecutada porque la regla de borrado es CASCADE. La relación puede causar que la tabla a borrar se conecte con ella misma, o que otra tabla a borrar se conecte con la misma tabla a través de múltiples caminos pero con diferentes reglas de borrado o con la regla de borrado de SET NULL.

-635 : Las reglas de borrado especificadas en dos cláusulas FOREIGN KEY son inválidas porque la tabla podría ser borrada y conectada con la misma tabla a través de múltiples caminos pero con diferentes reglas de borrado o con la regla de SET NULL.

-636 : En una instrucción CREATE INDEX para un índice CLUSTER de una tabla particionada, los valores de las claves de partición no están especificados en orden ascendente o descendente.

-637 : La instrucción SQL contiene una palabra clave duplicada.

-638 : La instrucción CREATE TABLE no contiene ninguna definición de columna.

-639 : La instrucción CREATE o ALTER no puede ser ejecutada porque una columna FOREIGN KEY tiene una regla de borrado de SET NULL y a la vez es una columna de una clave particionada que puede ser nula. Una clave particionada de un índice CLUSTER no puede ser actualizada ni hacerse NULL.

-640 : Si se especifica LOCKSIZE ROW para un espacio de tablas, todos los índices de las tablas en ese espacio de tablas deben ser de tipo 2. La siguiente instrucción identifica todos los índices de tipo 1:
SELECT I.CREATOR, I.NAME FROM SYSIBM.SYSINDEXES I,
SYSIBM.SYSTABLES T WHERE INDEXTYPE = ' '
 AND T.TSNAME = 'table_space_name'
 AND T.DBNAMe = 'database_name'
 AND T.CREATOR = I.TBCREATOR
 AND T.NAME = I.TBNAME;

-642 : Demasiadas columnas en la restricción UNIQUE de una instrucción CREATE TABLE.

-643 : La definición del criterio de restricción excede la longitud máxima permitida de 3800 caracteres. Los espacios blancos redundantes son excluidos de este límite.

-644 : Un valor especificado para una palabra reservada es inválido.

-646 : Sólo se puede tener una tabla en un espacio de tablas particionado o por defecto, y ya existe una.

-647 : El bufferpool especificado en una instrucción CREATE o ALTER no está activado.

-650 : La instrucción ALTER INDEX no puede ser ejecutada por una de las siguientes causas:
-no está permitido modificar índices de tipo 1 cuyo espacio de tablas asociado tiene una especificación LOCKSIZE de ROW
-no está permitido modificar índices de tipo 1 definidos con UNIQUE WHERE NOT NULL.

-651 : La descripción de la tabla excede el máximo tamaño permitido de 32KB para el objeto descriptor.

-652 : La edición instalada o la validación del procedimiento ha rechazado el resultado de una inserción o actualización a una tabla.

-653 : No se pueden manipular datos de una tabla en un espacio de tablas particionado hasta que al menos se haya creado en esa tabla un índice particionado.

-655 : Ocurre uno de los siguientes errores:
-en la cláusula VOLUMES de una instrucción CREATE STOGROUP se han especificado tanto un ID volumen específico como uno no específico('*')
-en la cláusula ADD VOLUMES de una instrucción ALTER STOGROUP se han especificado tanto un ID volumen específico como uno no específico('*')
-un ID volumen específico se ha especificado en la cláusula ADD VOLUMES de un ALTER de un grupo de memoria que tiene IDs volúmenes no específicos o mixtos
-un ID volumen no específico('*') de ha especificado en la cláusula ADD VOLUMES de un ALTER de un grupo de memoria que tiene IDs volúmenes específicos o mixtos.

-660 : La instrucción CREATE INDEX falla para un índice cluster porque el límite de la clave no se ha especificado.

-661 : La instrucción CREATE INDEX falla para un índice cluster porque el número de partes especificada no es igual al número de particiones del espacio de tablas.

-662 : Un índice particionado no puede ser creado en un espacio de tablas no particionado.

-663 : El número límite de valores de claves o es cero o es mayor que el número de columnas en la clave del índice.

-664 : La instrucción CREATE INDEX falla porque la longitud interna del límite del campo clave para un índice particionado es mayor que 40.

-665 : La cláusula PART de la instrucción ALTER es inválida o está omitida. Si el espacio de tablas o el índice del ALTER está particionado, hay que identificar una cláusula PART que identifique la partición correcta. Si no está particionado, no hay que especificar PART.

-666 : La instrucción SQL no puede ser ejecutada porque una utilidad se está ejecutando en este momento.

-667 : El DROP INDEX en un índice cluster falla porque la tabla está en un espacio de tablas particionados. El espacio de tabla asociado debe ser retirado para retirar el índice.

-668 : La instrucción ALTER TABLE para a¦adir una columna a la tabla falla porque la tabla se está editando. Un procedimiento de edición en una tabla prohibe la adicción de una columna.

-669 : Falla la instrucción DROP TABLE porque la tabla a retirar está definida en un espacio de tablas particionado.

-670 : En un CREATE o ALTER TABLE, la longitud de una fila excede el tamaño de la página del espacio de tablas en el cual la tabla está definida. El tamaño de la página está determinado por el bufferpool usado por ese espacio de tabla.

-671 : La instrucción ALTER TABLESPACE falla porque al cambiar el bufferpool podría cambiar el tamaño de la página de ese espacio de tabla.

-672 : La operación DROP falla por una de las siguientes razones:
-la tabla especificada tiene el atributo RESTRICT ON DROP
-el espacio de tablas o la base de datos al que se le hace el DROP contiene la tabla especificada, la cual tiene el atributo RESTRICT ON DROP.

-676 : La instrucción CREATE INDEX falla porque no puede usarse un bufferpool con un tamaño de página de 32KB para un índice. Sólo puede usarse bufferpool de 4KB para los índices.

-677 : No hay suficiente memoria virtual disponible cuando DB2 intenta expandir o crear un bufferpool.

-678 : El literal especificado en la instrucción CREATE INDEX para el límite del índice no concuerda con el tipo de dato de la correspondiente columna.

-679 : La instrucción CREATE falla porque un DROP sobre el objeto está pendiente de ejecutarse. Tiene que hacerse el COMMIT antes de crearse ese objeto.

-680 : Se han especificado demasiadas columnas para una tabla. El máximo número de columnas permitidas es 750(300 en Caja Madrid).

-681 : Un procedimiento de campo de la instalación devuelve un error al procesar una columna. Puede dar información adicional que ayude a determinar la causa del problema:
4 : valor inválido para codificar o decodificar, o descripción de la columna inválida para definirla
8 : valor de parámetro inválido
12: error del procedimiento de campo sobre alguna función.

-682 : Un procedimiento no puede ser cargado. Hacer COMMIT o ROLLBACK y luego terminar.

-683 : Se ha especificado alguna opción FIELDPROC, BIT DATA, SBCS DATA o MIXED DATA para una columna que es de tipo numérica, fecha, hora, cadena larga o valor no nulo por defecto. Sólo puede ser especificada alguna de estas opciones para columnas que sean cadena de caracteres, y FIELDPROC además para columnas que permitan nulo y sin valores por defecto.

-684 : La longitud de una cadena de literales, excluyendo blancos insignificantes y delimitando paréntesis, es demasiado larga. No puede ser mayor que 254.

-685 : La descripción devuelta por un procedimiento de campo es inválida. El tipo de dato codificado para la columna es una cadena demasiado larga o contiene algún valor inválido.

-686 : Las columnas especificadas no son compatibles. Una columna definida con un procedimiento de campo no puede compararse con otra columna con un procedimiento de campo diferente.

-687 : Al comparar dos columnas, los tipo de campo son incompatibles.

-688 : Un procedimiento de campo devuelve datos incorrectos para alguna columna.
Ver la descripción del mensaje devuelto con este código.

-689 : Demasiadas columnas definidas para un tabla dependiente. El máximo número de columnas permitidas para una tabla dependiente es de 749.

-690 : La instrucción es rechazada para mantener el control de la definición del dato.

-691 : El registro de la tabla requerida no existe.

-692 : Un índice único debe ser definido para cada tabla registrada.

-693 : La columna de la tabla o el índice registrado en la DDL no está definida propiamente.

-694 : La instrucción DDL no puede ser ejecutada porque un DROP está pendiente sobre la tabla registrada en la DDL.

-713 : El valor especificado en la instrucción SET 'registro-especial' no es válido para ese registro especial.

-715 : El programa depende de una aplicación DB2 que no es soportada por la versión actual activa.

-716 : El programa ha sido precompilado bajo una versión no soportada por el nivel actual de DB2, o el contenido de la DBRM ha sido modificado después de la fase de precompilación.

-717 : Error de bind, el plan o package indicado depende de una función de DB2 que no es soportada por la versión actual activa.

-718 : Falla el BIND PACKAGE porque la columna IBMREQD de la tabla SYSIBM.SYSPACKAGE del catálogo para el package mencionado contiene un carácter inválido.

-719 : Error en el bind al intentar crear un package que ya existe.

-720 : Error en el bind al intentar cambiar la versión de un package por otra que ya existe.

-721 : Error en el bind al intentar crear o modificar un package con una señal de consistencia que no es única para ese package.

-722 : Error en el bind; el nombre del package indicado no existe.

-726 : Error en el bind al intentar reemplazar un package que tiene activas o inactivas las entradas actuales asociadas con el package.

-730 : El padre de una tabla en una base de datos compartida de sólo lectura también debe de ser una tabla de la base de datos compartida de sólo lectura.

-731 : La opción VSAM SHAREOPTIONS debe ser (1,3) para todos los índices y espacios de tabla de la base de datos. La librería definida por el usuario no reconoce la opción especificada.

-732 : La base de datos está definida en este subsistema con el atributo ROSHARE READ, pero el espacio de tablas o índices no han sido definidos en el propio subsistema.

-733 : La descripción de un espacio de tablas o índices, o de una tabla en una base de datos ROSHARE READ debe ser coherente con su descripción en el propio sistema. Deben coincidir los siguientes atributos:
-para un espacio de tablas: longitud de página, longitud de segmento, y número de particiones
-para un espacio de índices: número de particiones, número de subpáginas, tabla OBID, longitud total de la clave, tipo de índice, y número de columnas de la clave
-para una tabla: tabla OBID, máxima longitud del registro, y número de columnas.

-734 : El atributo ROSHARE de una base de datos no puede ser modificado, no se puede cambiar de ROSHARE READ a ROSHARE OWNER o ROSHARE NONE.

-735 : No se puede acceder a la base de datos 'BDID' porque ya no está definida como ROSHARE OWNER en el propio subsistema.

-736 : Se ha especificado un valor inválido OBID en una instrucción CREATE. El OBID no es válido porque o bien está fuera del rango (el rango válido es entre 1 y 32767), o ya está en uso por la base de datos especificada.

-737 : La instrucción CREATE TABLE ha usado un espacio de tablas implícito, y un espacio de tablas implícito no puede usarse en una base de datos definida como compartida y de sólo lectura.

-741 : Un archivo de trabajo de la base de datos no puede ser creado para el miembro de DB2 especificado, porque ese miembro ya tiene uno definido. Cada miembro sólo puede tener un archivo de trabajo de la base de datos.

-742 : La cláusula WORKFILE no puede ser usada en un instrucción CREATE DATABASE para crear un archivo de trabajo de la base de datos para un subsistema DB2 que no sea un miembro de una librería DB2 compartida.
El sistema de la base de datos, DSNDB07, es el archivo de trabajo implícito de la base de datos.

-751 : Un proceso de memoria usado en una operación SQL ha forzado al DB2 a hacer roll back en la unidad de trabajo.

-752 : La instrucción CONNECT es inválida porque el proceso no está en estado conectable.

-802 : Se ha producido un desbordamiento o una división por cero mientras DB2 ejecutaba una función aritmética o una expresión.

-803 : Se está intentando hacer un INSERT o un UPDATE y está provocando que existan dos filas iguales cuando la tabla está definida con índice único.

-804 : La lista de parámetros de la llamada o la SQLDA es errónea. La lista de parámetros puede haber sido modificada o puede contener algún parámetro que empiece por SQL, o la SQLDA puede tener un tipo de dato o longitud
errónea.

-805 : Al ejecutar un programa no se ha encontrado la DBRM del programa en el plan de aplicación.

-807 : Acceso denegado, el package no está activo para acceder a través de esa conexión.

-808 : La instrucción CONNECT no es consistente con la primera instrucción CONNECT. Un CONNECT de tipo 1 no puede ser ejecutado después de uno de tipo 2, y viceversa.

-811 : Al ejecutar una SELECT se han recuperado más de una fila.
Las sentencias SQL embebidas con SELECT sólo deben devolver una fila.

-812 : La instrucción SQL no puede ser ejecutada porque el ID de la colección está a blancos en el registro especial del actual package mientras se intenta formar un package adecuado para el programa usando un plan.

-815 : Al ejecutar una SELECT se ha encontrado con un GROUP BY o on HAVING y en DB2 solo pueden ir con cursores. (Nota: En QMF lo acepta, pero por programa no).

-817 : El programa que se está ejecutando bajo IMS/VS es sólo para consultar, y se está intentando hacer un UPDATE, INSERT o DELETE.

-818 : No coincide el cargable con el BIND del programa, el timestamp en la DBRM es diferente del timestamp de la precompilación SQL(suele ocurrir que falte hacer el bind).

-819 : Se hace referencia a una vista que no puede ser procesada porque la longitud de su par en el catálogo es cero. Hay un problema de migración de DB2.

-820 : Una columna de la tabla del catálogo indicada contiene un valor no válido en esa versión de DB2.

-821 : La vista no puede ser recreada. Es un problema de migración DB2.

-822 : La SQLDA contiene una dirección o un indicador de variable de dirección inválida.

-840 : Hay más de 300 columnas devueltas por la instrucción SELECT, y 300 es el máximo.

-842 : La conexión especificada por la instrucción CONNECT ya existe.

-843 : Se viola una de las siguientes reglas:
-una instrucción SET CONNECT debe identificar una conexión SQL existente
-una instrucción RELEASE debe identificar una conexión ya existente.

-870 : El número de variables Host en la instrucción no es igual al número de descripciones.

-900 : La instrucción SQL no puede ser ejecutada porque el proceso en aplicación no está conectado al servidor.

-901 : Se produce un error del sistema. También puede ser que la longitud de la instrucción SQL sea menor que 0 o mayor que la permitida por DB2.

-902 : Se produce un error del sistema. También puede ser que al hacer el bind de algunos de los módulos que utiliza el programa no se ha incluido a los módulos que llama el propio módulo.

-904 : El recurso está inaccesible. Puede ser que haya un COPY PENDING. También puede ser que la tabla esté llena.

-905 : Se ha excedido el límite de un recurso, y se ha parado la ejecución.

-906 : La función SQL requerida está inactiva.

-907 : El COMMIT falla porque ha ocurrido un error del sistema en el lugar remoto en el cual las actualizaciones fueron hechas, o falla la conexión con ese lugar.

-908 : Para el BIND o REBIND, el ID del usuario indicado no está autorizado a realizar ese tipo de bind contra ese plan o paquete.

-909 : El objeto referido ha sido borrado.

-910 : La instrucción SQL intenta acceder a un objeto al que se le ha hecho DROP o un ALTER, pero aún no se le ha hecho un COMMIT.

-911 : Se ha producido un DEADLOCK o un TIMEOUT, y se ha hecho un ROLLBACK a la unidad actual de trabajo.

-913 : Se ha producido un DEADLOCK o un TIMEOUT.

-917 : Fallo del BIND PACKAGE.

-918 : La instrucción SQL no puede ser ejecutada porque se han perdido las conexiones.

-919 : Se requiere una operación de ROLLBACK.

-922 : No se ha hecho una autorización PUBLIC en los programas del DB2. O puede faltar hacer el GRAND BIND o GRAN EXECUTE del plan.

-923 : La conexión no está establecida, puede que DB2 no esté activo, o que se haya caído, o que un recurso(librería o tabla) esté parado. También puede ser que se lance una petición de un programa DB2 (que pase por el ordenador de oficinas - real), y no tiene el plan de aplicación para dicho ordenador.

-924 : Se produce un error interno del DB2.

-925 : Se intenta hacer un COMMIT y no es válido en entorno IMS/VS o CICS. Hay que usar una llamada CHKP para un programa IMS, y una llamada
EXEC CICS SYNCPOINT COMMITT para un programa CICS.

-926 : Se intenta hacer un ROLLBACK y no es válido en entorno IMS/VS o CICS. Hay que usar una llamada ROLB/ROLL para un programa IMS, y una llamada EXEC CICS SYNCPOINT ROLLBACK para uno CICS.

-927 : Se intenta acceder a DB2 y la conexión no se puede realizar. Se debe invocar al programa bajo el comando DSN. También puede que se realice en el programa una llamada al DB2 y se ha compilado el programa incorrectamente, por lo que se debe revisar la compilación.

-929 : Fallo en un DATA CAPTURE CHANGES.

-939 : Rollback requerido debido a un rollback no solicitado de un servidor remoto.

-947 : La instrucción SQL falla porque se intenta cambiar una tabla definida con DATA CAPTURE CHANGES, pero los datos no pueden ser propagados.

-948 : Operación de distribución inválida.

-950 : El nombre local especificado en la instrucción CONNECT es inválido o no está catalogado en la base de datos de las comunicaciones.

-965 : DB2 recibe una instrucción CALL SQL para un proceso de memoria, que termina anormalmente, mientras se intenta responder.


CODIGOS DE AVISO

+000 : La instrucción SQL se ha ejecutado correctamente. Comprueba SQLWARN0 para ver si existen observaciones. Si SQLWARN0 es distinto de blanco, existen observaciones.

+012 : En una subselect hay una columna que no se identifica con ninguna columna de la tabla o vista especificada en la cláusula FROM, y se ha interpretado como una columna de una tabla o vista especificada en la cláusula FROM de un nivel superior de la instrucción.

+098 : Una instrucción SQL dinámica termina con un punto y coma.

+100 : No se encuentra en la tabla la fila especificada.

+110 : Se ha actualizado una tabla definida con DATA CAPTURE CHANGES y no se ha enviado notificación al originado subsistema IMS.

+111 : La opción SUBPAGES no es soportada por los índices tipo 2. La opción es ignorada.

+117 : El número de valores en la lista de valores del INSERT no es el mismo que el número de columnas especificadas.

+162 : El indicador de estado de la tabla está en CHECK PENDING porque ALTER TABLE se ha usado y especificaba una tabla llena.

+203 : El nombre de columna cualificada se ha resuelto usando un nombre de columna no único o uno no expuesto.

+204 : El objeto identificado no está definido en el subsistema DB2.

+206 : La columna especificada no es una columna de ninguna tabla identificada en la cláusula FROM.

+218 : El EXPLAIN en un objeto remoto no es soportado por DB2. El error puede ocurrir en el BIND cuando se especifica EXPLAIN(YES) y la aplicación tiene un SQL referido a un objeto remoto, o un estamento SQL estático hace referencia a un objeto remoto mientras se ejecuta.

+219 : La tabla de explicación requerida por la instrucción EXPLAIN no está definida en el subsistema DB2.

+220 : La columna especificada de la tabla de explicación no está definida propiamente.

+304 : Un FETCH o SELECT en una variable Host falla porque la variable Host no es lo suficientemente grande para recoger el valor del campo recuperado.

+331 : El valor nulo ha sido asignado a una variable Host porque la cadena que se le había asignado no ha podido ser trasladada.

+339 : La instrucción SQL se ha ejecutado correctamente, pero puede haber algunos caracteres que se han convertido incoherentemente.

+402 : Un objeto remoto se refiere a una localización que no existe en la tabla SYSIBM.SYSLOCATIONS, o la tabla no existe.

+403 : El objeto al que se refiere con el estamento CREATE ALIAS no existe cuando se crea el alias.

+535 : El resultado de UPDATE o DELETE posicionado puede depender del orden de las filas.

+541 : Una cláusula FOREIGN KEY usa la misma clave y la misma tabla padre que otra cláusula FOREIGN KEY, o una cláusula UNIQUE usa la misma lista de columnas que otra cláusula UNIQUE.

+551 : El usuario no tiene autorización para ejecutar la operación especificada sobre el objeto referido, pero puede crearse el plan o package.

+552 : El usuario no tiene autorización para ejecutar la operación especificada, pero puede crearse el plan o package.

+558 : El estamento GRANT tiene una de las siguientes situaciones:
-PUBLIC está en la lista de las autorizaciones concedidas
-se está concediendo un provilegio BINDAGENT
 -se está concediendo privilegios sobre alguna colección.
La opción WITH GRANT no puede ser usada en estas situaciones.

+560 : El privilegio UPDATE no puede ser concedido con la opción GRANT. El privilegio se ha concedido, pero sin la opción GRANT.

+561 : Los privilegios ALL, ALL PRIVILEGES, ALTER, INDEX o REFERENCES no pueden ser concedidos cómo TO PUBLIC AT ALL LOCATIONS con la opción GRANT. El estamento SQL se ejecuta, pero los privilegios ALTER y INDEX no son concedidos cómo PUBLIC.

+562 : Algún privilegio de la instrucción GRANT se ha ignorado porque el beneficiario ya tiene ese privilegio de ese usuario.

+610 : El índice está siendo puesto en estado de recuperación.

+625 : El estado de la tabla indicada ha cambiado a INCOMPLETE porque un DROP INDEX se ha realizado en su índice primario. Este estado se restablecerá cuando se haya recreado el índice primario. Cualquier referencia que se haga a la tabla en este estado dará un SQLCODE negativo.

+626 : El índice se ha creado para hacer cumplir la unicidad de una clave que fue definida como única cuando se creó la tabla. El borrado del índice termina con esta unicidad.

+645 : La cláusula WHERE NOT NUT es ignorada en un estamento CREATE INDEX porque alguna columna del índice clave no puede contener valores nulos.

+650 : La tabla que se ha creado o alterado no puede convertirse en una tabla dependiente, porque esta definida con el máximo número de columnas.

+653 : La tabla del espacio de tablas particionado no está activa porque su índice particionado no ha sido creado.

+658 : Sólo SUBPAGES 1 está permitido para el índice catalogado.

+664 : La instrucción CREATE INDEX define un índice particionado y la longitud del límite de la clave excede el máximo permitido que es de 40 bytes, por lo
que se ha truncado.

+738 : Se ha hecho un cambio en la definición del objeto especificado y esto puede requerir un cambio similar en algún sistema compartido de sólo lectura.

+802 : Ha ocurrido una excepción mientras se realiza una operación aritmética. Los posibles tipos de excepciones son FIXED POINT OVERFLOW, DECIMAL OVERFLOW, DIVIDE OVERFLOW y EXPONENT OVERFLOW.

+806 : La especificación en el bind del nivel aislado RR es incompatible con la especificación LOCKSIZE PAGE o LOCKSIZE ROW y LOCKMAX 0 para un espacio de tabla accesible por la aplicación.

+807 : El resultado de una multiplicación decimal puede causar desbordamiento.

+863 : La conexión ha sido satisfactoria, pero sólo SBCS puede soportarla.

Comentarios