SQL0401N | Los tipos de datos de los operandos de la operación "<operador>" no son compatibles. |
Explicación: La operación "<operador>" que aparece en la sentencia de SQL contiene una combinación de operandos numéricos y no numéricos o los operandos de la operación no son compatibles.
Usuarios del sistema federado: esta violación del tipo de datos puede radicar en la fuente de datos o en el servidor federado.
Algunas fuentes de datos no proporcionan los valores adecuados para "<operador>". En estos casos, el símbolo del mensaje tendrá el siguiente formato: "<fuente de datos>:UNKNOWN", que indica que el valor real de la fuente de datos especificada es desconocido.
No se puede procesar la sentencia.
Respuesta del usuario: Compruebe todos los tipos de datos de los operandos para asegurarse de que son comparables y compatibles con el uso de la sentencia.
Si todos los operandos de la sentencia de SQL son correctos y acceden a una vista, compruebe los tipos de datos de todos los operandos de la vista.
Usuarios del sistema federado: si la razón del error es desconocida, aísle el problema en el fuente de datos que no puede procesar la petición (en la publicación Problem Determination Guide encontrará los procedimientos que se han de seguir para identificar la fuente de datos que falla) y examine las restricciones de los tipos de datos para esa fuente de datos.
sqlcode: -401
sqlstate: 42818
SQL0402N | El tipo de datos de un operando de la función u operación aritmética "<operador>" no es numérico. |
Explicación: Se ha especificado un operando no numérico para la función aritmética u operador "<operador>".
No se puede procesar la sentencia.
Respuesta del usuario: Corrija la sintaxis de la sentencia de SQL de manera que todos los operandos de función y de operador sean numéricos.
Usuarios del sistema federado: si la razón es desconocida, aísle el problema para la fuente de datos que no puede procesar la petición (consulte en la guía para la determinación de problemas los procedimientos que se han de seguir para identificar la fuente de datos que falla) y examine los operadores que se han aplicado a esa fuente de datos.
sqlcode: -402
sqlstate: 42819
SQL0403W | El alias definido recientemente "<nombre>" se ha resuelto en el objeto "<nombre2>" que no está definido actualmente. |
Explicación: El alias <nombre> se ha definido en función de:
El objeto <nombre2> es el objeto no definido. Dicho objeto debe existir antes de que cualquier sentencia de SQL (que no sea CREATE ALIAS) pueda utilizar satisfactoriamente el alias recién creado. Se crea el alias <nombre> especificado.
Una vista no operativa se considera no definida a efectos de creación de un alias.
Respuesta del usuario: Asegúrese de que el objeto no definido <nombre2> se define con anterioridad a la utilización del alias recién creado en una sentencia de SQL (otra distinta a CREATE ALIAS).
sqlcode: +403
sqlstate: 01522
SQL0404N | Una serie de la sentencia UPDATE o INSERT es demasiado larga para la columna "<nombre>". |
Explicación: Una sentencia INSERT o UPDATE especifica un valor que es más largo que la serie de longitud máxima que se puede almacenar en la columna indicada.
No se puede procesar la sentencia.
Nota: | Es posible que "<nombre>" se devuelva en el SQLCA o no, dependiendo de la sintaxis de la sentencia INSERT o UPDATE. |
Respuesta del usuario: Compruebe la longitud de la columna del objeto y corrija el programa o la sentencia de SQL de modo que la serie que se inserte o actualice no supere la longitud máxima.
sqlcode: -404
sqlstate: 22001
SQL0405N | El literal numérico "<literal>" no es válido porque su valor está fuera de rango. |
Explicación: El literal numérico especificado no está dentro del rango aceptable.
Los rangos adecuados para los valores SQL son los siguientes:
En determinados contextos, el literal puede tener ciertas restricciones que den como resultado este error. Para obtener más información, consulte la sentencia o cláusula en el manual Consulta de SQL.
Usuarios del sistema federado: esta violación del rango puede radicar en la fuente de datos o en el servidor federado. Los rangos adecuados para los valores SQL ubicados en las tablas de la fuente de datos dependen de la fuente de datos. Para determinar el rango correcto, consulte la documentación adecuada para la fuente de datos. Algunas fuentes de datos no proporcionas los valores adecuados para "<literal>". En estos casos, el símbolo del mensaje tendrá el siguiente formato: "<fuente de datos>:UNKNOWN", que indica que el valor real de la fuente de datos especificada es desconocido.
No se puede procesar la sentencia.
Respuesta del usuario: Reduzca el valor del literal hasta el tamaño adecuado.
Usuarios del sistema federado: si la razón es desconocida, aísle el problema en la fuente de datos que no puede procesar la petición (consulte en la guía para la determinación de problemas los procedimientos que se han de seguir para identificar la fuente de datos que falla) y examine las restricciones de rango de datos para esa fuente de datos.
sqlcode: -405
sqlstate: 42820
SQL0406N | Un valor numérico de la sentencia UPDATE o de la sentencia INSERT no está dentro del rango permitido para su columna de destino. |
Explicación: El valor de una variable del sistema principal o un valor numérico que se ha calculado durante el proceso de la sentencia UPDATE o INSERT SQL está fuera del rango permitido de la columna de destino. La causa de este problema puede estar en los valores de aparecen en la columna del objeto, en la operación de SQL que se realiza sobre dichos valores o en ambos.
No se puede procesar la sentencia.
Respuesta del usuario: Consulte la explicación del mensaje SQL0405 para ver los rangos permitidos para los tipos de datos numéricos.
NOTA: En las actualizaciones de catálogos del sistema, consulte el manual Consulta de SQL para ver los rangos válidos de las diversas columnas de los catálogos actualizables.
sqlcode: -406
sqlstate: 22003
SQL0407N | La asignación de un valor NULL a una columna NOT NULL "<nombre>" no está permitida. |
Explicación: Se ha producido una de las siguientes condiciones:
Si el valor de "<nombre>" tiene el formato "TBSPACEID=n1, TABLEID=n2, COLNO=n3", entonces, el nombre de la columna de la sentencia de SQL no estaba disponible cuando se emitió el error. Los valores proporcionados identifican el espacio de tabla, la tabla y el número de columna de la tabla base que no permite el valor NULL.
Usuarios del sistema federado: Esta situación puede detectarla el servidor federado o la fuente de datos. Algunas fuentes de datos no proporcionan los valores adecuados para "<nombre>". En estos casos, el símbolo del mensaje tendrá el siguiente formato: "<fuente de datos>:UNKNOWN", que indica que el valor real de la fuente de datos especificada es desconocido.
No se puede procesar la sentencia.
Nota: | Bajo algunas circunstancias, el símbolo "<nombre>" no se rellenará (el campo sqlerrmc de SQLCA no se rellena). |
Respuesta del usuario: Corrija la sentencia de SQL después de examinar la definición de la tabla de objetos para determinar qué columnas de la tabla tienen el atributo NOT NULL y no tienen el atributo WITH DEFAULT.
Si el valor de "<nombre>" tiene el formato "TBSPACEID=n1, TABLEID=n2, COLNO=n3", se puede determinar el nombre de la tabla y el nombre de la columna usando la consulta siguiente:
SELECT C.TABSCHEMA, C.TABNAME, C.COLNAME FROM SYSCAT.TABLES AS T, SYSCAT.COLUMNS AS C WHERE T.TBSPACEID = n1 AND T.TABLEID = n2 AND C.COLNO = n3 AND C.TABSCHEMA = T.TABSCHEMA AND C.TABNAME = T.TABNAME
La tabla y la columna identificada mediante esta consulta puede ser la tabla base de una vista en la que la sentencia de SQL falló.
Usuarios del sistema federado: si la razón es desconocida, aísle el problema en el fuente de datos que no puede procesar la petición (consulte en la guía para la determinación de problemas los procedimientos que se han de seguir para identificar la fuente de datos que falla) y examine la definición del objeto para esa fuente de datos. Recuerde que los valores por omisión (NULL y NOT NULL) no son necesariamente los mismos entre las fuentes de datos.
sqlcode: -407
sqlstate: 23502
SQL0408N | Un valor no es compatible con el tipo de datos de su asignación destino. El nombre del destino es "<nombre>". |
Explicación: El tipo de datos del valor que se va a asignar a la columna, parámetro, variable SQL o variable de transición por una sentencia de SQL es incompatible con el tipo de datos declarado del destino de asignación. Ambos deben ser:
No se puede procesar la sentencia.
Respuesta del usuario: Examine la sentencia y si es posible la vista o tabla destino para determinar el tipo de datos destino. Asegúrese de que el valor literal, expresión o variable tiene el tipo de datos adecuado para el destino de asignación.
sqlcode: -408
sqlstate: 42821
SQL0409N | El operando de una función COUNT no es válido. |
Explicación: Tal como está especificado en la sentencia de SQL, el operando de la función COUNT no cumple las normas de sintaxis de SQL. Sólo se permiten COUNT(*) y COUNT(DISTINCT columna).
No se puede procesar la sentencia.
Respuesta del usuario: Especifique COUNT(*) o COUNT(DISTINCT columnas).
NOTA: Este mensaje sólo se aplica a las versiones de DB2 anteriores a la Versión 2.
sqlcode: -409
sqlstate: 42607
SQL0410N | El literal de coma flotante "<literal>" contiene más de 30 caracteres. |
Explicación: El literal de coma flotante especificado tiene una longitud superior a los 30 caracteres, excluyendo los ceros iniciales. Un literal de coma flotante debe tener una longitud máxima de 30 caracteres.
No se puede procesar la sentencia.
Respuesta del usuario: Reduzca el literal especificado.
sqlcode: -410
sqlstate: 42820
SQL0412N | Se devuelven columnas múltiples desde una subconsulta que sólo permite una columna. |
Explicación: En el contexto de la sentencia de SQL, se especifica una selección completa que sólo puede tener una columna como resultado.
No se puede procesar la sentencia.
Respuesta del usuario: Especifique sólo una columna cuando sólo se permite una selección completa escalar.
sqlcode: -412
sqlstate: 42823
SQL0413N | Se ha producido un desbordamiento durante la conversión de tipo de datos numéricos. |
Explicación: Durante el proceso de la sentencia de SQL, se ha alcanzado una condición de desbordamiento al convertir de un tipo numérico a otro. La conversión numérica se realiza atendiendo a las normas estándares de SQL.
Usuarios del sistema federado: la conversión numérica se puede producir en el servidor federado, en las fuentes de datos, o en ambos.
No se puede procesar la sentencia. No se ha recuperado, actualizado ni suprimido ningún dato.
Respuesta del usuario: Revise la sintaxis de la sentencia de SQL para averiguar la causa del error. Si el problema depende de los datos, puede ser necesario examinar los datos procesados en el momento de producirse el error.
Usuarios del sistema federado: si la razón es desconocida, aísle el problema en la fuente de datos que no puede procesar la petición (consulte en la guía para la determinación de problemas los procedimientos que se han de seguir para identificar la fuente de datos que falla) y examine las restricciones de rango de datos para esa fuente de datos.
sqlcode: -413
sqlstate: 22003
SQL0415N | Los tipos de datos de las columnas correspondientes no son compatibles en una selección completa que incluya un operador de conjunto, o bien en las diversas filas de una cláusula VALUES de un INSERT o de una selección completa. |
Explicación: Hay varias sentencias donde puede producirse este error.
Las columnas son incompatibles por una de las razones siguientes:
Si los datos de una columna son de tipo carácter, fecha, hora o indicación de la hora, la columna correspondiente puede ser una serie constante de caracteres.
No se puede procesar la sentencia.
Respuesta del usuario: Corrija los nombres de columna utilizados en la sentencias SELECT o las expresiones de la cláusula VALUES, de forma que todas las columnas correspondientes sean de tipos compatibles.
sqlcode: -415
sqlstate: 42825
SQL0416N | No puede especificar una columna de resultado de más de 254 bytes en las sentencias SELECT o VALUES concatenadas mediante un operador de conjunto que no sea UNION ALL. |
Explicación: Una de las sentencias SELECT o VALUES concatenadas por un operador de conjunto especifica una columna de resultado mayor de 254 bytes. Sólo se pueden utilizar las columnas de resultado VARCHAR o VARGRAPHIC de más de 254 bytes con el operador de conjunto UNION ALL.
No se puede procesar la sentencia.
Respuesta del usuario: Utilice UNION ALL en lugar de UNION o elimine las columnas de resultado de más de 254 bytes de las sentencias SELECT o VALUES.
sqlcode: -416
sqlstate: 42907
SQL0417N | Una serie de sentencias que va a prepararse contiene marcadores de parámetros como operandos del mismo operador. |
Explicación: La serie de sentencia especificada como objeto de una sentencia PREPARE o EXECUTE IMMEDIATE contiene un predicado o expresión en la que los marcadores de parámetros se han utilizado como operandos del mismo operador sin una especificación CAST. Por ejemplo:
? > ?
No se puede procesar la sentencia.
Respuesta del usuario: No se da soporte a la sintaxis. Utilice la especificación CAST para proporcionar un tipo de datos a uno de los marcadores de parámetros como mínimo.
sqlcode: -417
sqlstate: 42609
SQL0418N | Una sentencia contiene un marcador de parámetros que no es válido. |
Explicación: Los marcadores de parámetros que carecen de tipo no se pueden utilizar:
Los marcadores de parámetros nunca se pueden utilizar:
No se puede procesar la sentencia.
Respuesta del usuario: Corrija la sintaxis de la sentencia. Si los marcadores de parámetros sin tipo no están permitidos, utilice la especificación CAST para proporcionar un tipo de datos al marcador de parámetros.
sqlcode: -418
sqlstate: 42610
SQL0419N | Una operación de división decimal no es válida porque el resultado tendría una escala negativa. |
Explicación: Una división decimal especificada no es válida porque daría un resultado incluido en una escala negativa.
La fórmula utilizada internamente para calcular la escala del resultado de una división decimal es:
Escala de resultado = 31 - pn + en - ed
donde pn es la precisión del numerador, en la escala del numerador y ed la escala del denominador.
Usuarios del sistema federado: La división decimal puede producirse en el servidor federado, en las fuentes de datos o en ambos. La división decimal especificada da lugar a una escala incorrecta para esta fuente de datos.
No se puede procesar la sentencia.
Respuesta del usuario: Revise y compruebe la precisión y la escala de todas las columnas que participan en una división decimal. Tenga en cuenta que un valor de entero o de entero pequeño puede convertirse en un decimal para este cálculo.
Usuarios del sistema federado: si la razón es desconocida, aísle el problema en la fuente de datos que no puede procesar la petición (consulte en la guía para la determinación de problemas los procedimientos que se han de seguir para identificar la fuente de datos que falla) y examine las restricciones de rango de datos para esa fuente de datos.
sqlcode: -419
sqlstate: 42911
SQL0420N | Se ha encontrado un carácter no válido en un argumento de serie de caracteres de la función "<nombre-función>". |
Explicación: La función "<nombre-función>" incluye un argumento de serie de caracteres que contiene un carácter que no es válido en una constante de SQL numérica. Es posible que se haya llamado a la función como resultado de utilizar la especificación CAST con "<nombre-función>" como el tipo de datos de destino. La función o el tipo de datos que se han utilizado en la sentencia de SQL pueden ser un sinónimo de "<nombre-función>".
Si se especifica un carácter decimal en la función DECIMAL, debe utilizarse dicho carácter en lugar del carácter decimal por omisión.
Respuesta del usuario: Asegúrese de que las series de caracteres que se están convirtiendo a tipos numéricos contienen únicamente caracteres válidos en constantes de SQL numéricas que utilizan el carácter decimal, en caso de especificarse.
sqlcode: -420
sqlstate: 22018
SQL0421N | Los operandos de un operador de conjunto o de una cláusula VALUES no tienen el mismo número de columnas. |
Explicación: Los operandos de un operador de conjunto como UNION, EXCEPT o INTERSECT deben tener el mismo número de columnas. Las filas de una cláusula VALUES deben tener el mismo número de columnas.
No se puede procesar la sentencia.
Respuesta del usuario: Modifique la sentencia de SQL de modo que cada operando o cada fila de una cláusula VALUES tenga exactamente el mismo número de columnas.
sqlcode: -421
sqlstate: 42826
SQL0423N | La variable de localizador "<posición-variable>" no representa ningún valor actualmente. |
Explicación: Hay una variable de localizador errónea. Es posible que no se le haya asignado un valor de LOB o que el localizador asociado con la variable haya sido liberado.
Si se proporciona "<posición-variable>", ésta facilita la posición ordinal de la variable errónea del grupo de variables especificado. Dependiendo de cuándo se detecte el error, es posible que el gestor de bases de datos no pueda determinar la <posición-variable>".
En lugar de una posición ordinal, "<posición-variable>" puede tener el valor "nombre-función RETURNS", que significa que el valor de localizador devuelto de la función definida por el usuario que se ha identificado por el nombre-función es erróneo.
Respuesta del usuario: Corrija el programa de forma que las variables de localizador de LOB que se utilizan en la sentencia de SQL tengan valores de LOB válidos antes de que se ejecute la sentencia. Puede asignarse un valor de LOB a una variable de localizador mediante las sentencias SELECT INTO, VALUES INTO o FETCH.
sqlcode: -423
sqlstate: 0F001
SQL0426N | Confirmación dinámica no válida para el entorno de ejecución de la aplicación. |
Explicación: Una aplicación que se ejecuta en un entorno de Proceso de transacción distribuida (DTP) CONNECT TYPE 2, como pueda ser CICS, ha intentado ejecutar una sentencia dinámica COMMIT del SQL. No se puede ejecutar la sentencia COMMIT dinámica de SQL en este entorno.
Usuarios del sistema federado: Las sentencias COMMIT dinámicas de SQL no se pueden ejecutar durante una sesión de paso a través.
Respuesta del usuario:
Usuarios del sistema federado: Elimine el comentario de la sentencia COMMIT o codifíquela como una sentencia estática. A continuación, vuelva a someter el programa.
sqlcode: -426
sqlstate: 2D528
SQL0427N | Retrotracción dinámica no válida para el entorno de ejecución de la aplicación. |
Explicación: Una aplicación que se ejecuta en un entorno de Proceso de transacción distribuida (DTP) CONNECT TYPE 2, como pueda ser CICS, ha intentado ejecutar una sentencia dinámica ROLLBACK del SQL. No se puede ejecutar la sentencia ROLLBACK dinámica de SQL en este entorno.
Usuarios del sistema federado: Las sentencias ROLLBACK dinámicas de SQL no se pueden ejecutar durante una sesión de paso a través.
Respuesta del usuario:
Usuarios del sistema federado: Elimine el comentario de la sentencia ROLLBACK o codifíquela como una sentencia estática. A continuación, vuelva a someter el programa.
sqlcode: -427
sqlstate: 2D529
SQL0428N | La sentencia de SQL sólo se admite como primera sentencia de una unidad de trabajo. |
Explicación: La sentencia de SQL que se emitió se tiene que ejecutar antes que ninguna otra sentencia de SQL que inicie una unidad de trabajo. Lo que sigue son posibles situaciones:
Tenga presente que cuando la sentencia es DISCONNECT ALL provoca que DISCONNECT se dirija contra todas las conexiones para que la solicitud falle si alguna conexión vulnera las restricciones que se acaban de mencionar.
Respuesta del usuario: Emita COMMIT o ROLLBACK antes de procesar la sentencia de SQL. Si hay algún cursor WITH HOLD se tendrá que cerrar. Si la sentencia es SET INTEGRITY, elimine la cláusula COMMIT THRESHOLD.
sqlcode: -428
sqlstate: 25001
SQL0429N | Se ha sobrepasado el número máximo de localizadores de LOB simultáneos. |
Explicación: DB2 da soporte a un máximo de 32.000 localizadores de LOB simultáneamente.
Respuesta del usuario: Modifique el programa de modo que necesite menos localizadores de LOB simultáneos y vuelva a intentarlo.
sqlcode: -429
sqlstate: 54028
SQL0430N | La función definida por el usuario "<nombre-función>" (con el nombre específico "<nombre-específico>") ha terminado anormalmente. |
Explicación: Se ha producido una terminación anormal mientras la función definida por el usuario mencionada tenía el control.
Respuesta del usuario: Hay que arreglar la función definida por el usuario. Póngase en contacto con el autor de la función o con el administrador de la base de datos. No se debe utilizar la función definida por el usuario hasta que no se solucione el problema.
sqlcode: -430
sqlstate: 38503
SQL0431N | El usuario ha interrumpido la función definida por el usuario "<nombre-función>" (con el nombre específico "<nombre-específico>"). |
Explicación: Se ha producido una interrupción de usuario/cliente mientras la función definida por el usuario mencionada tenía el control.
Respuesta del usuario: Esto podría indicar algún problema en la función definida por el usuario, como por ejemplo un bucle o una espera indefinida. Si el problema persiste, (p.e., la necesidad de interrupción da como resultado la misma condición de error), póngase en contacto con el autor de la función definida por el usuario o con el administrador de la base de datos. No se debe utilizar esta función definida por el usuario hasta que se solucione el problema.
sqlcode: -431
sqlstate: 38504
SQL0432N | Un marcador de parámetros no puede un nombre del tipo definido por el usuario ni del tipo de destino de referencia "<nombre-tdu>". |
Explicación: Se ha determinado que un marcador de parámetros tiene el tipo definido por el usuario "<nombre-tdu>" o un tipo de referencia con el tipo de destino "<nombre-tdu>" basado en el contexto en el se utiliza. Un marcador de parámetros no puede tener un tipo definido por el usuario ni un tipo de referencia como su tipo de datos a menos que forme parte de una asignación (cláusula VALUES de INSERT o la cláusula SET de UPDATE) o se difunda explícitamente a un tipo de datos diferenciado definido por el usuario o un tipo de datos de referencia que utilice la especificación CAST.
No se puede procesar la sentencia.
Respuesta del usuario: Utilice una conversión (cast) explícita para un tipo de datos diferenciado definido por el usuario o para el tipo de datos de referencia para el marcador de parámetros. Una alternativa es convertir (cast) las columnas que sean tipos de datos diferenciados definidos por el usuario en sus tipos de datos fuente correspondientes o convertir las columnas que son tipos de datos de referencia en sus tipos de representación correspondiente.
sqlcode: -432
sqlstate: 42841
SQL0433N | El valor "<valor>" es demasiado largo. |
Explicación: Ha sido necesario que una función de conversión (incorporada) o de ajuste del sistema truncase el valor "<valor>", que se ha llamado para transformar de alguna manera el valor. No se permite un truncamiento en el lugar en el que se utiliza este valor.
El valor que se transforma es uno de los siguientes:
La sentencia ha fallado.
Respuesta del usuario: Si "<valor>" es una serie literal de la sentencia de SQL, es demasiado largo para su utilización.
Si "<valor>" no es una serie literal, examine la sentencia de SQL para determinar dónde tiene lugar la transformación. La entrada para la transformación es demasiada larga o el destino es demasiado corto.
Corrija el problema y vuelva a ejecutar la sentencia.
sqlcode: -433
sqlstate: 22001
SQL0434W | Se ha sustituido un valor no soportado para la cláusula "<cláusula>" por el valor "<valor>". |
Explicación: El valor que se ha especificado para la cláusula "<cláusula>" no está soportado y se ha sustituido por el valor identificado soportado "<valor>".
Respuesta del usuario: No es necesario ningún cambio si el valor seleccionado es aceptable. De lo contrario, especifique un valor que sea válido para la "<cláusula>".
sqlcode: +434
sqlstate: 01608
SQL0435N | Se ha especificado SQLSTATE "<sqlstate>" en la función RAISE_ERROR. |
Explicación: El SQLSTATE especificado en la función RAISE_ERROR no cumple las normas para un SQLSTATE definido por una aplicación.
Respuesta del usuario: Corrija el SQLSTATE especificado en la función RAISE_ERROR. SQLSTATE debe ser una serie de caracteres que contenga exactamente 5 caracteres. Debe ser del tipo CHAR definido con la longitud 5, o del tipo VARCHAR definido con la longitud 5 o superior. El valor SQLSTATE debe respetar las reglas de los SQLSTATE definidos por la aplicación de la siguiente manera:
sqlcode: -435
sqlstate: 428B3
SQL0436N | Falta el carácter de terminación NULL de la variable del sistema principal de serie de caracteres de terminación NULL. |
Explicación: El valor de un código de variable de sistema principal de entrada del lenguaje de programación C necesita un carácter de terminación NULL al final de la serie.
No se puede procesar la sentencia.
Respuesta del usuario: Asegúrese de que el valor de la variable del sistema principal de entrada termina en un carácter de terminación NULL.
sqlcode: -436
sqlstate: 22024
SQL0437W | Es posible que el rendimiento de esta consulta compleja no sea el óptimo. Código de razón: "<código-razón>". |
Explicación: El posible que la sentencia tenga un rendimiento por debajo del óptimo debido a que la complejidad de la consulta necesita recursos que no están disponibles o a que se han encontrado condiciones que limitan la optimización. La siguiente lista muestra los códigos de razón:
Se procesará la sentencia.
Respuesta del usuario: Una o más de las siguientes:
sqlcode: +437
sqlstate: 01602
SQL0438N | La aplicación ha originado un error con el texto de diagnóstico: "<texto>". |
Explicación: Este error se ha producido como resultado de la ejecución de la función RAISE_ERROR o de la sentencia SIGNAL SQLSTATE en un activador.
Respuesta del usuario: Consulte la documentación de la aplicación.
sqlcode: -438
sqlstate: definido por la aplicación
SQL0439N | La función definida por el usuario "<nombre-función>" está implantada indirectamente por la función "<función-origen>" lo que ha provocado el error "<sqlcode>". |
Explicación: La sentencia del usuario hace referencia a la función "<nombre-función>". Sin embargo, puesto que la cláusula SOURCE se ha utilizado en la definición de esta función, ha resultado que la función "<función-origen>" realmente implanta la función. (Puede tratarse de una vía de acceso de definición directa o indirecta de "<nombre-función>" para "<función-origen>".) En el momento de compilación, el encapsulador (código DB2 que actúa en nombre de una función) de "<función-origen>" ha devuelto un error identificado por "<sqlcode>".
Respuesta del usuario: Antes de poder tomar ninguna acción correctiva, hay que entender mejor la situación de error real. Consulte la explicación para el "<sqlcode>". Si "<función-origen>" es una función incorporada, el "<sqlcode>" debe indicar el problema, igual que en el caso en que la sentencia del usuario hace referencia directamente a una función incorporada. Si "<función-origen>" es una función definida por el usuario, es probable que el mensaje indique un problema de uno de los argumentos o del resultado de la función.
Corrija el problema y vuelva a intentarlo.
sqlcode: -439
sqlstate: 428A0
SQL0440N | No se ha encontrado ninguna función con el nombre "<nombre-función>" que tenga argumentos compatibles en la vía de acceso de función. |
Explicación: Esto sucede en una referencia a la función "<nombre-función>", donde "<nombre-función>" puede hacer referencia a un método, cuando el gestor de bases de datos no puede encontrar ninguna función o método que pueda utilizar para implantar la referencia. Esto puede suceder por varias razones:
Respuesta del usuario: Corrija el problema y vuelva a intentarlo. Ello podría significar acceder al catálogo, cambiar la sentencia, añadir nuevas funciones y/o cambiar la vía de acceso de la función.
sqlcode: -440
sqlstate: 42884
SQL0441N | Utilización no válida de la palabra clave DISTINCT o ALL con la función "<nombre-función>". |
Explicación: Existen varias causas posibles.
Respuesta del usuario:
Corrija el error y vuelva a intentarlo.
sqlcode: -441
sqlstate: 42601
SQL0442N | Error al hacer referencia a la rutina "<nombre-rutina>". Se ha superado el número máximo de argumentos permisibles (90). |
Explicación: Se han especificado demasiados argumentos en la referencia a la rutina "<nombre-rutina>". El número máximo permitido es 90.
Respuesta del usuario: Corrija la sentencia asegurándose de que utiliza el número correcto de argumentos y vuelva a intentarlo.
sqlcode: -442
sqlstate: 54023
SQL0443N | La rutina "<nombre-rutina>" (nombre específico "<nombre-específico>") ha devuelto un error SQLSTATE con el texto de diagnóstico "<texto>". |
Explicación: La rutina "<nombre-rutina>" (nombre específico "<nombre-específico>"), ha devuelto a DB2 un SQLSTATE del tipo 38xxx junto con el texto de mensaje "<texto>". La rutina puede ser una función definida por el usuario o un método definido por el usuario.
Respuesta del usuario: El usuario deberá comprender el significado del error. Póngase en contacto con el Administrador de bases de datos o con el autor de la rutina.
Todos los errores detectados por las funciones suministradas por IBM en el esquema SYSFUN devuelven SQLSTATE 38552. El texto del mensaje tiene este formato:
SYSFUN:nn
donde nn es un código de razón que significa:
sqlcode: -443
sqlstate: 38xxx (el SQLSTATE devuelto por la rutina).
SQL0444N | La rutina "<nombre-rutina>" (nombre específico "<nombre-específico>" se implementa con código en la biblioteca o vía de acceso "<biblioteca-o-vía-de-acceso>", de la función "<id-código-función>" a la que no puede accederse. Código de razón: "<código>". |
Explicación: El DBMS está intentando acceder al cuerpo del código que implementa la rutina "<nombre-rutina>" (nombre específico "<nombre-específico>") y no puede acceder al mismo por la razón indicada por el código de razón "<código>" (los códigos se listan abajo). El archivo que implementa la función se identifica por "<biblioteca-o-vía de acceso>" y la función por el "<id-código-función>".
(Tenga en cuenta que estos dos últimos símbolos pueden aparecer truncados debido a las limitaciones en la longitud total de símbolos que se pueden suministrar. Si eso sucede, puede ser necesario acceder a la definición de la rutina en los catálogos para poder determinar la biblioteca y vía de acceso completa y el id de código de función definidos para la rutina.)
Respuesta del usuario: Códigos de razón:
En OS/2 este código de razón puede surgir si el nombre de DLL de UDF es más largo que el formato (8.3). Por ejemplo el nombre "abcdefgh99.dll" tiene el formato (10.3) y daría como resultado este mensaje con el código de razón 4. La solución es cambiar el nombre por un formato aceptable, por ejemplo, "abcdef99.dll".
Aparte de lo anteriormente mencionado, se puede obtener este código de razón si la rutina necesita una biblioteca compartida o una DLL y si no se puede localizar la biblioteca compartida (utilizando la concatenación de directorios especificados en la variable de entorno LIBPATH en sistemas basados en el sistema UNIX, la variable de entorno PATH en sistemas INTEL). Pueden haber múltiples niveles de esta falta de dirección que lleven a este código de razón. Por ejemplo, se puede buscar la rutina cuerpo X y necesita la biblioteca compartida Y que también se puede buscar. Pero Y necesita a Z y no se puede localizar Z, lo que da como resultado SQL0444N código de razón 4.
Si no se puede diagnosticar el error utilizando la información de este mensaje, el archivo de anotaciones cronológicas de diagnóstico db2diag.log contiene información sobre anomalías que puede ser de ayuda para identificar el problema. Puede que sea necesario ponerse en contacto con el administrador del sistema para solicitar ayuda.
Usuarios del sistema federado: Si la función definida por el usuario es una plantilla de función (y, por lo tanto, no es necesario que ningún código resida en el servidor federado), es aconsejable considerar la modificación de la sentencia de SQL o las estadísticas para permitir que esta función se evalúe en la fuente de datos remota.
sqlcode: -444
sqlstate: 42724
SQL0445W | Se ha truncado el valor "<valor>". |
Explicación: Una función de conversión (incorporada) o de ajuste del sistema ha truncado el valor "<valor>", la cual se ha llamado para transformar de alguna manera el valor. Esta es una situación de aviso.
El valor que se transforma es la salida de una rutina (función definida por el usuario (UDF) o método) y se transforma debido a una especificación CAST FROM en la definición de la rutina o porque la UDF es origen en otra función y se necesita el resultado para que se pueda transformar.
Respuesta del usuario: Asegúrese de que la salida es tal como se esperaba y de que el truncamiento no ha tenido ninguna consecuencia inesperada.
sqlcode: +445
sqlstate: 01004
SQL0447W | La sentencia contiene especificaciones redundantes que implican la cláusula "<cláusula>". |
Explicación: La palabra clave "<cláusula>" se ha incluido más de una vez en la sentencia. Esta es una condición de aviso.
Respuesta del usuario: Si la redundancia es intencionada o si no se detecta que cause ninguna consecuencia no deseada, no es necesaria ninguna respuesta. El tipo de "consecuencia no deseada" a la que se alude incluye, por ejemplo, la omisión de alguna otra palabra clave deseada.
sqlcode: +447
sqlstate: 01589
SQL0448N | Error al definir la rutina "<nombre-rutina>". Se ha superado el número máximo de parámetros permisibles (90 para funciones definidas por el usuario y métodos / 32767 para procedimientos almacenados). |
Explicación: Se han especificado demasiados parámetro al definir la rutina "<nombre-rutina>". La sentencia de definición de la rutina puede ser CREATE FUNCTION, CREATE PROCEDURE, CREATE TYPE (definición de método) o ALTER TYPE (definición de método).
Respuesta del usuario: Modifique la sentencia para que incluya menos parámetros.
sqlcode: -448
sqlstate: 54023
SQL0449N | La sentencia que define la rutina "<nombre-rutina>" contiene una identificación de biblioteca/función con formato no válido en la cláusula EXTERNAL NAME. |
Explicación: Se ha encontrado un error en la cláusula EXTERNAL NAME de la sentencia CREATE para la función definida por el usuario (UDF), método definido por el usuario o procedimiento almacenado "<nombre-rutina>". Las normas para la identificación de biblioteca/función son las siguientes:
El nombre toma el formato '<a>!<b>' o '<a>'. No se permiten blancos dentro de las comillas simples. <a> es uno de los siguientes:
Si se omite <b>, el valor por omisión es el punto de entrada definido cuando se ha enlazado el archivo mencionado. Si <b> está presente, identifica el punto de entrada (función) dentro de <a> que se invocará como el cuerpo de la rutina.
Respuesta del usuario: Corrija el problema y vuelva a intentarlo. Una de las causas posibles en la inclusión de un blanco o la inclusión de '!' al principio o al final del nombre.
sqlcode: -449
sqlstate: 42878
SQL0450N | La rutina "<nombre-rutina>" (nombre específico "<nombre-específico>") ha generado un valor de resultado, valor SQLSTATE, el texto de mensaje o un bloc de trabajo que es demasiado largo. |
Explicación: En la devolución de una rutina "<nombre-rutina>" (nombre específico "<nombre-específico>"), DB2 ha detectado que se han devuelto más bytes de los que se han asignado para:
La definición del argumento de resultado en la rutina debe ajustarse al requisito del tipo de datos. Consulte el manual Application Development Guide para obtener más información.
Esto no está permitido.
Este error también será devuelto si la rutina altera el campo longitud del bloc de trabajo.
Respuesta del usuario: Póngase en contacto con el Administrador de bases de datos o con el autor de la rutina.
sqlcode: -450
sqlstate: 39501
SQL0451N | La definición "<elemento-datos>", en la sentencia que define la rutina "<nombre-rutina>", contiene un tipo de datos "<tipo>" que no es correcto para una rutina sin fuente escrita en el lenguaje dado. |
Explicación: Se ha cometido un error en la parte "<elemento-datos>" de la sentencia que definía la rutina "<nombre-rutina>". La sentencia del usuario contenía el tipo no válido "<tipo>" o contenía un tipo definido por el usuario (UDT) que se basa en el tipo no válido "<tipo>". La definición de la rutina puede ser CREATE FUNCTION, CREATE PROCEDURE, CREATE TYPE (definición de método) o ALTER TYPE (definición de método).
"<elemento-datos>" es un símbolo que identifica el área del problema en la sentencia. Por ejemplo, "PARAMETER 2", "RETURNS" o "CAST FROM".
Respuesta del usuario: Averigüe en cuál de las situaciones se encuentra y siga la acción correctiva. Acciones correctivas posibles:
sqlcode: -451
sqlstate: 42815
SQL0452N | No se puede acceder al archivo al que hace referencia la variable de sistema principal "<posición-variable>". Código de razón: "<código-razón>". |
Explicación: Se ha encontrado un error al intentar acceder o mientras se accedía al archivo al que hace referencia la variable enésima del sistema principal, donde n = "<posición-variable>", por la razón indicada por "<código-razón>". <posición-variable> se establece en 0 si no se ha podido determinar la posición de la variable del sistema principal. Los códigos de razón posibles son los siguientes:
SQL_FILE_READ -leer de un archivo existente SQL_FILE_CREATE -crear un archivo nuevo para grabar SQL_FILE_OVERWRITE -sobregrabar un archivo existente. Si el archivo no existe, crearlo. SQL_FILE_APPEND -añadir a un archivo existente. Si el archivo no existe, crearlo.
Respuesta del usuario:
Para el código de razón 01, corrija la longitud del nombre del archivo, el nombre del archivo y/o la vía de acceso.
Para el código de razón 02, especifique una opción de archivo válida.
Para el código de razón 03, asegúrese de que el archivo especificado existe antes de intentar acceder al mismo.
Para el código de razón 04, suprima el archivo si ya no lo necesita o especifique un nombre de archivo que no exista actualmente.
Para el código de razón 05, asegúrese de que el usuario tiene acceso (corrija los permisos de archivo) al archivo.
Para el código de razón 06, utilice otro archivo o, si debe acceder al archivo, modifique la aplicación para asegurarse de que no se accede al archivo simultáneamente.
Para el código de razón 07, suprima los archivos que ya no necesite para liberar espacio de disco o especifique un archivo que resida en otro sistema de archivos/unidades con suficiente espacio de disco. Asimismo, cerciórese de que el sistema operativo o el tamaño del archivo del usuario no haya alcanzado el límite permitido. Si la página de códigos de la aplicación utiliza un esquema de codificación de múltiples bytes, es posible que sólo se grabara la parte del último carácter, compruebe que el archivo sólo contiene caracteres con formato completo.
Para el código de razón 08, si hay que utilizar un archivo como entrada, asegúrese de que no se modifica el archivo antes de que se haya terminado de leer.
Para el código de razón 09, corrija todos los errores del soporte de almacenamiento en el que reside el archivo.
Para el código de razón 10, compruebe que el archivo contiene caracteres válidos de múltiples bytes basados en la página de códigos de la aplicación, o bien someta la solicitud mientras se esté ejecutando con la misma página de códigos que el contenido del archivo.
Para el código de razón 11, asegúrese de que se ha instalado el soporte de conversión entre la página de códigos del archivo, por ejemplo, EUC japonés y la página de códigos de gráficos de la aplicación, por ejemplo, UCS-2.
sqlcode: -452
sqlstate: 428A1
SQL0453N | Se ha identificado un problema con la cláusula RETURNS de la sentencia que define la rutina "<nombre-rutina>". |
Explicación: Se ha identificado un problema de conversión de la rutina "<nombre-rutina>". El tipo de datos CAST FROM no se puede convertir en el tipo de datos RETURNS, aunque debería ser posible. Consulte el manual Consulta de SQL para obtener detalles de la conversión entre tipos de datos.
Respuesta del usuario: Cambie la cláusula RETURNS o CAST FROM para que el tipo de datos CAST FROM se pueda convertir en el tipo de datos RETURNS.
sqlcode: -453
sqlstate: 42880
SQL0454N | La signatura especificada en la definición para la rutina "<nombre-rutina>" coincide con la de alguna otra rutina que también existe en el esquema o para el tipo. |
Explicación: La signatura de una función consta del nombre de función, el número de parámetros definidos para la función y una lista clasificada de los tipos de parámetros (sin relación con ninguno de los parámetros de los tipos).
La signatura de un método consta del nombre del método, el tipo de tema del método, el número de parámetros definidos para el método y una lista clasificada de los tipos de parámetros (sin relación con ninguno de los parámetros de los tipos).
La signatura de un procedimiento consta del nombre de procedimiento y del número de parámetros definidos para el procedimiento (los tipos de datos no se tienen en cuenta).
En este caso:
No se puede procesar la sentencia.
Respuesta del usuario: Averigüe si la rutina existente ya cumple la función deseada. Si no lo hace, la signatura de la rutina tendrá que modificarse, por ejemplo, cambiando el nombre de la rutina.
sqlcode: -454
sqlstate: 42723
SQL0455N | En la rutina "<nombre-rutina>", el nombre de esquema "<nombre-esquema1>" proporcionado por el nombre SPECIFIC no coincide con el nombre de esquema "<nombre-esquema2>" de la rutina. |
Explicación: Si el nombre SPECIFIC se especifica como un nombre de dos partes, la porción "<nombre-esquema1>" debe ser igual a la porción "<nombre-esquema2>" del "<nombre-rutina>". Tenga en cuenta que la porción "<nombre-esquema2>" de "<nombre-rutina>" puede haberse especificado directamente o puede haber tomado por omisión el ID de autorización de la sentencia. Si la rutina es un método, "<nombre-esquema>" hace referencia al nombre del esquema del tipo de tema del método.
Respuesta del usuario: Corrija la sentencia y vuelva a intentarlo.
sqlcode: -455
sqlstate: 42882
SQL0456N | En la definición de la rutina "<nombre-rutina>", el nombre SPECIFIC "<nombre-específico>" ya existe en el esquema. |
Explicación: El usuario ha suministrado un nombre SPECIFIC explícito "<nombre-específico>" en la definición de la rutina "<nombre-rutina>", pero este nombre ya existe como el nombre SPECIFIC de una función, método o procedimiento del esquema.
Respuesta del usuario: Elija un nuevo nombre SPECIFIC y vuelva a intentarlo.
sqlcode: -456
sqlstate: 42710
SQL0457N | Una función, un método, un tipo de datos definido por el usuario o un atributo de tipo de datos estructurados no se puede llamar "<nombre>" porque está reservado para uso del sistema. |
Explicación: No puede crearse la función definida por el usuario, el método o el tipo de datos definidos por el usuario porque un nombre especificado está reservado para el uso del sistema. Los nombres que no pueden utilizarse para los nombres de función, nombres de tipo diferenciado, nombres de tipo estructurado ni nombres de atributo son:
"=","<",">",">=","<=","&=","&>",,"&<", "!=","!>","!<","<>", SOME, ANY, ALL, NOT, AND, OR, BETWEEN, NULL, LIKE, EXISTS, IN, UNIQUE, OVERLAPS, SIMILAR y MATCH.
Respuesta del usuario: Seleccione un nombre para la función, método, tipo de datos definidos por el usuario o atributo de tipo de datos estructurados que no esté reservado para que lo utilice el sistema.
sqlcode: -457
sqlstate: 42939
SQL0458N | En una referencia a la rutina "<nombre-rutina>" realizada por la signatura, no se ha encontrado ninguna rutina coincidente. |
Explicación: En una referencia realizada a la función, método o procedimiento almacenado "<nombre-rutina>" por la signatura, no se ha podido encontrar ninguna función, ni método ni procedimiento almacenado coincidente.
Si se usa un tipo de datos que puede aceptar un parámetro, el tipo de parámetro es opcional. Por ejemplo, para CHAR(12), se puede especificar el parámetro (CHAR(12) u omitirlo (CHAR()). Si especifica el parámetro, el DBMS sólo aceptará una coincidencia exacta en el tipo de datos Y el parámetro del tipo de datos. Si omite el parámetro, DBMS aceptará una coincidencia sólo en el tipo de datos. La sintaxis de CHAR() proporciona un modo de decir a DBMS que ignore los parámetros de tipo de datos al buscar una función coincidente.
Tenga también en cuenta que en las sentencias DROP FUNCTION/PROCEDURE y COMMENT ON FUNCTION/PROCEDURE, una referencia no calificada se califica con el ID de autorización de la sentencia, y este es el esquema en que se puede encontrar el problema. En la cláusula SOURCE de una función CREATE, la calificación procede de la vía de acceso actual de la función. En este caso, no hay una función correspondiente en toda la vía de acceso.
Una función no se puede originar en las funciones incorporadas COALESCE, NULLIF, NODENUMBER, PARTITION, RAISE_ERROR, TYPE_ID, TYPE_NAME, TYPE_SCHEMA o VALUE.
No se puede procesar la sentencia.
Respuesta del usuario: Respuestas posibles:
sqlcode: -458
sqlstate: 42883
SQL0461N | Un valor con el tipo de datos "<tipo-datos-fuente>" no se puede convertir (CAST) en el tipo "<tipo-datos-destino>". |
Explicación: La sentencia contiene una operación CAST cuyo primer operando tiene el tipo de datos "<tipo-datos-fuente>" que se ha de convertir en el tipo de datos "<tipo-datos-destino>". No se soporta esta conversión.
Respuesta del usuario: Cambie el tipo de datos fuente o destino para que se de soporte a la conversión. Dicha operación está documentada en la Consulta de SQL para tipos de datos predefinidos. Para una conversión que incluya un tipo de datos diferenciado definido por el usuario, la conversión se puede efectuar entre el tipo de datos base y el tipo diferenciado definido por el usuario, o bien desde el tipo de datos promocionable al tipo de datos base y al tipo de datos diferenciado definido por el usuario.
sqlcode: -461
sqlstate: 42846
SQL0462W | La rutina "<nombre-rutina>" (nombre específico "<nombre-específico>") ha devuelto un SQLSTATE de aviso, con el texto de diagnóstico "<texto>". |
Explicación: La rutina "<nombre-rutina>" (nombre específico "<nombre-específico>"), ha devuelto a DB2 un SQLSTATE del tipo 01Hxx junto con el texto de mensaje "<texto>".
Respuesta del usuario: El usuario deberá comprender el significado del aviso. Póngase en contacto con el administrador de bases de datos o con el autor de la rutina.
sqlcode: +462
sqlstate: 01Hxx
SQL0463N | La rutina "<nombre-rutina>" (nombre específico "<nombre-específico>") ha devuelto el SQLSTATE "<estado>" no válido, con el texto de diagnóstico "<texto>". |
Explicación: Los SQLSTATE válidos que puede devolver una rutina son 38xxx (error), 38502 (error) y 01Hxx (aviso). Esta rutina "<nombre-rutina>" (nombre específico "<nombre-específico>") ha devuelto el SQLSTATE "<estado>" no válido, junto con el texto de mensaje "<texto>". La rutina tiene un error.
Respuesta del usuario: Hay que corregir la rutina. Póngase en contacto con el administrador de bases de datos o con el autor de la rutina. Puede obtener el significado de aplicación del SQLSTATE erróneo del autor de la rutina.
sqlcode: -463
sqlstate: 39001
SQL0464W | El procedimiento "<proc>" ha devuelto "<número>" grupos de resultados de consultas, lo que excede el límite definido "<entero>". |
Explicación: El procedimiento almacenado mencionado por proc se ha completado normalmente. Sin embargo, el procedimiento almacenado ha excedido el límite definido en el número de grupos de resultados de consultas que el procedimiento puede devolver.
Las causas posibles son las siguientes: El procedimiento almacenado no puede devolver el número de grupos de resultados debido a las limitaciones de DRDA impuestas por el cliente. El cliente DRDA establece este límite con el elemento de código MAXRSLCNT DDM.
Respuesta del usuario: La sentencia de SQL es satisfactoria. El campo SQLWARN9 se establece en 'Z'.
sqlcode: +464
sqlstate: 0100E
SQL0465N | No se puede iniciar, inicializar o establecer comunicación con un proceso en modalidad protegida. Código de razón "<código>". |
Explicación: Hay un problema relacionado con el sistema que afecta a la ejecución de una rutina en modalidad protegida (método o función definida por el usuario). La naturaleza exacta del problema viene indicada por "<código>". NO es un problema del usuario. Los códigos de razón posibles son:
Errores de proceso de la rutina
Errores del proceso agente
Respuesta del usuario: Póngase en contacto con el administrador de la base de datos o con el administrador del sistema.
sqlcode: -465
sqlstate: 58032
SQL0466W | El procedimiento "<nombre-procedimiento>" devuelve el conjunto de resultados "<número-resultados>" del procedimiento almacenado. |
Explicación: Este mensaje se genera como resultado de emitir una sentencia CALL de SQL. Indica que el procedimiento almacenado "<nombre-procedimiento>" tiene el conjunto de resultado "<número-resultados>" asociado con él.
La sentencia ha terminado satisfactoriamente.
Respuesta del usuario: No se requiere ninguna acción.
sqlcode: +466
sqlstate: 0100C
SQL0467W | El procedimiento "<nombre-procedimiento>" incluye otro conjunto de resultados. Hay un total de "<número-resultados>" conjuntos de resultados. |
Explicación: Este mensaje se genera como resultado de cerrar un cursor. Indica que existe otro conjunto de resultados para un procedimiento almacenado "<nombre-procedimiento>" y que el cursor se volvió a abrir en el siguiente conjunto de resultados. Hay un total de "<número-resultados>" conjuntos de resultados del procedimiento almacenado.
La sentencia ha terminado satisfactoriamente.
Respuesta del usuario: No se requiere ninguna acción. Las búsquedas y cargas se pueden realizar en el siguiente conjunto de resultados.
sqlcode: +467
sqlstate: 0100D
SQL0469N | La modalidad del parámetro (IN, OUT o INOUT) no es válida para un parámetro en el procedimiento "<nombre-procedimiento>" con el nombre específico "<nombre-específico>" (número de parámetro "<número>", nombre "<nombre-parámetro>"). |
Explicación: Se ha producido uno de los errores siguientes:
Respuesta del usuario: Modifique el atributo del parámetro a INOUT o modifique el uso del parámetro dentro del procedimiento.
sqlcode: -469
sqlstate: 42886
SQL0470N | La rutina definida por el usuario "<nombre-rutina>" (nombre específico "<nombre-específico>") tiene un valor nulo para el argumento "<argumento>" que no ha podido pasarse. |
Explicación: Una rutina tiene un argumento de entrada con un valor nulo pero se ha definido con un estilo de parámetro que no pasa indicadores nulos o el tipo de datos de este parámetro no da soporte a valores nulos.
Respuesta del usuario: Si la rutina se debe llamar con valores nulos, asegúrese de que el estilo de parámetro y los tipos de entrada pueden aceptar un valor nulo. En el caso de funciones, la función también se puede crear con "RETURNS NULL ON NULL INPUT".
sqlcode: -470
sqlstate: 39004
SQL0471N | Ha fallado la invocación de la rutina "<nombre>" debido a la razón "<código-razón>". |
Explicación: Se invocó una rutina "<nombre>" en DB2 Universal Database para el servidor OS/390. La invocación de la rutina falló debido a la condición descrita por el código de razón de DB2 "<código-razón>".
No se puede ejecutar la sentencia. Quizá se visualice un mensaje DSNX9xx describiendo el error en la consola del sistema de MVS.
Respuesta del usuario: Consulte la documentación de DB2 Universal Database para el servidor OS/390 y corrija la condición que se describe con el código de razón de DB2.
sqlcode: -471
sqlstate: 55023
SQL0473N | No se puede crear un tipo de datos definido por el usuario que tenga el mismo nombre que el tipo predefinido por el sistema. |
Explicación: Se ha intentado crear un tipo de datos y se le ha otorgado un nombre calificado igual a uno de los tipos de datos predefinidos por el sistema o bien el tipo de datos BOOLEAN. Esto no está permitido. La adición de delimitadores no valida el nombre.
No se ha podido procesar la sentencia.
Respuesta del usuario: Corrija la sentencia para que utilice otro identificador.
sqlcode: -473
sqlstate: 42918
SQL0475N | El tipo resultante "<tipo-1>" de la función SOURCE no puede convertirse al tipo RETURNS "<tipo-2>" de la función definida por el usuario "<nombre-función>". |
Explicación: Para que la sentencia CREATE de una función definida por el usuario (UDF) sea válida, el tipo resultante ("<tipo-1>") de la función origen debe poderse convertir al tipo RETURNS ("<tipo-2>") de la función que se está creando. No se da soporte a ninguna conversión entre estos tipos de datos. Consulte el manual Consulta de SQL para obtener detalles de la conversión entre tipos de datos.
Respuesta del usuario: Cambie el tipo de datos RETURNS o la identificación de función SOURCE de modo que el tipo de resultado de la función SOURCE se pueda convertir en el tipo de datos RETURNS.
sqlcode: -475
sqlstate: 42866
SQL0476N | Se ha efectuado una referencia a la rutina "<nombre-función>" sin ninguna signatura, pero la rutina no es exclusiva en su esquema. |
Explicación: Se permiten las referencias a una función o procedimiento almacenado sin una signatura, pero la función o procedimiento almacenado "<nombre-función>" mencionado debe ser exclusivo en su esquema y no lo es. Si la rutina es un método, se permite una referencia sin una signatura pero este método nombrado debe ser exclusivo para el tipo de datos.
Tenga en cuenta que en las sentencias DROP FUNCTION/PROCEDURE y COMMENT ON FUNCTION/PROCEDURE, una referencia no calificada se califica con el ID de autorización de la sentencia, lo que constituye el esquema en el que se encuentra el problema. En la cláusula SOURCE de CREATE FUNCTION, la calificación se obtiene de la vía de acceso de función actual. En este caso, el primer esquema de la vía de acceso que contenía una función con este nombre tenía otras funciones con el mismo nombre.
Usuarios del sistema federado: Para una sesión de paso a través, si la sentencia es una sentencia CREATE FUNCTION MAPPING, este error indica que se ha intentado crear una correlación de funciones desde una función remota para más de una función local.
Respuesta del usuario: Corrija la referencia de una de las siguientes formas:
y vuelva a intentarlo.
sqlcode: -476
sqlstate: 42725
SQL0478N | El tipo de objeto "<tipo-objeto1>" no se puede eliminar porque hay un objeto "<nombre-objeto>" del tipo "<tipo-objeto2>", que depende del mismo. |
Explicación: El objeto base, que es un objeto de tipo "<tipo-objeto1>" no se puede eliminar porque otro objeto depende de él. Existe una dependencia restrictiva definida con objetos de tipo "<tipo-objeto2>" (de la cual el objeto "<nombre-objeto>" es un ejemplo).
Es posible que la dependencia sea indirecta. Es decir, es posible que el objeto mencionado dependa de otro objeto que a su vez dependa del objeto que se va a eliminar.
Por ejemplo:
Respuesta del usuario: No descarte este objeto o descarte primero los objetos dependientes.
sqlcode: -478
sqlstate: 42893
SQL0480N | El procedimiento "<nombre-procedimiento>" todavía no se ha llamado. |
Explicación: El procedimiento identificado en una sentencia ASSOCIATE LOCATORS todavía no se ha llamado dentro del proceso de aplicación o el procedimiento se ha llamado, pero se ha producido una confirmación explícita o implícita antes de la sentencia.
Respuesta del usuario: Corrija las sentencias de modo que la sintaxis exacta usada para especificar el nombre del procedimiento en la sentencia CALL sea la misma que la de la sentencia ASSOCIATE LOCATORS. Si se usa un nombre no cualificado para llamar (CALL) al procedimiento, el nombre de una parte también se debe usar en las demás sentencias. Vuelva a emitir las sentencias.
sqlcode: -0480
sqlstate: 51030
SQL0481N | La cláusula GROUP BY contiene el "<elemento 1>" anidado en el "<elemento 2>". |
Explicación: Los tipos de anidamiento que no se permiten en la cláusula GROUP BY son los siguientes:
donde GEL representa el elemento que aparece como lista de expresión de agrupamiento en el diagrama de sintaxis de la cláusula GROUP BY.
En algunas instancias, aparecerá el valor "---" para el "<elemento 2>". En este caso "---" representa CUBE, ROLLUP, GROUPING SET o GEL.
No se puede procesar la sentencia.
Respuesta del usuario: Modifique la cláusula GROUP BY para eliminar el anidamiento.
sqlcode: -481
sqlstate: 428B0
SQL0483N | En la sentencia CREATE para la sentencia de la función definida por el usuario "<nombre-función>", el número de parámetros no coincide con el número de parámetros de la función SOURCE. |
Explicación: Se está intentando crear (CREATE) una función definida por el usuario "<nombre-función>" que tiene su origen en otra función. Se ha identificado una de las siguientes situaciones:
Respuesta del usuario: El número de parámetros de la función SOURCE y de la función que se va a crear debe ser igual. Hay que cambiar la identificación de la función SOURCE para
También es posible que sea necesario corregir la vía de acceso de la función para que se corrija la resolución de la función.
sqlcode: -483
sqlstate: 42885
SQL0486N | En este momento, el tipo de datos BOOLEAN sólo se soporta internamente. |
Explicación: Uno o más de los tipos de datos de la sentencia es BOOLEAN. No se le da soporte en la versión actual de DB2.
Respuesta del usuario: Cambie el(los) tipo(s) de datos y vuelva a someter la sentencia.
sqlcode: -486
sqlstate: 42991
SQL0487N | La rutina "<nombre-rutina>" (nombre específico "<nombre-específico>") ha intentando ejecutar una sentencia de SQL. |
Explicación: El programa utilizado para implementar el cuerpo de una rutina no tiene permitido ejecutar sentencias de SQL. Esta rutina "<nombre-rutina>" (nombre específico "<nombre-específico>") contiene sentencias de SQL.
Respuesta del usuario: Elimine las sentencias de SQL y vuelva a compilar el programa. Investigue el nivel de SQL permitido, como se especifica en la sentencia que define a la rutina.
sqlcode: -487
sqlstate: 38001
SQL0489N | La función "<nombre-función>" de un elemento de lista SELECT o VALUES ha producido un resultado BOOLEAN. |
Explicación: La función "<nombre-función>" está definida para ser utilizada como un predicado, que devuelve un resultado booleano. Dicho resultado no es válido en una lista de selección.
No se puede procesar la sentencia.
Respuesta del usuario: Corrija el nombre de la función o elimine el uso de la misma.
sqlcode: -489
sqlstate: 42844
SQL0491N | La definición de la rutina "<nombre-rutina>" debe tener una cláusula RETURNS y, o bien la cláusula EXTERNAL (con otras palabras clave necesarias), o bien la sentencia RETURN o bien la cláusula SOURCE. |
Explicación: Falta una cláusula necesaria en la definición de la rutina "<nombre-rutina>". Si se ha especificado EXTERNAL, debe especificarse también lo siguiente: LANGUAGE, PARAMETER STYLE, DETERMINISTIC o NOT DETERMINISTIC, NO SQL y EXTERNAL ACTION o NO EXTERNAL ACTION.
Respuesta del usuario: Añada la cláusula que falta y vuelva a intentarlo.
sqlcode: -491
sqlstate: 42601
SQL0492N | Existe un problema en la sentencia CREATE para la función definida por el usuario "<nombre-función>", con el número de parámetros "<número>". Se puede producir un discrepancia con una función SOURCE. |
Explicación: El parámetro de la posición "<número>" de la función "<nombre-función>" es erróneo y no se puede realizar la sentencia CREATE. El parámetro de la posición "<número>" de la función de origen no se puede convertir al parámetro correspondiente de la función que se está creando.
Respuesta del usuario: Posibles correcciones:
sqlcode: -492
sqlstate: 42879
SQL0493N | La rutina "<nombre-rutina>" (nombre específico "<nombre-específico>") ha devuelto un valor de fecha, hora o indicación de la hora que no es correcto sintáctica o numéricamente. |
Explicación: El cuerpo de la función definida por el usuario (UDF) "<nombre-rutina>" (nombre específico "<nombre-específico>") ha devuelto un valor no válido de fecha, hora o indicación de la hora.
Un ejemplo de una fecha sintácticamente no válida es '1994-12*25': el '*' debería ser un '-'. Un ejemplo de una hora numéricamente no válida es '11.71.22': una hora no puede tener el minuto 71.
Respuesta del usuario: La rutina se tiene que arreglar. Póngase en contacto con el administrador de bases de datos (DBA) o con el autor de la rutina.
sqlcode: -493
sqlstate: 22007
SQL0495N | El coste estimado de procesador de "<cantidad-estimada1>" segundos de procesador ("<cantidad-estimada2>" unidades de servicio) en la categoría de coste "<categoría-coste>" sobrepasa el umbral de error del límite del recurso de "<cantidad-límite>" unidades de servicio. |
Explicación:
La preparación de una sentencia de SQL dinámica INSERT, UPDATE, DELETE o SELECT ha dado como resultado la estimación de un coste que ha sobrepasado el valor de umbral de error indicado en la tabla de especificación de límites de recursos (RLST).
También se emite este error si el valor de categoría de coste de DB2 es "B" y la acción por omisión especificada en la columna RLF_CATEGORY_B de la RLST es de emitir un error.
La preparación de la sentencia dinámica INSERT, UPDATE, DELETE o SELECT no ha sido satisfactoria.
Respuesta del usuario: Si se ha devuelto este SQLCODE porque el valor de categoría de coste es "B", puede ser que la sentencia utilice marcadores de parámetro o que no estén disponibles determinadas estadísticas para las tablas y columnas referidas. Asegúrese de que el administrador haya ejecutado el programa de utilidad RUNSTATS para las tablas referidas. También es posible que se invoquen UDF cuando se ejecute la sentencia, o, en el caso de las sentencias INSERT, UPDATE o DELETE, que se definan activadores en la tabla modificada. Compruebe si esta sentencia se encuentra en la DSN_STATEMNT_TABLE o en el registro IFCID 22 con el fin de averiguar las razones por las que dicha sentencia de SQL se ha colocado en la categoría de coste "B". Si no puede modificarse el programa o no pueden obtenerse estadísticas, solicite al administrador el cambio del valor de la columna RLF_CATEGORY_B de la RLST por "Y", que permite que se ejecute la sentencia, o "W", que devuelve un aviso en lugar de un error.
Si el aviso es debido a una sentencia de SQL que va a causar un excesivo consumo del recurso del procesador, intente volver a escribirla para que pueda rendir de una manera más eficiente. Otra opción es solicitar al administrador el aumento del valor de umbral de error de la RLST.
sqlcode: -495
sqlstate: 57051
SQL0499N | El cursor "<nombre-cursor>" ya se ha asignado a este o a otro grupo de resultados del procedimiento "<nombre-procedimiento>". |
Explicación: Se ha intentado asignar un cursor a un grupo de resultados pero se han asignado múltiples cursores para el procedimiento "<nombre-procedimiento>".
Respuesta del usuario: Determine si el juego de resultados de destino se había asignado anteriormente a un cursor. Si se han asignado múltiples cursores para el procedimiento "<nombre-procedimiento>" asegúrese de que sólo se utiliza un cursor para procesar los grupos de resultados de un procedimiento almacenado.
sqlcode: -499
sqlstate: 24516