Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los proveedores de datos de DB2 utilizan el procedimiento almacenado IBM SQLCAMESSAGE con el que devolver mensajes de error detallados. Para usar esta característica, debe configurar el origen de datos para usar un valor EBCDIC para Host CCSID.
En la tabla siguiente se describen los errores de servidor DB2 que pueden producirse junto con las acciones que debe realizar para corregirlos.
| SQLSTATE | SQLCODE | Mensaje | Descripción |
|---|---|---|---|
| 42601 | -104 | Símbolo no válido. El token no es válido. Token inesperado. Se encontró un token inesperado <token> tras el <texto>. Los tokens esperados pueden incluir: <token-list>. |
Motivo: el servidor no puede ejecutar una instrucción SQL que contenga símbolos o elementos ilegales, no válidos o inesperados. Acción: Compruebe la sintaxis SQL mediante la Referencia SQL de IBM DB2 para la plataforma y versión específicas de IBM DB2. Compruebe si la aplicación de consumidor de datos usa identificadores de objeto delimitados no admitidos (por ejemplo, corchetes ([<nombre-objeto>]) en lugar de usar delimitadores admitidos (comillas dobles). |
| 42602 | -113 | CARÁCTER NO VÁLIDO ENCONTRADO EN: <string>, CÓDIGO DE RAZÓN <reason-code>. Se detectó un carácter no válido en un nombre. <el identificador> contiene un carácter que no está permitido o no contiene ningún carácter. |
Motivo: El servidor no puede procesar una instrucción SQL SET CURRENT SQLID cuando el cliente se conecta al servidor DB2. Acción: compruebe la información de conexión para asegurarse de que el valor calificador predeterminado coincide con la colección DB2 en la que se cataloga el objeto. Para obtener más información, consulte Calificador predeterminado. |
| 42802 | -117 | EL NÚMERO DE VALORES ASIGNADOS NO ES EL MISMO QUE EL NÚMERO DE COLUMNAS ESPECIFICADAS O IMPLÍCITAS. La instrucción contiene un número incorrecto de valores. El número de valores asignados no es el mismo que el número de columnas o variables especificadas o implícitas. |
Motivo: El servidor no puede ejecutar una instrucción INSERT de SQL cuando el número de valores especificados no es el mismo que el número de columnas de las tablas. Acción: compruebe que el número de columnas coincide con los objetos de la instrucción SQL, consultando el catálogo del sistema (por ejemplo, SYSIBM. SYSCOLUMNS) o ejecutar una consulta de esquema de cliente (por ejemplo, OLE DB IDBSchemaRowsets::GetSchemas(DBSCHEMA_COLUMNS) o ADO.NET MsDb2Connection.GetSchema(Columns). |
| 22007 | -181 | LA REPRESENTACIÓN EN CADENA DE UN VALOR DE FECHA Y HORA NO ES UN VALOR DE FECHA Y HORA VÁLIDO. El valor de la cadena de fecha, hora o marca de tiempo no es válido. La representación de la cadena de un valor datetime está fuera de rango. |
Motivo: el servidor no puede ejecutar la instrucción SQL en la que un valor DATETIME tiene un formato incorrecto o está fuera del intervalo. Acción: compruebe que los valores DATETIME están dentro del intervalo admitido para el año 0001-9999, mes de 1-12, día de 28/29/30/31 (dependiendo del mes y el año bisiesto), hora de 0-24 (12 para EE. UU.), minutos de 0-59, segundos de 0 a 59 y microsegundos de 0 a 9999999. Compruebe la información de conexión para asegurarse de que la opción DateTime As Date esté configurada como Verdadero. Esto indicará al cliente que elimine la parte de la hora de los valores de DateTime de Windows que están asignados a los valores de marca temporal DB2. Esto permite que la base de datos DB2 lea dichos valores como valores de fecha de DB2. Para obtener más información, vea DateTime As Date. |
| 42704 | -204 |
<esquema>.<object> es un nombre no identificado. Se detectó un nombre de objeto o restricción no definido. <name> es un nombre indefinido. |
Motivo: el servidor no puede ejecutar una instrucción SQL que haga referencia a un esquema< no válido>.<nombre de objeto>. Acción: compruebe el nombre de objeto especificado en la instrucción SQL. Compruebe la información de conexión para asegurarse de que el valor calificador predeterminado coincide con la colección DB2 en la que se cataloga el objeto. Para obtener más información, consulte Calificador predeterminado. |
| 42703 | -206 |
<name> NO ES VÁLIDO EN EL CONTEXTO DONDE SE ESTÁ UTILIZANDO Columna <nombre> no está en las tablas especificadas. <name> no es válido en el contexto donde se usa. |
Motivo: El servidor no puede ejecutar una instrucción SQL donde un nombre de columna especificado no es una columna de la tabla de origen o de destino o vista a la que se hace referencia a la instrucción I. Acción: compruebe que las referencias de columna coinciden con los objetos de la instrucción SQL, consultando el catálogo del sistema (por ejemplo, SYSIBM. SYSCOLUMNS) o ejecutar una consulta de esquema de cliente (por ejemplo, OLE DB IDBSchemaRowsets::GetSchemas(DBSCHEMA_COLUMNS) o ADO.NET MsDb2Connection.GetSchema(Columns). |
| 08S01 | -360 | No se encontró el recurso de host. Compruebe que el valor del catálogo inicial coincide con el nombre del recurso de host. | Motivo: El servidor no pudo conectar el cliente al RDBNAM solicitado de DRDA (nombre de base de datos relacional). Acción: Verifique la información de conexión para asegurarse de que el valor del Catálogo Inicial coincida con el nombre de la ubicación de DB2 para z/OS, la entrada del directorio de bases de datos relacional (RDBDIRE) de DB2 para IBM i, o el nombre de la base de datos de DB2 para Windows. Para obtener más información, consulte Catálogo inicial. |
| 42884 | -440 | NO SE ENCONTRÓ NINGUNA rutina del tipo <routine-type> POR EL NOMBRE <routine-name> QUE TENGA ARGUMENTOS COMPATIBLES EN LA RUTA DE ACCESO ACTUAL. No se encontró ninguna rutina con el nombre especificado y los argumentos compatibles. No se encontró ninguna rutina autorizada denominada <nombre de rutina> de tipo <rutinario> que tenga argumentos compatibles. |
Motivo: el servidor no puede ejecutar una instrucción CALL de SQL que contenga el número incorrecto de argumentos, o tipos de datos de parámetros no válidos, o haga referencia a un esquema< no válido>.<nombre de objeto>. Acción: compruebe el número de argumentos. Compruebe los tipos de datos de parámetros. Compruebe el nombre de objeto especificado en la instrucción SQL. Compruebe la información de conexión para asegurarse de que el valor calificador predeterminado coincide con la colección DB2 en la que se cataloga el objeto. Para obtener más información, consulte Calificador predeterminado. |
| 24501 | -501 | EL CURSOR IDENTIFICADO EN UNA INSTRUCCIÓN FETCH O CLOSE NO ESTÁ ABIERTO. El cursor <nombre de cursor> no está abierto. El cursor especificado en una instrucción FETCH o CLOSE no está abierto, o una variable de cursor en una referencia de función escalar de cursor no está abierta. |
Motivo: El servidor no puede ejecutar una instrucción SELECT o CALL de SQL que requiera una instrucción FETCH o CLOSE en un CURSOR que no esté en un estado abierto. Acción: compruebe que la aplicación no emite un COMMIT o ROLLBACK, que podría cerrar el cursor. Compruebe si hay un mensaje de retorno recibido previamente que podría indicar que el servidor cerró automáticamente el cursor en función de un evento del sistema (por ejemplo, SQLCODE -404, -652, -679, -802, -901, -904, -909, -910, -911, -913 o -952). Compruebe la información de conexión para asegurarse de que la opción AutoCommit se configure como True cuando se trabaje con algunos consumidores genéricos, incluidos SQL Server Integration Services y Distributed Query Processor, cuando se usen transacciones de unidad de trabajo remota. Para obtener más información, consulte AutoCommit. |
| 42501 | -551 | No está autorizado para oponerse. No está autorizado a <object-name> en <resource-name> del tipo <resource-type>. <authorization-ID> no tiene la autorización o privilegios necesarios para realizar la operación < en el objeto <nombre-del-objeto>. |
Motivo: El servidor no puede ejecutar una instrucción SELECT o CALL de SQL que requiera una instrucción CURSOR almacenada en un paquete SQL estático al que el usuario actual no está autorizado. El cliente se basa en instrucciones SQL predefinidas en secciones de paquetes SQL estáticos de DB2 para admitir la ejecución de instrucciones SELECT de SQL. De forma predeterminada, el cliente define automáticamente un paquete, si el usuario en tiempo de ejecución tiene la autoridad BIND, EXECUTE y GRANT del paquete sobre la colección DB2 especificada en la propiedad de conexión Colección de paquetes. Acción: compruebe la información de conexión para asegurarse de que el valor de la colección de paquetes coincide con la colección DB2 en la que los paquetes HIS 2010 se definen para su ejecución mediante el identificador de usuario actual o PUBLIC. Cree manualmente paquetes HIS 2010 para su ejecución mediante el identificador de usuario actual o PUBLIC, mediante la herramienta de acceso a datos, el Asistente para orígenes de datos, vínculos de datos o biblioteca de acceso a datos. Conéctese a DB2 mediante un identificador de autorización con privilegios para crear automáticamente paquetes HIS 2010 (privilegios CREATE, BIND y EXECUTE). Para obtener más información, vea Recopilación de paquetes. |
| 42501 42602 |
-567 -567 |
<ERROR DE AUTORIZACIÓN DEL TIPO> BINDING MEDIANTE <auth-id> PAQUETE DE AUTORIDAD = <package-name> PRIVILEGIO = <privilege>. No se permite el nombre de autorización &1. <authorization-ID> no es un identificador de autorización válido. |
Motivo: El servidor no puede ejecutar una instrucción SELECT de SQL cuando la cuenta de usuario no tiene permiso para crear o ejecutar los paquetes DB2 necesarios. Acción: compruebe la información de conexión para asegurarse de que el valor de la colección de paquetes coincide con la colección DB2 en la que los paquetes HIS 2010 se definen para su ejecución mediante el identificador de usuario actual o PUBLIC. Cree manualmente paquetes HIS 2010 para su ejecución mediante el identificador de usuario actual o PUBLIC, mediante la herramienta de acceso a datos, el Asistente para orígenes de datos, vínculos de datos o biblioteca de acceso a datos. Conéctese a DB2 mediante un identificador de autorización con privilegios para crear automáticamente paquetes HIS 2010 (privilegios CREATE, BIND y EXECUTE). Para obtener más información, vea Recopilación de paquetes. |
| 42710 | -601 | EL NOMBRE (VERSIÓN O NÚMERO DE SERIE DEL VOLUMEN) DEL OBJETO QUE SE VA A DEFINIR O EL DESTINO DE UNA INSTRUCCIÓN RENAME ES IDÉNTICO AL NOMBRE (VERSIÓN O NÚMERO DE SERIE DEL VOLUMEN) EXISTENTE <NOMBRE DEL OBJETO> DEL TIPO <DE OBJETO>. <nombre> en <el tipo de tipo >< de esquema> ya existe. El nombre del objeto que se va a crear es idéntico al nombre <> del tipo de tipo <>existente. |
Motivo: el servidor no puede asignar un nombre a un objeto cuando ese nombre ya está en uso para otro objeto del mismo tipo. Acción: asigne un nombre al objeto de forma única en comparación con los objetos de base de datos existentes. |
| 42721 | -725 | EL REGISTRO ESPECIAL <register> EN LA UBICACIÓN <location> SE LE PROPORCIONÓ UN VALOR NO VÁLIDO | Motivo: El servidor no puede procesar la instrucción SET CURRENT SQLID cuando contiene un valor no válido para el identificador de usuario o el nombre de colección. Acción: compruebe la información de conexión para asegurarse de que el valor calificador predeterminado coincide con la colección DB2 en la que se cataloga el objeto. Para obtener más información, consulte Calificador predeterminado. |
| 23505 | -803 | UN VALOR INSERTADO O ACTUALIZADO NO ES VÁLIDO PORQUE EL ÍNDICE DEL <ESPACIO DE ÍNDICE INDEXSPACE-NAME> RESTRINGE LAS COLUMNAS DE LA TABLA, POR LO QUE NO HAY DOS FILAS QUE PUEDAN CONTENER VALORES DUPLICADOS EN ESAS COLUMNAS. El identificador de la fila existente es X <row identifier> Valor de clave duplicado especificado. Uno o varios valores de la instrucción INSERT, la instrucción UPDATE o la actualización de clave externa causada por una instrucción DELETE no son válidos porque la clave principal, la restricción única o el índice único identificado por <index-id> restringe el nombre< de tabla de tabla >a tener valores duplicados para la clave de índice. |
Motivo: El servidor no puede ejecutar una instrucción INSERT o UPDATE en una tabla restringida por un ÍNDICE UNIQUE donde la instrucción daría como resultado valores duplicados. Acción: compruebe que los valores de datos no infringen una restricción, consultando el catálogo del sistema (por ejemplo, SYSIBM. SYSINDEXES) o ejecutar una consulta de esquema de cliente (por ejemplo, OLE DB IDBSchemaRowsets::GetSchemas(DBSCHEMA_INDEXES) o ADO.NET MsDb2Connection.GetSchema(Indexes). |
| 51002 | -805 | NOMBRE DE UBICACIÓN O NOMBRE DE PAQUETE DBRM <location-name>.<collection-id>.<dbrmname>.<consistency-token> NO SE ENCONTRÓ EN EL PLAN <plan-name>. RAZÓN <razón>. No se ha encontrado el paquete SQL <nombre-del-paquete> en la colección <nombre-de-colección> en el servidor DRDA. No se encontró el <paquete> package-name. |
Motivo: El servidor no encontró el paquete SQL estático DB2 requerido por el cliente DB2 para ejecutar una instrucción SQL SELECT dinámica. Acción: compruebe la información de conexión para asegurarse de que el valor de la colección de paquetes coincide con la colección DB2 en la que los paquetes HIS 2010 se definen para su ejecución mediante el identificador de usuario actual o PUBLIC. Para obtener más información, vea Recopilación de paquetes. |
| 58004 | -901 | EJECUCIÓN INCORRECTA CAUSADA POR UN ERROR DEL SISTEMA QUE NO IMPIDE LA EJECUCIÓN CORRECTA DE INSTRUCCIONES SQL POSTERIORES. Error del sistema SQL. Error en la instrucción SQL debido a un error del sistema no grave. Se pueden procesar instrucciones SQL posteriores. (Motivo <motivo>.) |
Motivo: el servidor no pudo ejecutar la instrucción SQL actual, pero las instrucciones SQL posteriores pueden realizarse correctamente. Este error puede deberse a un error de confirmación de transacción dentro de una unidad de trabajo distribuida o se produce un error en una actualización debido a una restricción, o la instrucción SQL contiene una longitud no válida (0 o superior a la longitud máxima). Acción: el usuario debe comprobar el código de motivo donde está disponible para determinar si se requiere más acción de usuario o administrador, así como para determinar cómo evitar el error modificando la aplicación, la transacción o el comando. |
| 57011 | -904 | EJECUCIÓN FALLIDA CAUSADA POR UN RECURSO NO DISPONIBLE. MOTIVO <reason-code>, TIPO DE RECURSO <resource-type>, Y NOMBRE DEL RECURSO <resource-name>. Se superó el límite de recursos. Ejecución incorrecta causada por un recurso no disponible. Código de motivo: <código de motivo>, tipo de recurso: <tipo> de recurso y nombre de recurso: <resource-name>. |
Motivo: el servidor no puede ejecutar la instrucción SQL porque el objeto de la instrucción no está disponible. Acción: compruebe que el objeto y la base de datos están disponibles y no están en un interbloqueo, sin conexión u otro estado no disponible. |
| 57033 | -913 | EJECUCIÓN FALLIDA CAUSADA POR INTERBLOQUEO O TIEMPO DE ESPERA.
<CÓDIGO DE MOTIVO>: código de motivo, TIPO DE RECURSO<: tipo de recurso>, Y NOMBRE DEL RECURSO<: nombre del recurso>. Fila o objeto <nombre-del-objeto> en <nombre-del-recurso> tipo <tipo-de-recurso> en uso. Ejecución fallida causada por interbloqueo o tiempo de espera. Código de motivo: código <>de motivo. |
Motivo: el servidor no puede ejecutar la instrucción SQL porque el objeto de la instrucción no está disponible. Acción: compruebe que el objeto y la base de datos están disponibles y no están en un interbloqueo, sin conexión u otro estado no disponible. Confirme o revierta la operación anterior y, a continuación, desconéctese de la base de datos. Compruebe el código de motivo del servidor para obtener más información sobre el estado del objeto (por ejemplo, DB2 para el código de motivo z/OS 00C90088 indica un interbloqueo, mientras que 00C9008E indica un tiempo de espera. |