Consulta de mensajes

SQL0800 - SQL0899

SQL0801NSe ha intentado realizar una división por cero.

Explicación: El proceso de una función de columna o de una expresión aritmética ha dado como resultado una división por cero.

No se puede procesar la sentencia. Para las sentencias INSERT, UPDATE o DELETE, no se realiza ninguna inserción ni actualización.

Respuesta del usuario: Revise la sentencia de SQL para determinar la causa del problema. Si el problema depende de los datos, deberá revisar los datos procesados cuando se produjo el error. Consulte el manual Consulta de SQL para ver rangos válidos para los tipos de datos.

Usuarios del sistema federado: Revise la sentencia de SQL para determinar la causa del problema. Si el problema depende de los datos, examine los datos que se estaban procesando en las fuentes de datos cuando se ha producido el error.

sqlcode: -801

sqlstate: 22012

SQL0802NSe ha producido un desbordamiento aritmético u otra excepción aritmética.

Explicación: El proceso de una función de columna o expresión aritmética ha dado como resultado un desbordamiento aritmético.

No se puede procesar la sentencia. Para las sentencias INSERT, UPDATE o DELETE, no se realiza ninguna inserción ni actualización.

Respuesta del usuario: Revise la sentencia de SQL para determinar la causa del problema. Si el problema depende de los datos, deberá revisar los datos procesados cuando se produjo el error. Consulte el manual Consulta de SQL para ver rangos válidos para los tipos de datos.

Puede que este error también se devuelva cuando las funciones de una columna no pueden manejar el valor que la sentencia de SQL devuelve. Por ejemplo, al emitir la sentencia SELECT COUNT frente a una tabla que tiene más filas que las que el límite MAX_LONGINT_INT SQL ha definido producirá error de desbordamiento aritmético. Considere el uso de la función de columna COUNT_BIG para tablas con más de 2 147 483 647 filas.

Usuarios del sistema federado: Revise la sentencia de SQL para determinar la causa del problema. Si el problema depende de los datos, examine los datos que se estaban procesando en las fuentes de datos cuando se ha producido el error. Consulte en el manual Consulta de SQL correspondiente la fuente de datos para determinar los rangos válidos de los tipos de datos.

sqlcode: -802

sqlstate: 22003

SQL0803NUno o varios valores de la sentencia INSERT, la sentencia UPDATE o la actualización de la clave externa originados por una sentencia DELETE no son válidos porque generarían filas duplicadas de una tabla con una clave principal, una clave exclusiva o un índice exclusivo.

Explicación: La tabla de objetos de la sentencia INSERT o UPDATE está restringida por uno o más índices UNIQUE, de modo que debe tener valores exclusivos en ciertas columnas o grupos de columnas. Como alternativa, una sentencia DELETE de una tabla padre ha originado la actualización de una clave externa en una tabla dependiente que estaba restringida por uno o varios índices UNIQUE, de tal manera que tenga valores exclusivos en determinadas columnas o grupos de columnas. La razón por la que existe el índice exclusivo puede ser que da soporte a una restricción de clave principal o una restricción exclusiva definida en la tabla. La consecución de la inserción o actualización solicitada da lugar a la duplicación de los valores de las columnas.

Si el objeto de la sentencia INSERT o UPDATE es una vista, la restricción pesa sobre la tabla en la que está definida la vista.

No se puede procesar la sentencia. No se modifica la tabla.

Respuesta del usuario: Revise las definiciones de todos los índices UNIQUE definidos en la tabla de objetos para determinar las restricciones de exclusividad que imponen dichos índices.

Para una sentencia UPDATE, asegúrese de que la operación especificada no sea incoherente en sí con las restricciones de exclusividad. Si ello no muestra el error, revise el contenido de la tabla de objetos para determinar la causa del problema.

Para una sentencia INSERT, revise el contenido de la tabla de objetos para determinar cuál de los valores de la lista de valores especificada infringe la restricción de exclusividad. Si la sentencia INSERT contiene una subconsulta, para determinar la causa del problema debe compararse el contenido de la tabla de objetos direccionado por la subconsulta y el contenido de la tabla de objetos.

En una sentencia DELETE, revise las tablas dependientes de las restricciones exclusivas en claves externas que estén definidas con la norma ON DELETE SET NULL. Una tabla de este tipo tiene una columna de claves externa incluida en un índice exclusivo que no puede definirse como nulo, puesto que ya hay un valor nulo en la columna para dicha tabla.

Usuarios del sistema federado: identifique el problema en la fuente de datos que impide procesar la petición (consulte el manual Problem Determination Guide para determinar qué fuente de datos impide procesar la sentencia de SQL) y examine las definiciones de índice y los datos sobre las condiciones mencionadas anteriormente.

sqlcode: -803

sqlstate: 23505

SQL0804NLos parámetros de entrada del programa de aplicación de la petición actual no son válidos. El código de razón es "<código-razón>".

Si una variable del sistema principal o SQLVAR de SQLDA no es válida, entonces: variable del sistema principal/número de SQLVAR = "<número-var>", SQLTYPE = "<tipo-sql>", SQLLEN = "<len-sql>", variable del sistema principal/tipo de SQLVAR = "<entrada_o_salida>".

Explicación: Se ha producido un error al procesar la petición actual.

Los códigos de razón se interpretan del modo siguiente:

100
La petición efectuada no recibe soporte o está fuera de contexto.

101
SQLDA.SQLN es menor que SQLDA.SQLD

102
SQLVAR.SQLTYPE no es válido.

Usuarios del sistema federado: Un tipo de datos de los datos que especifico no está soportado por el servidor federado o por la fuente de datos a la que desea acceder.

103
La longitud especificada en SQLVAR.SQLLEN o SQLVAR2.SQLLONGLEN no es correcta para el tipo de SQL suministrado en SQLVAR.SQLTYPE.

104
Se espera la duplicación de SQLVARs, pero el campo SQLDOUBLED de SQLDA.SQLDAID no está establecido en '2'. Puede que esto sea necesario debido a un tipo de objeto grande o a un tipo estructurado.

105
Un objeto grande de caracteres de doble byte tiene un valor impar según indica el puntero SQLVAR2.SQLDATALEN, que siempre es, en términos de bytes, par para los DBCLOB.

106
El puntero SQLDATA no es válido o apunta a un almacenamiento insuficiente.

107
El puntero SQLIND no es válido o apunta a un almacenamiento insuficiente.

108
El puntero SQLDATALEN no es válido o apunta a un almacenamiento insuficiente.

109
Se prevé un número específico de variables del sistema principal de entrada/SQLVARS para la sentencia de SQL actual.

110
El localizador LOB no está asociado con un LOB de un tipo compatible.

111
Un LOB está indicado por el SQLTYPE del SQLVAR, pero el segundo SQLVAR es nulo.

112
El campo SQLDATATYPE NAME no es válido. No se ajusta al formato para identificar a un tipo definido por el usuario que existe en la base de datos. El formato para identificar a un tipo definido por el usuario que existe es como sigue: 8 bytes, seguidos de un periodo, seguido de 18 bytes.

113
El campo SQLFLAG4 NAME no es válido. Si se especifica un tipo estructurado el valor debe ser X'12'. Si se especifica un tipo de referencia el valor deber ser X'01'. De lo contrario, el valor debe ser X'00'.

En sentencias de SQL con variables del lenguaje principal, utilice el número de variable del lenguaje principal para contar desde el principio de la sentencia (o subsentencia, en el caso de SQL compuesto) y así localizar la variable del lenguaje principal no válida. En sentencias que utilizan un SQLDA, se utiliza el número de SQLVAR para localizar la SQLVAR no válida. En un SQLDA de entrada, únicamente cuente las variables del lenguaje principal de entrada o SQLVAR, y del mismo modo para las de salida. Tenga en cuenta que este número se basa en 1.

No se puede procesar la sentencia.

Respuesta del usuario: Revise el programa de aplicación para detectar si tiene anotado algún error. El programador no debería intentar modificar la salida del precompilador.

Usuarios del sistema federado: Si recibe un código de razón 102, especifique un tipo de datos soportado y vuelva a someter el programa.

sqlcode: -804

sqlstate: 07002

SQL0805NNo se encuentra el paquete "<nombre-paquete>".

Explicación: Las causas posibles de que se haya generado este mensaje (SQLCODE) son:

No se puede procesar la sentencia.

Respuesta del usuario: Especifique el nombre del paquete correcto o vincule el programa. Si la aplicación que se ejecuta no está vinculada a la base de datos, póngase en contacto con el administrador de la base de datos para que realice la vinculación necesaria.

Si es preciso volver a vincular los programas de utilidad de DB2 a la base de datos, el administrador de la base de datos puede llevar a cabo este cometido si, estando conectado a la base de datos, emite desde el subdirectorio BND de la instancia uno de los siguientes mandatos CLP:

Usuarios del sistema federado: Asegúrese de que en las fuentes de datos correspondientes se hayan vinculado los paquetes necesarios para servidor federado. Consulte el manual Installation and Configuration Supplement para obtener más información sobre cómo vincular paquetes y fuentes de datos.

sqlcode: -805

sqlstate: 51002

SQL0808NLa semántica de la sentencia CONNECT no es coherente con la de otras conexiones existentes.

Explicación: La sentencia CONNECT se origina en un archivo fuente que se precompiló con unas opciones de conexión diferentes (SQLRULES, tipo CONNECT, SYNCPOINT o tipo RELEASE) de las utilizadas en un archivo fuente para el que existe una conexión.

Respuesta del usuario: Asegúrese de que todos los archivos fuentes se precompilan utilizando las mismas opciones de la sentencia CONNECT o, si esto no es posible, llame a la API SET CLIENT para definir las opciones deseadas para el proceso de aplicación antes de emitir la primera sentencia CONNECT.

sqlcode: -808

sqlstate: 08001

SQL0811NEl resultado de una selección escalar completa, de la sentencia SELECT INTO o de la sentencia VALUES INTO es superior a una fila.

Explicación: Una de las siguientes causas ha originado el error:

Usuarios del sistema federado: Esta situación la puede detectar servidor federado o la fuente de datos.

No se puede procesar la sentencia.

Respuesta del usuario: Asegúrese de que la sentencia contenga las especificaciones de condición adecuadas. Si es así, tal vez haya un problema que está provocando la generación de más de una fila cuando de hecho sólo debiera devolverse una.

Usuarios del sistema federado: identifique el problema en la fuente de datos que impide procesar la petición (consulte el manual Problem Determination Guide para determinar qué fuente de datos no puede procesar la sentencia de SQL) y examine los criterios de selección y los datos correspondientes a este objeto.

sqlcode: -811

sqlstate: 21000

SQL0817NNo se puede ejecutar la sentencia de SQL porque la sentencia daría como resultado una operación de actualización prohibida.

Explicación: La aplicación ha intentado ejecutar una sentencia de SQL que daría como resultado actualizaciones en los datos de usuario o en el catálogo del subsistema. Esto está prohibido por uno de los motivos siguientes:

Estas sentencias de SQL incluyen INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, GRANT y REVOKE.

No se puede ejecutar la sentencia.

Respuesta del usuario: Si la aplicación se ejecuta como una transacción de sólo consulta IMS, consulte al programador del sistema IMS sobre el modo de cambiar el estado de sólo consulta de la transacción bajo la cual se ejecuta la aplicación.

Si la aplicación IMS o CICS intenta una actualización remota, hay que cambiar la aplicación para ejecutarla como una aplicación local en el servidor DBMS o el servidor DBMS debe ampliarse para admitir la confirmación de dos fases.

Si la aplicación intenta actualizar datos en múltiples ubicaciones, hay que cambiar la aplicación o bien hay que ampliar todos los DBMS implicados para que admitan la confirmación de dos fases.

sqlcode: -817

sqlstate: 25000

SQL0818NSe ha producido un conflicto de indicaciones horarias.

Explicación: La indicación horaria que ha generado el precompilador en el momento de la precompilación no coincide con la indicación horaria almacenada con el paquete en el momento de la vinculación.

La causa del problema puede ser:

Usuarios del sistema federado: Además de las causas citadas anteriormente, el problema también puede deberse a que no se vinculan los paquetes en todas las fuentes de datos correspondientes.

No se puede procesar la sentencia.

Respuesta del usuario: Vuelva a vincular la aplicación, utilizando el archivo de vinculación del programa que coincide con el módulo de objeto. O ejecute el programa que corresponde al paquete almacenado en la base de datos.

Si está instalando la base de datos de ejemplo, anote el número y el texto de este mensaje y póngase en contacto con el representante del servicio técnico.

Usuarios del sistema federado: Además de las acciones citadas anteriormente, asegúrese de que se vinculen los paquetes necesarios para servidor federado en las fuentes de datos correspondientes. Consulte el manual Installation and Configuration Supplement para obtener más información sobre cómo vincular paquetes y fuentes de datos.

sqlcode: -818

sqlstate: 51003

SQL0822NEl SQLDA contiene una dirección de datos o una dirección de variable de indicador que no es válida.

Explicación: El programa de aplicación ha colocado una dirección no válida en el SQLDA.

No se puede procesar la sentencia.

Respuesta del usuario: Corrija el programa de aplicación de modo que coloque direcciones válidas en el SQLDA.

sqlcode: -822

sqlstate: 51004

SQL0840NSe han devuelto demasiados elementos en una lista de SELECT.

Explicación: El número de elementos devueltos en la lista de SELECT supera el máximo permitido. La cantidad máxima para las listas SELECT (que no sean expresiones comunes de tablas) es de 1012. La cantidad máxima para las listas SELECT en expresiones comunes de tablas es de 5000.

No se puede procesar la sentencia.

Respuesta del usuario: Averigüe si realmente es necesaria toda la información. (Tenga en cuenta que el número de elementos que se devuelve en una lista de SELECT * en la sentencia de SQL SELECT * desde A, B, C es la suma del número de columnas de las tres tablas.) Si es posible, vuelva a escribir la sentencia de SQL de modo que sólo se devuelvan los elementos de información que necesite. Si toda la información es necesaria, divida la sentencia de SQL en dos o más sentencias.

sqlcode: -840

sqlstate: 54004

SQL0842NLa conexión con el servidor "<nombre-servidor>" ya existe.

Explicación: Está en vigor SQLRULES(STD) y una sentencia CONNECT identifica una conexión de SQL existente.

Respuesta del usuario: La corrección depende del error:

Corrija el error de la aplicación y vuelva a intentarlo.

sqlcode: -842

sqlstate: 08002

SQL0843NEl nombre de servidor no especifica una conexión existente.

Explicación: Una sentencia, mandato o API ha especificado un nombre de servidor que no identifica una conexión de SQL existente del proceso de aplicación.

Esto puede haberse producido al utilizar:

Respuesta del usuario: La corrección depende del error:

Corrija el error de la aplicación y vuelva a intentarlo.

sqlcode: -843

sqlstate: 08003

SQL0846NEspecificación no válida de la columna identidad "<nombre-columna>".

Explicación: Para una sentencia ALTER o CREATE TABLE, la especificación de una columna de identidad puede ser no válida por uno de los motivos siguientes:

No se puede procesar la sentencia.

Respuesta del usuario: Corrija la sintaxis y vuelva a someter la sentencia.

sqlcode: -846

sqlstate: 42815

SQL0859NEl acceso a la Base de datos del Gestor de transacciones ha resultado anómalo con un SQLCODE "<SQLCODE>".

Explicación: La aplicación se ha precompilado con la opción SYNCPOINT(TWOPHASE) y necesita una base de datos del gestor de transacciones que coordine la confirmación de dos fases. Entre las causas por las que la Base de datos del Gestor de transacciones no está disponible se encuentran las siguientes:

Respuesta del usuario: Acciones posibles:

sqlcode: -859

sqlstate: 08502

SQL0863WSe ha establecido una conexión satisfactoria, pero sólo se debe utilizar caracteres de un solo byte.

Explicación: La base de datos del servidor y la aplicación del cliente utilizan páginas de códigos de distintos tipos de idioma, y todos aquellos caracteres que estén fuera del rango ASCII de 7 bits no están garantizados (porque sólo los caracteres del rango ASCII de 7 bits existen en todas las páginas de códigos). Por ejemplo, puede establecerse conexión entre una página de códigos del japonés y otra Latín-1, pero ninguno de los caracteres japoneses estarán disponibles en la página de códigos Latín-1, así que es preciso evitarlos (aunque los caracteres del inglés sí que serían correctos).

Usuarios del sistema federado: Las causas posibles son:

Respuesta del usuario: No envíe sentencias ni mandatos de SQL que utilicen caracteres que no sean comunes entre las páginas de códigos de la aplicación y de la base de datos.

Usuarios del sistema federado: No envíe sentencias ni mandatos de SQL que utilicen caracteres que no sean comunes entre el sistema cliente, el sistema servidor y la fuente de datos.

sqlcode: +863

sqlstate: 01539

SQL0865NEl valor de tm_database no es correcto.

Explicación: La base de datos seleccionada como tm_database en la configuración del gestor de bases de datos no es válida. La base de datos debe estar al nivel DB2 V2.1 o posterior y no puede ser una base de datos a la que se acceda a través de un protocolo DRDA (como por ejemplo DB2 Connect).

No se puede ejecutar la sentencia.

Respuesta del usuario:

  1. Actualice la configuración del gestor de bases de datos para especificar una base de datos válida para el parámetro tm_database.
  2. Emita db2stop y db2start para asegurarse de que el cambio entra en vigor.

sqlcode: -865

sqlstate: 08001

SQL0866NLa redirección de la conexión ha resultado anómala. Código de razón: "<código-razón>"

Explicación: La catalogación de directorio para una base de datos ha hecho que se redireccione una conexión de una forma a la que no se da soporte.

Los códigos de razón posibles son:

01
Una conexión de base de datos implica más de una redirección de un servidor a otro; sólo se da soporte a la redirección de una conexión.

02
Se ha intentado realizar una conexión que implica tanto a un cliente o servidor de la versión actual de DB2 como a un cliente o servidor de la versión 1. Este intento resulta anómalo porque no se da soporte a la redirección con clientes o servidores de la versión 1.

Respuesta del usuario: Las acciones a emprender, según el código de razón, son las siguientes:

01
Vuelva a catalogar la base de datos de modo que no haya más de un servidor que redirija la conexión a otro servidor en la vía de acceso de la conexión.

02
Vuelva a catalogar la base de datos de modo que no haya ningún servidor intermedio que redirija la conexión.

sqlcode: -866

sqlstate: 08001

SQL0868NSe ha intentado emitir un mandato CONNECT utilizando una cláusula USER/USING en un servidor con el que ya existe conexión.

Explicación: Ya existe una conexión actual o latente sobre el servidor, por lo que no se puede emitir un CONNECT sobre dicho servidor con la cláusula USER/USING.

Respuesta del usuario: Acciones posibles:

sqlcode: -868

sqlstate: 51022

SQL0880NSAVEPOINT "<nombre-punto-salvaguarda>" no existe o no es válido en este contexto.

Explicación: Se ha producido un error al emitir una sentencia RELEASE o ROLLBACK TO SAVEPOINT "<nombre-punto-salvaguarda>". No existe un punto de salvaguarda con ese nombre o se estableció fuera del contexto de ejecución atómico actual.

No se puede procesar la sentencia.

Respuesta del usuario: Corrija el nombre del punto de salvaguarda en la sentencia y vuelva a emitirla.

sqlcode: -880

sqlstate: 3B001

SQL0881NUn SAVEPOINT con el nombre "<nombre-punto-salvaguarda>" ya existe, pero este nombre de punto de salvaguarda no se puede reutilizar.

Explicación: El nombre "<nombre-punto-salvaguarda>" ya se ha usado en una sentencia SAVEPOINT. El nombre del punto de salvaguarda no se puede reutilizar porque, como mínimo, una de las sentencias SAVEPOINT que usan este nombre también ha especificado la palabra clave UNIQUE, que afirma que el nombre debe ser exclusivo.

No se puede procesar la sentencia. No se ha establecido el punto de salvaguarda nuevo. El punto de salvaguarda antiguo con el mismo nombre todavía existe.

Respuesta del usuario: Escoja otro nombre para este punto de salvaguarda y vuelva a emitir la sentencia SAVEPOINT. Si este nombre de punto de salvaguarda que existe se tiene que reutilizar, emita la sentencia RELEASE SAVEPOINT para liberarlo. Sin embargo, tenga en cuenta que la sentencia RELEASE SAVEPOINT también libera cualquier punto de salvaguarda que se hubiera establecido en la transacción desde el momento en que el punto de salvaguarda específico se estableció. Para obtener más información, consulte la publicación Consulta de SQL.

sqlcode: -881

sqlstate: 3B501

SQL0882NEl punto de salvaguarda no existe.

Explicación: Se ha producido un error al emitir una sentencia ROLLBACK TO SAVEPOINT. No se permite emitir ROLLBACK TO SAVEPOINT sin especificar un nombre de punto de salvaguarda específico cuando no existe ningún punto de salvaguarda.

No se puede procesar la sentencia.

Respuesta del usuario: Emita una sentencia diferente o intente retrotraer toda la transacción con la sentencia ROLLBACK.

sqlcode: -882

sqlstate: 3B502


[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]