SQL0501N El cursor especificado en una sentencia FETCH o CLOSE no está abierto o una variable de cursor en una referencia de función escalar de cursor no está abierta.
Explicación
El programa ha intentado una de estas acciones:
- FETCH utilizando un cursor cada vez cuando no se abría el cursor especificado.
- CLOSE un cursor cada vez cuando el cursor especificado no se abría.
- Ha hecho referencia a una variable de cursor en una sentencia OPEN y la variable de cursor no se ha abierto.
- Ha hecho referencia a una función escalar de cursor, como por ejemplo la función CURSOR_ROWCOUNT, y la variable de cursor no se ha abierto.
No se puede procesar la sentencia.
Respuesta del usuario
Compruebe si hay un mensaje anterior (SQLCODE) que haya podido cerrar el cursor. Tenga en cuenta que, después de cerrar el cursor, cualquier sentencia fetch o close que se efectúa sobre un cursor recibe un SQLCODE -501.
Si no se ha emitido ningún SQLCODE anterior, corrija el programa de aplicación para asegurarse de que el cursor esté abierto cuando se ejecute la sentencia FETCH o CLOSE.
Si se hace referencia a una variable de cursor en una función escalar de cursor, compruebe que el cursor no sea un valor nulo, que se haya definido y que esté abierto, de lo contrario, sustituya la variable de cursor por otra que esté en ese estado.
sqlcode: -501
sqlstate: 24501
SQL0502N El cursor especificado en una sentencia OPEN ya está abierto.
Explicación
El programa ha intentado ejecutar una sentencia OPEN sobre un cursor abierto.
No se puede procesar la sentencia. No se ha modificado el cursor.
Respuesta del usuario
Corrija el programa de aplicación para asegurarse de que no intenta ejecutar una sentencia OPEN sobre un cursor que ya esté abierto.
sqlcode: -502
sqlstate: 24502
SQL0503N No se puede actualizar una columna porque no está identificada en la cláusula FOR UPDATE de la sentencia SELECT del cursor.
Explicación
Mediante un cursor, el programa ha intentado actualizar un valor de una columna de tabla que no estaba identificada en la cláusula FOR UPDATE de la declaración del cursor ni de la sentencia SELECT preparada.
Cualquier columna que se desee actualizar debe estar identificada en la cláusula FOR UPDATE de la declaración del cursor.
No se puede procesar la sentencia.
Respuesta del usuario
Corrija el programa de aplicación. Si se debe actualizar la columna, añada el nombre de la misma a la cláusula FOR UPDATE de la declaración del cursor.
sqlcode: -503
sqlstate: 42912
SQL0504N El cursor nombre no está definido.
Explicación
Se ha especificado un UPDATE o un DELETE WHERE CURRENT OF de nombre, pero no se había declarado el cursor nombre en el programa de aplicación.
No se puede procesar la sentencia.
Respuesta del usuario
Asegúrese de que el programa de aplicación está completo y corrija los errores tipográficos de los nombres de los cursores.
sqlcode: -504
sqlstate: 34000
SQL0505N El cursor nombre ya está definido.
Explicación
El nombre del cursor especificado en la sentencia DECLARE ya está declarado.
No se puede procesar la sentencia.
Respuesta del usuario
Asegúrese de que el nombre está bien escrito.
SQL0507N El cursor especificado en la sentencia UPDATE o DELETE no está abierto.
Explicación
El programa ha intentado ejecutar una sentencia UPDATE o DELETE WHERE CURRENT OF de un cursor cuando el cursor especificado no estaba abierto.
No se puede procesar la sentencia. No se ha realizado ninguna actualización ni supresión.
Respuesta del usuario
Compruebe si hay un mensaje anterior (SQLCODE) que haya podido cerrar el cursor. Tenga en cuenta que después de cerrar un cursor, cualquier sentencia FETCH o CLOSE que se efectúe sobre dicho cursor recibirá un SQLCODE -501 y cualquier actualización o supresión recibirá un SQLCODE -507. Corrija la lógica del programa de aplicación para asegurarse de que el cursor especificado esté abierto cuando se ejecute la sentencia UPDATE o DELETE.
sqlcode: -507
sqlstate: 24501
SQL0508N El cursor especificado en la sentencia UPDATE o DELETE no está situado en una fila.
Explicación
El programa ha intentado ejecutar una sentencia UPDATE o DELETE WHERE CURRENT OF sobre un cursor mientras el cursor especificado no estaba posicionado en una fila de una tabla de objeto. Para poder suprimir o actualizar un cursor, éste debe estar posicionado en una fila.
El cursor ya no se coloca en una fila si ésta se ha suprimido. Esto incluye el uso de cursores dentro de un punto de salvaguarda cuando se realiza ROLLBACK TO SAVEPOINT.
Usuarios de sistemas federados: otra aplicación (o un cursor distinto de esta aplicación) ha actualizado o suprimido el registro de una fuente de datos remota y el registro ya no existe.
No se puede procesar la sentencia. No se actualiza ni suprime ningún dato.
Respuesta del usuario
Corrija la lógica del programa de aplicación para asegurarse de que el cursor esté correctamente posicionado en la fila adecuada de la tabla de objeto antes de que se ejecuta la sentencia UPDATE o DELETE. Tenga en cuenta que el cursor no está colocado en una fila si FETCH ha devuelto el mensaje SQL0100W (SQLCODE = 100).
sqlcode: -508
sqlstate: 24504
SQL0509N La tabla especificada en la sentencia UPDATE o DELETE no es la misma tabla especificada en SELECT para el cursor.
Explicación
El programa ha intentado ejecutar una sentencia UPDATE o DELETE WHERE CURRENT OF de un cursor, en la que el nombre de la tabla no coincide con el nombre de la tabla especificada en la sentencia SELECT del cursor.
No se puede procesar la sentencia.
Respuesta del usuario
Corrija el programa de aplicación para asegurarse de que la tabla especificada en la sentencia UPDATE o DELETE sea la misma que la identificada en la declaración del cursor.
sqlcode: -509
sqlstate: 42827
SQL0510N UPDATE o DELETE no está permitido para el cursor especificado.
Explicación
El programa ha intentado ejecutar una sentencia UPDATE o DELETE WHERE CURRENT OF de un cursor sobre una tabla o una definición de vista que no permite la operación de actualización o supresión solicitada. Este error puede producirse, por ejemplo, si se intenta suprimir una vista de sólo lectura o si se intenta efectuar una actualización cuando el cursor no está definido en la cláusula FOR UPDATE.
En el gestor de bases de datos, la vista es de sólo lectura si la sentencia SELECT incluye:
- La palabra clave DISTINCT
- Una función de columna en la lista SELECT
- Una cláusula GROUP BY o HAVING
- Una cláusula FROM que identifica uno de los elementos siguientes:
- Más de una tabla o vista
- Una vista de sólo lectura (la columna READONLY de SYSCAT.SYSVIEWS se establece en 'Y')
- Un operador de conjuntos (que no sea UNION ALL).
Tenga presente que estas condiciones no se aplican a las subconsultas de la sentencia SELECT.
El cursor está declarado con una cláusula FOR FETCH ONLY.
El cursor es ambiguo y se ha especificado la opción de vinculación BLOCKING ALL.
El cursor referencia una vista que tiene un activador INSTEAD OF UPDATE (o DELETE).
El cursor hace una referencia directa o indirecta a una vista que está definida con la cláusula WITH ROW MOVEMENT y se ha intentado una UPDATE WHERE CURRENT OF CURSOR.
No se puede procesar la sentencia.
Respuesta del usuario
Si el gestor de bases de datos impide procesar la sentencia y el cursor se basa en una sentencia SELECT o VALUES de sólo lectura, no emita para ésta ninguna sentencia de actualización o supresión.
Si el gestor de bases de datos no puede procesar la sentencia y el cursor no está basado en una sentencia SELECT o VALUES de sólo lectura y está definido con una cláusula FOR FETCH ONLY, elimine esta cláusula en la definición del cursor o no emita ninguna sentencia de actualización ni supresión.
Si el gestor de bases de datos no puede procesar la sentencia y no se puede determinar a partir de la definición o contexto del cursor si éste está definido como "fetch only" o "updatable", vuelva a vincular el programa con la opción de vinculación BLOCKING NO o BLOCKING UNAMBIG.
Si el gestor de bases de datos no puede procesar la sentencia y el cursor está basado en una vista con un activador INSTEAD OF UPDATE (o DELETE), utilice una sentencia de búsqueda UPDATE (o DELETE).
Si el gestor de bases de datos no puede procesar la sentencia y el cursor hace una referencia directa o indirecta a una vista que está definida con la cláusula WITH ROW MOVEMENT, no emita ninguna sentencia de actualización para la vista.
Usuarios de sistemas federados: aísle el problema hasta encontrar la fuente de datos que rechaza la petición. Si una fuente de datos no puede procesar la petición, examine las restricciones de esa fuente de datos para determinar la causa del problema y su solución. Si la restricción existe en una fuente de datos, vea el manual Consulta de SQL correspondiente a esa fuente de datos para determinar por qué no se puede actualizar el objeto.
sqlcode: -510
sqlstate: 42828
SQL0511N La cláusula FOR UPDATE no está permitida porque la tabla especificada por el cursor no se puede modificar.
Explicación
La tabla de resultados de la sentencia SELECT o VALUES no puede actualizarse.
En el gestor de bases de datos, la tabla de resultados es de sólo lectura si el cursor se basa en una sentencia VALUES o si la sentencia SELECT contiene alguno de los siguientes elementos:
- La palabra clave DISTINCT
- Una función de columna en la lista SELECT
- Una cláusula GROUP BY o HAVING
- Una cláusula FROM que identifica uno de los elementos siguientes:
- Más de una tabla o vista
- Una vista de sólo lectura
- Una cláusula OUTER con una tabla de tipos o una vista de tipos
- Una sentencia de cambio de datos
- Un operador de conjuntos (que no sea UNION ALL).
Tenga presente que estas condiciones no se aplican a las subconsultas de la sentencia SELECT.
No se puede procesar la sentencia.
Respuesta del usuario
No realice actualizaciones en la tabla de resultados tal y como se especifica.
Usuarios de sistemas federados: aísle el problema hasta encontrar la fuente de datos que rechaza la petición.
Si una fuente de datos no puede procesar la petición, examine las restricciones de esa fuente de datos para determinar la causa del problema y su solución.
Si la restricción existe en una fuente de datos, vea el manual Consulta de SQL correspondiente a esa fuente de datos para determinar por qué no se puede actualizar el objeto.
sqlcode: -511
sqlstate: 42829
SQL0512N La sentencia o mandato ha fallado porque se está utilizando un nombre de tres partes federado de una forma que no está soportada. Nombre completo en tres partes: nombre. Código de razón: código-razón.
Explicación
Puede hacer referencia a objetos remotos sin tener que utilizar apodos haciendo referencia a los objetos remotos directamente con nombres completos en tres partes federados.
Se devuelve este mensaje cuando una sentencia utiliza un nombre completo en tres partes de una forma que no se soporta. El código de razón indica la restricción que se ha encontrado:
- 1
Se han intentado utilizar nombres completos en tres partes con el programa de utilidad de importación o el programa de utilidad de exportación.
- 2
Se ha intentado enviar una sentencia SQL que incluye un nombre completo en tres partes con la cláusula CREATE ALIAS en una base de datos particionada.
- 3
Se han intentado utilizar nombres completos en tres partes en un tipo de sentencia SQL que no soporta nombres completos en tres partes.
- 4
Se han intentado utilizar nombres completos en tres partes en un origen de datos con nombres de datos completos que no se soportan.
Respuesta del usuario
Revise las restricciones de nombres completos en tres partes federados y, a continuación, modifique la sentencia o comando para utilizar el nombre completo en tres partes sólo de la forma en la que se soportan.
sqlcode: -512
sqlstate: 56023
SQL0513W La sentencia SQL modificará toda una tabla o vista.
Explicación
La sentencia UPDATE o DELETE no contiene una cláusula WHERE, de modo que todas las filas de la tabla o de la vista se modificarán si se ejecuta esta sentencia.
La sentencia se acepta.
Usuarios de sistemas federados: no todas las fuentes de datos notifican esta condición de aviso. El servidor federado intenta emitir este aviso siempre que existe la condición, pero no es seguro que el servidor federado pueda detectar siempre esta condición. No confíe en que este aviso evite que las operaciones UPDATE/DELETE afecten a una tabla o vista entera.
Respuesta del usuario
Asegúrese de que su intención es modificar la vista o la tabla entera.
sqlcode: +513
sqlstate: 01504
SQL0514N El cursor nombre no está en un estado preparado.
Explicación
El programa de aplicación ha intentado utilizar un cursor que no está en un estado preparado. El cursor está asociado a una sentencia que cumple las condiciones siguientes:
- nunca se ha preparado
- no se ha hecho válido mediante una revinculación explícita o implícita de un paquete
- se ha preparado en una transacción anterior y el paquete de la aplicación se ha vinculado con KEEPDYNAMIC NO
No se puede procesar la sentencia.
Respuesta del usuario
- Prepare la sentencia nombrada en la sentencia DECLARE CURSOR antes de intentar abrir el cursor.
- La preparación del cursor debe volver a emitirse.
- La sentencia debe volverse a preparar después de COMMIT o ROLLBACK. Alternativamente, vincule el paquete con KEEPDYNAMIC YES o utilice la sentencia ALTER PACKAGE para modificar la propiedad KEEPDYNAMIC en YES.
sqlcode: -514
sqlstate: 26501
SQL0516N La sentencia DESCRIBE no especifica una sentencia preparada.
Explicación
El nombre de sentencia en la sentencia DESCRIBE debe especificar una sentencia preparada en la misma transacción de bases de datos.
No se puede procesar la sentencia.
Respuesta del usuario
Compruebe que el nombre de la sentencia especifica una sentencia preparada.
sqlcode: -516
sqlstate: 26501
SQL0517N El cursor nombre identifica una sentencia preparada que no es una sentencia SELECT o VALUES.
Explicación
No se puede utilizar el cursor nombre tal como está especificado, porque la sentencia preparada indicada en la declaración del cursor no era una sentencia SELECT o VALUES.
No se puede procesar la sentencia.
Respuesta del usuario
Verifique que el nombre de la sentencia se ha especificado correctamente en las sentencias PREPARE y DECLARE CURSOR para el cursor nombre. Puede también corregir el programa para asegurarse de que sólo se utilizan sentencias SELECT o VALUES preparadas, asociadas a las declaraciones del cursor.
sqlcode: -517
sqlstate: 07005
SQL0518N La sentencia especificada en la sentencia EXECUTE no está en un estado preparado o es una sentencia SELECT o VALUES.
Explicación
El programa de aplicación ha intentado EXECUTE una sentencia que
- nunca se ha preparado,
- es una sentencia a SELECT o VALUES,
- no se ha hecho válido mediante una revinculación explícita o implícita de un paquete, o
- se ha preparado en una transacción anterior y el paquete de la aplicación se ha vinculado con KEEPDYNAMIC NO.
No se puede procesar la sentencia.
Respuesta del usuario
- Prepare la sentencia antes de intentar la sentencia EXECUTE.
- Asegúrese de que la sentencia no es SELECT ni VALUES.
- La preparación del cursor debe volver a emitirse.
- La sentencia debe volverse a preparar después de COMMIT o ROLLBACK. Alternativamente, vincule el paquete con KEEPDYNAMIC YES o utilice la sentencia ALTER PACKAGE para modificar la propiedad KEEPDYNAMIC en YES.
sqlcode: -518
sqlstate: 07003
SQL0519N La sentencia PREPARE identifica la sentencia SELECT o VALUES del cursor abierto nombre.
Explicación
El programa de aplicación ha intentado preparar la sentencia SELECT o VALUES para el cursor especificado cuando éste ya estaba abierto.
No se puede preparar la sentencia. Ello no afecta al cursor.
Respuesta del usuario
Corrija el programa de aplicación de modo que no intente preparar la sentencia SELECT o VALUES para un cursor abierto.
sqlcode: -519
sqlstate: 24506
SQL0525N La sentencia SQL no se puede ejecutar porque era errónea en el momento de la vinculación para section = section-number package = pkgschema.pkgname consistency token = Xcontoken.
Explicación
- La sentencia era errónea cuando se vinculó el paquete, pero el error se ignoró entonces porque se utilizó la opción SQLERROR (CONTINUE). Puesto que la sentencia contiene un error, no puede ejecutarse.
- Es posible que la sentencia no sea una sentencia ejecutable en esta ubicación o puede que sólo sea ejecutable por medio de un peticionario de aplicaciones de DB2
Tenga en cuenta que símbolocont se proporciona en hexadecimales.
No se puede ejecutar la sentencia.
Respuesta del usuario
Si se supone que la sentencia de SQL no ha de ejecutarse en la ubicación indicada, corrija el programa para que la sentencia errónea no se ejecute en dicha ubicación. Precompile, compile y sustituya la vinculación del paquete. Si se supone que la sentencia de SQL va a ejecutarse en la ubicación indicada, corrija el problema detectado y vuelva a emitir PREP o BIND utilizando ACTION(REPLACE). Si se han vinculado varias versiones del paquete, emita la siguiente sentencia SELECT para determinar qué versión contiene el error: SELECT PKGVERSION FROM SYSCAT.PACKAGES donde PKGSCHEMA='esquemapaq' AND PKGNAME = 'nombrepaq' y HEX(UNIQUE_ID) = 'símbolocont'
sqlcode: -525
sqlstate: 51015
SQL0526N La sentencia no se ha procesado porque hace referencia a una tabla temporal creada o a una tabla temporal declarada e incluye funciones que no se pueden utilizar con tablas temporales.
Explicación
Puede almacenar temporalmente los resultados de la manipulación de datos en las tablas temporales.
Existen algunas restricciones sobre cómo se pueden utilizar las tablas temporales. Por ejemplo, las tablas temporales no soportan columnas de tipo definido por el usuario y no se puede habilitar la compresión de índice para tablas temporales. Este mensaje se devuelve cuando se intenta ejecutar una sentencia SQL que utiliza tablas temporales de un modo no soportado.
Respuesta del usuario
Responda a este mensaje de una de las maneras siguientes:
- Modifique la sentencia SQL para eliminar referencias a tablas creadas temporalmente o tablas declaradas temporalmente.
- Modifique la sentencia SQL para eliminar las funciones que no se soportan con las tablas temporales.
sqlcode: -526
sqlstate: 42995
SQL0528N La tabla o el apodo nombretabla-o-apodo ya tiene una restricción de unicidad que es un duplicado de la restricción nombre.
Explicación
La cláusula UNIQUE utiliza la misma lista de columnas que la cláusula PRIMARY KEY, otra cláusula UNIQUE o la PRIMARY KEY, o bien es que ya hay una restricción UNIQUE para la tabla nombre-tabla. Las restricciones de unicidad no pueden estar duplicadas.
nombre es el nombre de restricción, si se ha especificado uno o ya existe. Si no se ha especificado un nombre de restricción, nombre es el primer nombre de columna especificado en la lista de columnas de la cláusula UNIQUE seguido de tres puntos.
No se puede procesar la sentencia.
Respuesta del usuario
Elimine la cláusula UNIQUE duplicada o cambie la lista de columnas por un conjunto de columnas que no forme parte de una restricción de unicidad.
sqlcode: -528
sqlstate: 42891
SQL0530N El valor de inserción o actualización de la CLAVE FORÁNEA nombre-restricción no es igual a ningún valor de la clave padre de la tabla padre.
Explicación
Se ha tratado de definir un valor en una clave externa de la tabla de objetos, pero dicho valor no coincide con ningún valor de la clave principal de la tabla padre.
Al insertar una fila en una tabla dependiente, el valor de inserción de la clave externa debe coincidir con algún valor de la clave principal de alguna fila de la tabla padre de la relación asociada.
De igual forma, al actualizar el valor de una clave externa, dicho valor debe ser igual al de la clave principal de cualquiera de las filas de la tabla padre de la relación asociada al final de la sentencia.
Usuarios de sistemas federados: la restricción puede existir en la fuente de datos (si la tabla padre y la tabla secundaria existen en la fuente de datos).
Algunas fuentes de datos no proporcionan valores adecuados para nombre-restricción. En estos casos, el token de mensaje tendrá el formato siguiente: "<data source>:UNKNOWN", que indica que el valor real para el origen de datos especificado es desconocido.
No se ha podido ejecutar la sentencia. El contenido de la tabla de objetos permanece intacto.
Respuesta del usuario
Examine primero el valor de inserción o actualización de la clave externa, y luego compárelo con cada uno de los valores de clave principal de la tabla padre para determinar el problema y poder corregirlo.
sqlcode: -530
sqlstate: 23503
SQL0531N La clave padre de una fila padre de la relación nombre-restricción no se puede actualizar.
Explicación
Se ha intentado una operación de actualizar una clave principal en la fila de la tabla padre, pero la clave principal de la fila indicada tiene filas dependientes en la tabla dependiente asociada a la misma en la restricción nombre-restricción.
Cuando la norma de actualización de la restricción nombre-restricción es NO ACTION, el valor de una clave principal en una fila superior no puede actualizarse si la fila superior tiene filas dependientes al finalizar la ejecución de la sentencia.
Cuando la norma de actualización de la restricción nombre-restricción es RESTRICT, el valor de una clave principal de una fila superior no puede actualizarse si la fila superior tiene filas dependientes en el momento de intentar la actualización de la clave principal.
Usuarios de sistemas federados: la restricción puede existir en la fuente de datos (si la tabla padre y la tabla secundaria existen en la fuente de datos).
Algunas fuentes de datos no proporcionan valores adecuados para nombre-restricción. En estos casos, el token de mensaje tendrá el formato siguiente: "<data source>:UNKNOWN", que indica que el valor real para el origen de datos especificado es desconocido.
No se ha podido ejecutar la sentencia. El contenido de la tabla padre permanece intacto.
Respuesta del usuario
Examine la clave principal de la tabla de objetos y la clave externa de la tabla dependiente para determinar si el valor de la fila especificada de la clave principal debe cambiarse o no. Si no aparece el problema, examine el contenido de la tabla de objetos y de la tabla dependiente para determinar y corregir el problema.
sqlcode: -531
sqlstate: 23001, 23504
SQL0532N No se puede suprimir una fila padre porque la relación nombre-restricción restringe la supresión.
Explicación
Se ha tratado de suprimir una fila determinada de la tabla padre, pero la clave principal de dicha fila tiene filas dependientes en la restricción de referencia nombre-restricción y para la relación se especifica la norma de supresión de NO ACTION o RESTRICT.
Cuando la norma de supresión de la restricción nombre-restricción es NO ACTION, una fila de la tabla padre no podrá suprimirse si las filas dependientes siguen dependiendo de la clave principal al finalizar la sentencia.
Cuando la norma de supresión de la restricción nombre-restricción es RESTRICT, una fila de la tabla padre no podrá suprimirse si la fila superior tiene alguna fila dependiente cuando se intenta la supresión.
Tenga en cuenta que una supresión puede suprimir en cascada otras filas de las tablas dependientes que tengan una norma de supresión de NO ACTION o RESTRICT. Así pues, la restricción nombre-restricción puede estar en otra tabla que no sea la de la operación de supresión original.
Usuarios de sistemas federados: la restricción puede existir en la fuente de datos (si la tabla padre y la tabla secundaria existen en la fuente de datos).
Algunas fuentes de datos no proporcionan valores adecuados para nombre-restricción. En estos casos, los campos apropiados contienen valores (por ejemplo “desconocido”) que indican que se desconoce el valor real.
No se ha podido ejecutar la sentencia. El contenido de la tabla permanece intacto.
Respuesta del usuario
Examine la norma de supresión para todas las tablas descendientes para determinar y corregir el problema. Las tablas específicas implicadas pueden determinarse desde la relación nombre-restricción.
sqlcode: -532
sqlstate: 23001, 23504
SQL0533N La sentencia INSERT no es válida porque una relación restringe el resultado de la selección completa a una fila.
Explicación
Una operación INSERT con una selección completa ha intentado insertar varias filas en una tabla que es padre y dependiente en la misma relación de una restricción de referencia.
La selección completa de la operación INSERT no debe devolver más de una fila de datos.
No se ha podido ejecutar la sentencia INSERT. El contenido de la tabla de objetos permanece intacto.
Usuarios de sistemas federados: la restricción puede existir en la fuente de datos (si la tabla padre y la tabla secundaria existen en la fuente de datos).
Respuesta del usuario
Examine la condición de búsqueda de la selección completa para asegurarse de que no se seleccionará más de una fila de datos.
sqlcode: -533
sqlstate: 21501
SQL0534N Actualización de varias filas no válida.
Explicación
Una operación UPDATE ha intentado actualizar varias filas de una columna incluida en una clave primaria o en un índice exclusivo.
No se da soporte a las actualizaciones de varias filas de columnas de una clave primaria o de un índice exclusivo.
No se ha podido ejecutar la sentencia UPDATE. El contenido de la tabla permanece intacto.
Usuarios de sistemas federados: la restricción puede existir en el servidor federado (si la tabla padre y la tabla secundaria existen como tablas en el servidor federado) o puede existir en la fuente de datos (si la tabla padre y la tabla secundaria existen en la fuente de datos).
Respuesta del usuario
Asegúrese de que la condición de búsqueda de la sentencia UPDATE seleccione para actualización una sola fila de la tabla de objetos.
sqlcode: -534
sqlstate: 21502
SQL0535N La sentencia DELETE no es válida porque una relación de autorreferencia restringe la supresión a una fila.
Explicación
Una operación DELETE con una cláusula WHERE ha intentado suprimir múltiples filas de una tabla que es padre y dependiente en la misma relación de una restricción de referencia con una norma de supresión RESTRICT o SET NULL.
La cláusula WHERE de la operación DELETE no debe seleccionar más de una fila de datos.
No se ha podido ejecutar la sentencia DELETE. El contenido de la tabla de objetos permanece intacto.
Usuarios de sistemas federados: la restricción puede existir en la fuente de datos (si la tabla padre y la tabla secundaria existen en la fuente de datos).
Respuesta del usuario
Examine la condición de búsqueda de la cláusula WHERE para asegurarse de que no se selecciona más de una fila de datos.
NOTA: esta restricción sólo se aplica a los releases de DB2 anteriores a la Versión 2.
sqlcode: -535
sqlstate: 21504
SQL0536N La sentencia DELETE no es válida porque la tabla nombre puede verse afectada por la operación.
Explicación
Se ha intentado una operación DELETE con la tabla indicada a la que se hace referencia en una subconsulta.
- Depende de la tabla de objetos de DELETE en una relación con una norma de supresión CASCADE o SET NULL.
- Depende de otra tabla en una relación con una norma de supresión de CASCADE o SET NULL y las supresiones desde la tabla de objetos de DELETE pueden disponerse en cascada para dicha tabla.
Usuarios de sistemas federados: la restricción puede existir en la fuente de datos (si la tabla padre y la tabla secundaria existen en la fuente de datos).
Algunas fuentes de datos no proporcionan valores adecuados para nombre. En estos casos, los campos apropiados contienen valores (por ejemplo “desconocido”) que indican que se desconoce el valor real.
No se ha podido procesar la sentencia.
Respuesta del usuario
No haga referencia a una tabla en una subconsulta de la sentencia DELETE cuando la tabla pueda resultar afectada por la sentencia DELETE.
NOTA: este error sólo afecta a los releases de DB2 anteriores a la Versión 2 y a los sistemas principales a los que se accede mediante DB2 Connect.
sqlcode: -536
sqlstate: 42914
SQL0537N Una lista de columnas clave identifica la columna nombre-columna más de una vez.
Explicación
La columna nombre-columna aparece más de una vez en una lista de columnas de clave. Es posible que una lista de columnas de clave aparezca en una cláusula PRIMARY KEY, una cláusula FOREIGN KEY, una cláusula UNIQUE, una cláusula DISTRIBUTE BY, una cláusula ORGANIZE BY, una cláusula PARTITION BY o una dependencia funcional de una sentencia CREATE o ALTER.
Usuarios de sistemas federados: la restricción puede existir en la fuente de datos (si la tabla padre y la tabla secundaria existen en la fuente de datos).
Algunas fuentes de datos no proporcionan valores adecuados para nombre-columna. En estos casos, los campos apropiados contienen valores (por ejemplo “desconocido”) que indican que se desconoce el valor real.
No se puede procesar la sentencia.
Respuesta del usuario
Elimine los nombres de columna duplicados.
sqlcode: -537
sqlstate: 42709
SQL0538N FOREIGN KEY nombre no se ajusta a la descripción de la clave padre de la tabla o apodo nombre-tabla-o-apodo.
Explicación
La definición de la clave externa indicada no se ajusta a la descripción de la clave principal de la tabla o apodo nombre-tabla-o-apodo.
Las razones posibles son:
- El número de columnas de la lista de columnas de la clave externa no coincide con el número de columnas de la lista de columnas de la clave principal.
- El número de columnas de la lista de columnas de la clave externa no coincide con el número de columnas de la clave primaria de la tabla padre o apodo padre (no está especificada una lista de columnas de la clave principal).
- Las descripciones de las columnas correspondientes no son compatibles. Las descripciones de columnas son compatibles si las columnas correspondientes tienen tipos de datos compatibles (es decir, si ambas columnas son de tipo numérico, si ambas son series de caracteres, si son gráficos, si son del tipo fecha/hora o si ambas tienen el mismo tipo diferenciado).
- La lista de nombres de columna en una cláusula REFERENCES no puede hacer referencia a una clave principal definida con BUSINESS_TIME WITHOUT OVERLAPS.
nombre es el nombre de la restricción, si ésta se ha especificado en la cláusula FOREIGN KEY. Si no se ha especificado el nombre de una restricción, nombre es el primer nombre de columna especificado en la cláusula, seguido de tres puntos.
Los usuarios de sistemas federados deben tener en cuenta que algunas fuentes de datos no proporcionan los valores adecuados para nombre y nombre-tabla-o-apodo. En estos casos, los campos apropiados contienen valores (por ejemplo "desconocido") que indican que el valor real es desconocido.
La restricción puede existir en la fuente de datos (si las tablas padre y secundaria existen en la fuente de datos).
No se puede procesar la sentencia.
Respuesta del usuario
Corrija la sentencia de forma que la descripción de la clave externa se ajuste a la descripción de la clave principal.
sqlcode: -538
sqlstate: 42830
SQL0539N La tabla o apodo nombre no tiene una clave tipo-clave .
Explicación
- Se ha especificado la tabla o apodo nombre como padre en una cláusula FOREIGN KEY, pero la tabla o apodo no están definidos como padre porque no tienen una clave primaria.
- La sentencia ALTER TABLE ha intentado crear la FOREIGN KEY para la tabla nombre pero la tabla o el apodo no tiene una clave principal.
- La sentencia ALTER TABLE ha tratado de descartar la clave primaria de la tabla nombre pero la tabla carece de clave primaria.
- La sentencia ALTER TABLE ha tratado de descartar la clave de particionamiento de la tabla nombre, pero la tabla carece de clave de particionamiento.
Usuarios de sistemas federados: la restricción puede existir en la fuente de datos (si la tabla padre y la tabla secundaria existen en la fuente de datos).
Algunas fuentes de datos no proporcionan valores adecuados para nombre y tipo-clave. En estos casos, los campos apropiados contienen valores (por ejemplo “desconocido”) que indican que se desconoce el valor real.
No se puede procesar la sentencia. Un catálogo del sistema no puede definirse como superior en una restricción de referencia.
Respuesta del usuario
Cuando cree una restricción de referencia, especifique la clave primaria antes de especificar claves externas (restricciones).
sqlcode: -539
sqlstate: 42888
SQL0540N La definición de la tabla nombre-tabla está incompleta porque carece de un índice primario o de un índice exclusivo necesario.
Explicación
La tabla con nombre se ha definido con una cláusula PRIMARY KEY o con una cláusula UNIQUE. Su definición está incompleta y no puede utilizarse hasta que se haya definido un índice exclusivo para la clave primaria (el índice primario) y para cada conjunto de columnas de cada cláusula UNIQUE (los índices exclusivos necesarios). Se ha efectuado un intento de utilizar la tabla en una cláusula FOREIGN KEY o en una sentencia de manipulación de SQL.
No se puede ejecutar la sentencia.
Respuesta del usuario
Defina un índice primario o un índice exclusivo necesario en la tabla antes de hacer referencia al mismo.
sqlcode: -540
sqlstate: 57001
SQL0541W El nombre de referencia, clave primaria o restricción de unicidad se ignora porque es una restricción duplicada.
Explicación
Si nombre se refiere a una restricción de referencia, quiere decir que hay una cláusula FOREIGN KEY que utiliza la misma clave externa y la misma tabla padre o la misma clave externa y el mismo apodo principal como otra cláusula FOREIGN KEY.
Si nombre se refiere a una restricción de unicidad o a una restricción de clave primaria, quiere decir que se está ante una de las situaciones siguientes:
- Una cláusula PRIMARY KEY utiliza el mismo conjunto de columnas que una cláusula UNIQUE de la sentencia.
- Una cláusula UNIQUE utiliza el mismo conjunto de columnas que la cláusula PRIMARY KEY o que otra cláusula UNIQUE de la sentencia.
- Una restricción PRIMARY KEY o UNIQUE del mismo conjunto de columnas ya existe para la tabla.
nombre es el nombre de la restricción, en caso de que se haya especificado.
Si no se ha especificado el nombre de una restricción, nombre es el primer nombre de columna especificado en la lista de columnas de la cláusula FOREIGN KEY o UNIQUE, seguido de tres puntos.
Usuarios de sistemas federados: la restricción puede existir en la fuente de datos (si la tabla padre y la tabla secundaria existen en la fuente de datos).
Algunas fuentes de datos no proporcionan valores adecuados para nombre. En estos casos, los campos apropiados contienen valores (por ejemplo "desconocido") que indican que el valor real es desconocido.
La restricción de referencia o exclusiva indicada no se ha creado. La sentencia se ha procesado satisfactoriamente.
Respuesta del usuario
No es necesaria ninguna acción. El proceso puede continuar.
sqlcode: +541
sqlstate: 01543
SQL0542N La columna denominada nombre-columna no puede ser una columna de una restricción de clave primaria o de clave exclusiva porque puede contener valores nulos.
Explicación
Se ha definido la columna llamada nombre-columna identificada en una cláusula PRIMARY KEY o una cláusula UNIQUE para permitir valores nulos o se ha intentado modificar una columna que forma parte de una restricción PRIMARY KEY o UNIQUE para permitir valores nulos.
Usuarios de sistemas federados: algunas fuentes de datos no proporcionan los valores apropiados para nombre-columna. En estos casos, los campos apropiados contienen valores (por ejemplo "desconocido") que indican que el valor real es desconocido.
No se puede procesar la sentencia.
Respuesta del usuario
Corrija la definición de la columna, de la clave primaria o de la clave exclusiva. Si se ha devuelto este error como parte de una sentencia de modificación de tabla, se debe eliminar la restricción PRIMARY KEY o UNIQUE para poder modificar la columna a fin de permitir valores nulos.
sqlcode: -542
sqlstate: 42831
SQL0543N Una fila de una tabla padre no se puede suprimir porque la restricción de comprobación nombre-restricción restringe la supresión.
Explicación
No se puede ejecutar la operación de supresión porque la tabla de destino es una tabla padre y está conectada, con una restricción de referencia, a una tabla dependiente con una norma de supresión SET NULL. Sin embargo, la restricción de comprobación definida en la tabla dependiente evita que la columna pueda tener un valor nulo.
No se puede procesar la sentencia.
Respuesta del usuario
Revise la clave externa y su norma de supresión en la tabla dependiente así como la restricción de comprobación que genera el conflicto. Modifique la norma de supresión o la restricción de comprobación de modo que no entren en conflicto entre sí.
sqlcode: -543
sqlstate: 23511
SQL0544N No se puede añadir la restricción de comprobación nombre-restricción porque la tabla contiene una fila que viola la restricción.
Explicación
Por lo menos una de las filas de la tabla infringe la restricción de comprobación que se pretende añadir en la sentencia ALTER TABLE.
No se puede procesar la sentencia.
Respuesta del usuario
Revise la definición de la restricción de comprobación especificada en la sentencia ALTER TABLE y los datos de la tabla para determinar el motivo de que se infrinja la restricción. Modifique la restricción de comprobación o los datos de modo que no se infrinja la restricción.
sqlcode: -544
sqlstate: 23512
SQL0545N La operación solicitada no está permitida porque una fila no satisface la restricción de comprobación nombre-restricción.
Explicación
Se puede infringir la restricción de comprobación en las operaciones INSERT o UPDATE. La fila resultante ha infringido la definición de la restricción de comprobación en esa tabla.
No se puede procesar la sentencia.
Respuesta del usuario
Revise los datos y la definición de la restricción de comprobación en la vista de catálogos SYSCAT.CHECKS para determinar la causa de que la sentencia INSERT o UPDATE haya fallado. Modifique los datos de modo que no se infrinja la restricción.
sqlcode: -545
sqlstate: 23513
SQL0546N La restricción de comprobación nombre-restricción no es válida.
Explicación
Una restricción de comprobación de la sentencia CREATE TABLE, CREATE NICKNAME, ALTER TABLE o ALTER NICKNAME no es válida por uno de los siguientes motivos:
- la definición de la restricción contiene una subconsulta.
- la definición de la restricción contiene una función de columna.
- la definición de la restricción contiene una variable de sistema principal.
- la definición de la restricción contiene un marcador de parámetro.
- la definición de la restricción contiene un registro especial o una función incorporada que depende del valor de un registro especial
- la definición de la restricción contiene una variable global
- la definición de la restricción contiene una función definida por el usuario.
- la definición de la restricción contiene una función definida por el usuario con una acción externa.
- la definición de la restricción contiene una función definida por el usuario con la opción de bloc de notas.
- la restricción de comprobación forma parte de una definición de columna y su condición de comprobación contiene una referencia a un nombre de columna que no es el de la columna que se está definiendo.
- la definición de la restricción contiene una operación de eliminación de referencia o una función DEREF donde el argumento de referencia de ámbito es distinto a la columna de identificador de objeto (OID).
- la definición de la restricción utiliza un predicado TYPE.
- la definición de la restricción incluye una especificación CAST con una cláusula SCOPE.
- la dependencia funcional se define con el atributo ENFORCED.
- una columna anulable se especifica en las columnas del conjunto de hijos de la dependencia funcional.
- la definición de restricción contiene una función de búsqueda de texto.
- la definición de restricción contiene una columna XML.
- la definición de restricción contiene una expresión XMLQUERY o XMLEXISTS.
No se puede procesar la sentencia.
Respuesta del usuario
La respuesta del usuario es una de las siguientes, en función de la causa del error:
- modifique la restricción de comprobación de modo que no incluya el elemento listado.
- traslade la definición de la restricción de comprobación fuera de la definición de la columna, de modo que pase a ser una definición de restricción a nivel de tabla.
- cambie la dependencia funcional para que no especifique el atributo ENFORCED.
- cambie la columna anulable a no anulable en el conjunto de hijos de las columnas de la dependencia funcional.
sqlcode: -546
sqlstate: 42621
SQL0548N Una restricción de comprobación o columna generada definida con check-condition-element no es válida.
Explicación
Una restricción de comprobación de la sentencia CREATE TABLE, CREATE NICKNAME, ALTER TABLE o ALTER NICKNAME no es válida por uno de los siguientes motivos:
- la definición de la restricción contiene una subconsulta.
- la definición de la restricción contiene una función de columna.
- la definición de la restricción contiene una variable de sistema principal.
- la definición de la restricción contiene un marcador de parámetro.
- la definición de la restricción contiene un registro especial o una función incorporada que depende del valor de un registro especial
- la definición de la restricción contiene una variable global
- la definición de la restricción contiene una función que no es determinante.
- la definición de la restricción contiene una función definida por el usuario con una acción externa.
- la definición de la restricción contiene una función definida por el usuario con la opción de bloc de notas.
- la definición contiene una función definida por el usuario con la opción CONTAINS SQL o READS SQL DATA
- la definición contiene una referencia a una columna generada que está basada en una expresión.
- la restricción de comprobación forma parte de una definición de columna y su condición de comprobación contiene una referencia a un nombre de columna que no es el de la columna que se está definiendo.
- la definición de la columna generada contiene una referencia a sí misma
- la definición de la restricción contiene una operación de eliminación de referencia o una función DEREF donde el argumento de referencia de ámbito es distinto de la columna de identificador de objeto (OID).
- la definición de la restricción utiliza un predicado TYPE.
- la definición de la restricción incluye una especificación CAST con una cláusula SCOPE.
- la definición de restricción o de columna generada contiene una función de búsqueda de texto.
- la definición de restricción contiene una columna XML.
- la definición de restricción contiene una expresión XMLQUERY o XMLEXISTS.
- la expresión de columna generada hace referencia a una columna para la que se ha definido una máscara de columna.
El símbolo contenido en el texto del mensaje de error lista el elemento no válido.
No se puede procesar la sentencia.
Respuesta del usuario
La respuesta del usuario es una de las siguientes, en función de la causa del error:
- modifique la restricción de comprobación o columna generada de modo que no incluya el elemento listado.
- traslade la definición de la restricción de comprobación fuera de la definición de la columna, de modo que pase a ser una definición de restricción a nivel de tabla.
sqlcode: -548
sqlstate: 42621
SQL0549N La sentencia sentencia no está permitida para object-type1 object-name1 porque la opción de vinculación DYNAMICRULES RUN no está en vigor para object-type2.
Explicación
Un programa ha intentado emitir la sentencia de SQL indicada que es una de las diversas sentencias de SQL que se pueden preparar dinámicamente únicamente en un paquete que manifiesta un comportamiento de ejecución. Esas sentencias de SQL son:
- Sentencia GRANT dinámica
- Sentencia REVOKE dinámica
- Sentencia ALTER dinámica
- Sentencia CREATE dinámica
- Sentencia DROP dinámica
- Sentencia COMMENT ON dinámica
- Sentencia RENAME dinámica
- Sentencia SET INTEGRITY dinámica
- Sentencia SET EVENT MONITOR STATE dinámica
- Sentencia TRANSFER OWNERSHIP dinámica
- Sentencia CREATE USAGE LIST dinámica
- Sentencia ALTER USAGE LIST dinámica
- sentencia
La sentencia de SQL errónea
- object-type1
PACKAGE o DBRM. DBRM sólo es válido en una conexión DRDA.
- object-name1
Si tipo-objeto1 es PACKAGE, nombre-objeto1 es el nombre del paquete, con el formato 'id-ubicación.id-recopilación.id-paquete'. Si tipo-objeto1 es DBRM, nombre-objeto1 es el nombre del DBRM con el formato 'nombre-plan nombre-DBRM'.
- object-type2
PACKAGE o PLAN. PLAN sólo es válido en una conexión DRDA. Si tipo-objeto1 es PACKAGE, tipo-objeto2 puede ser PACKAGE o PLAN (el que esté vinculado con DYNAMICRULES(BIND)). Si tipo-objeto1 es DBRM, tipo-objeto2 es PLAN.
No se puede ejecutar la sentencia de SQL.
Respuesta del usuario
Realice una de las acciones siguientes para corregir el error:
- Si la sentencia de SQL está incorporada, elimínela, precompile y vuelva a compilar el programa de aplicación, y emita de nuevo el mandato BIND.
- Si procede, utilice la sentencia de SQL con un paquete o un plan que esté vinculado con DYNAMICRULES(RUN).
- Emita el mandato REBIND con la opción DYNAMICRULES(RUN) para el plan o el paquete con el que la sentencia de SQL está vinculada.
sqlcode: -549
sqlstate: 42509
SQL0551N La sentencia ha fallado porque el ID de autorización no tiene la autorización o el privilegio necesarios para realizar la operación. ID de autorización: ID-autorización. Operación: operación. Objeto: nombre-objeto.
Explicación
No se ha podido realizar la operación en el objeto especificado. En general, este mensaje se devuelve porque el ID de autorización no tiene la autorización o el privilegio obligatorio para realizar la operación. En algunos casos, se devuelve para un objeto que no permite la operación, aunque el ID de autorización tenga autorización administrativa.
Este mensaje se puede devolver por diferentes motivos. He aquí algunos ejemplos de escenarios en los que puede aparecer este mensaje:
- Caso de ejemplo 1
Ha fallado un intento de crear o modificar una tabla que tiene restricciones referenciales porque el usuario no tiene privilegios REFERENCE. En caso de ejemplo, el valor de la señal de tiempo de ejecución operation es "REFERENCES" y el valor de la señal de tiempo de ejecución object-name es el objeto al que hace referencia la restricción.
- Caso de ejemplo 2
Falla la ejecución del programa de utilidad DB2 o de la aplicación CLI porque el ID de usuario que ha creado la base de datos ya no existe o ya no tiene los privilegios necesarios para ejecutar el programa de utilidad DB2 o el paquete de CLI.
- Caso de ejemplo 3
La invocación de una rutina falla porque el usuario no tiene privilegios EXECUTE en ninguna rutina de candidato de la vía de acceso de SQL. En este caso de ejemplo, el valor de la señal de tiempo de ejecución object-name es el nombre de una rutina de candidato en la vía de acceso de SQL.
- Caso de ejemplo 4
La creación de una rutina falla porque el ID de usuario que se ha utilizado para enlazar la rutina no tiene los privilegios necesarios para emitir todas las sentencias de la rutina.
- Caso de ejemplo 5
Falla la sustitución de un objeto existente utilizando una sentencia CREATE o REPLACE porque el usuario no es el propietario del objeto.
- Caso de ejemplo 6
Falla un intento de realizar una operación de traslado de tabla en línea porque el usuario no tiene el mismo ID de autorización que el usuario que ha iniciado la operación de traslado de tabla en línea.
- Caso de ejemplo 7
Se ha intentado ejecutar una operación no admitida en una vista estadística generada por el sistema que está asociada con un índice basado en expresiones. Ningún usuario puede modificar los privilegios ni acceder a este tipo de vista estadística. No obstante, los usuarios con la autoridad y privilegios adecuados en la tabla subyacente pueden actualizar las estadísticas de este tipo de vista estadística, bien ejecutando el mandato RUNSTATS o actualizando de forma manual las estadísticas.
- En entornos federados:
Es posible que se devuelve este mensaje cuando fallan las acciones siguientes porque el usuario no tiene la autorización necesaria.
- Modificar una de las opciones de correlación de usuarios siguientes:
- REMOTE_PASSWORD
- FED_PROXY_USER
- USE_TRUSTED_CONTEXT
- Modificar un contexto de usuario de confianza
- Crear o descartar una correlación de usuarios que tiene la opción FED_PROXY_USER o la opción USE_TRUSTED_CONTEXT
- Crear o descartar un servidor que tiene la opción FED_PROXY_USER
- Modificar una de las opciones de correlación de usuarios siguientes:
La autorización necesaria puede estar en el servidor federado, en el origen de datos o en ambos.
Algunos orígenes de datos no proporcionan valores apropiados para las señales de tiempo de ejecución authorization-ID, operation y object-name. En estos casos, las señales de mensaje pueden estar en uno de los siguientes formatos:
- <data source> AUTHID:UNKNOWN
- UNKNOWNM
- <data source> :TABLE/VIEW.
Respuesta del usuario
Si el ID de autorización ID de autorización no tiene la autoridad ni el privilegio requeridos, otorgue el privilegio o autoridad necesarios, si procede.
A continuación se indican las respuestas de los casos de ejemplo descritos en la sección de explicación de este mensaje:
- Caso de ejemplo 1
Otorgue el privilegio REFERENCES utilizando la sentencia GRANT REFERENCES ON object-name TO authorization-ID.
- Caso de ejemplo 2
Vuelva a enlazar los programas de utilidad de DB2 o los paquetes de CLI a la base de datos conectándose a la base de datos y, a continuación, emitiendo uno de los siguientes mandatos CLP desde el subdirectorio bnd del directorio de instancia:
- Para los programas de utilidad DB2: DB2 bind @db2ubind.lst blocking all grant public
- Para los paquetes de CLI: DB2 bind @db2cli.lst blocking all grant public
Si el usuario no tiene privilegios EXECUTE en el paquete, ejecute la sentencia GRANT para otorgar el privilegio EXECUTE.
- Caso de ejemplo 3
Otorgue el privilegio EXECUTE en la rutina al ID de autorización ejecutando la sentencia GRANT.
- Caso de ejemplo 4
Otorgue privilegios específicos al ID de autorización en los objetos a los que están intentando acceder las sentencias de la rutina.
- Caso de ejemplo 5
Responda al caso de ejemplo 5 de una de las maneras siguientes:
- Emita la sentencia como el usuario que es el propietario del objeto que se va a sustituir.
- Transfiera la propiedad del objeto ejecutando la sentencia TRANSFER OWNERSHIP.
- Caso de ejemplo 6
Llame al procedimiento de nuevo, con el mismo ID de autorización que el usuario que ha iniciado la operación de mover tablas en línea.
- Caso de ejemplo 7
Especifique un objeto diferente para la operación.
sqlcode: -551
sqlstate: 5UA0K, 42501
SQL0552N ID-autorización no tiene el privilegio para realizar la operación operación.
Explicación
El ID de autorización ID-autorización ha intentado realizar la operación especificada sin tener la autorización adecuada.
Usuarios del sistema federado: algunos orígenes de datos no proporcionan los valores adecuados para ID de autorización y <operation>. En estos casos, las señales de mensaje tendrán el formato siguiente: "<data source> AUTHID:UNKNOWN" y "UNKNOWN" que indica que no se conocen los valores reales para authid y operación en el origen de datos especificado.
No se puede procesar la sentencia.
Respuesta del usuario
Asegúrese de que el ID-autorización disponga de la autorización necesaria para llevar a cabo esa operación.
Usuarios de sistemas federados: esta autorización puede estar en el servidor federado, la fuente de datos o ambos.
sqlcode: -552
sqlstate: 42502
SQL0553N No se puede crear un objeto con el nombre de esquema nombre-esquema.
Explicación
El motivo por el que el nombre de esquema nombre-esquema no es válido depende del tipo de objeto que se desea crear.
- Los objetos de tabla, vista, índice y paquete no se pueden crear con el nombre de esquema SYSCAT, SYSFUN, SYSPUBLIC, SYSSTAT, SYSIBM, o SYSIBMADM. Es muy recomendable que los nombres de esquema no empiecen con SYS porque otros esquemas adicionales que empiezan con estas letras pueden estar reservados para uso exclusivo de productos de base de datos en el futuro.
- El resto de tipos de objetos (por ejemplo: funciones definidas por el usuario, tipos diferenciados, activadores, esquemas, alias, listas de uso) no pueden crearse con ningún nombre de esquema que empiece por las letras SYS.
No se puede procesar la sentencia.
Respuesta del usuario
Utilice un nombre de esquema válido o elimine el nombre de esquema que ha provocado el error y vuelva a ejecutar la sentencia.
sqlcode: -553
sqlstate: 42939
SQL0554N Un ID de autorización no puede otorgarse un privilegio o autorización a sí mismo.
Explicación
Un ID de autorización ha intentado ejecutar una sentencia que podría otorgar un privilegio o autoridad al ID de autorización. Si es una sentencia GRANT, el propio ID de autorización aparece como una de las entradas de la lista de ID de autorización a la que se otorgan privilegios, autorizaciones, etiquetas de seguridad o excepciones. En el caso de una sentencia CREATE TRUSTED CONTEXT o ALTER TRUSTED CONTEXT, el propio ID de autorización aparece como valor del atributo SYSTEM AUTHID o como uno de los nombres de autorización especificados en la cláusula WITH USE FOR.
No se puede procesar la sentencia.
Respuesta del usuario
Elimine o sustituya el ID de autorización de la sentencia.
sqlcode: -554
sqlstate: 42502
SQL0555N Un ID de autorización no puede revocar un privilegio de sí mismo.
Explicación
Un ID de autorización ha intentado ejecutar una sentencia REVOKE en la que el mismo ID de autorización aparece como una de las entradas de la lista de ID de autorización a los que se revocan privilegios.
No se puede procesar la sentencia.
Respuesta del usuario
Elimine el ID de autorización de la lista.
sqlcode: -555
sqlstate: 42502
SQL0556N Se ha denegado un intento de revocar un privilegio, etiqueta de seguridad, exención o rol de ID-autorización porque ID-autorización no tiene este privilegio, etiqueta de seguridad, exención o rol.
Explicación
No se puede revocar el privilegio, etiqueta de seguridad, exención o rol porque ID-autorización no tiene el privilegio, etiqueta de seguridad, exención o rol.
No se puede procesar la sentencia.
Respuesta del usuario
Modifique la sentencia REVOKE para que cumpla con las normas de REVOKE y vuelva a someter la sentencia. Cuando una sentencia REVOKE lista varios privilegios, etiquetas de seguridad, exenciones o roles que se deben revocar y los ID de autorización, asegúrese de que cada ID de autorización tenga como mínimo uno de los privilegios, etiquetas de seguridad, exenciones o roles especificados.
sqlcode: -556
sqlstate: 42504
SQL0557N La combinación especificada de privilegios no se puede otorgar ni revocar.
Explicación
- La sentencia GRANT o REVOKE contiene una combinación de privilegios de distintas clases. Los privilegios deben ser de la misma clase. Por ejemplo, DATABASE, PLAN o TABLE.
- La sentencia GRANT ha intentado otorgar un privilegio no permitido a una vista. No se puede otorgar ALTER, INDEX y REFERENCES a una vista.
No se puede procesar la sentencia.
Respuesta del usuario
Corrija la sentencia y vuelva a someterla.
sqlcode: -557
sqlstate: 42852
SQL0558N Se ha denegado un intento de revocar un privilegio de authorization-ID porque authorization-ID tiene el privilegio control .
Explicación
El ID-autorización contiene el privilegio control. El privilegio que se debe revocar lo proporciona de forma implícita el privilegio control, por lo que no se puede revocar a menos que el privilegio control también se revoque.
Los valores válidos de control son los siguientes:
- DBADM
- CONTROL
- CREATE NOT FENCED ROUTINE
No se puede ejecutar la sentencia. No se revoca ningún privilegio.
Respuesta del usuario
Revoque el privilegio control, si lo desea.
sqlcode: -558
sqlstate: 42504
SQL0562N La sentencia no se ha ejecutado porque los privilegios de base de datos o esquema especificados no se pueden otorgar al grupo PUBLIC, directa o indirectamente a través de un rol.
Explicación
Puede otorgar privilegios a usuarios o grupos emitiendo la sentencia GRANT.
Este mensaje se devuelve cuando se ha realizado un intento de otorgar privilegios no soportados al grupo PUBLIC, directa o indirectamente utilizando un rol.
Respuesta del usuario
No es necesaria ninguna respuesta.
No se soporta para otorgar autorizaciones administrativas, como DBADM o SCHEMAADM, a PUBLIC.
sqlcode: -562
sqlstate: 42508
SQL0567N La operación ha fallado porque el nombre de autorización especificado no cumple las reglas de denominación de identificadores. Nombre de autorización: nombre-autorización.
Explicación
Existen normas para la denominación de todos los objetos de base de datos, nombres de usuario o nombres de autorización, contraseñas, grupos, archivos y vías de acceso. Algunas de estas normas son específicas de la plataforma en la que se trabaja.
Este mensaje se devuelve cuando un nombre de autorización especificado no cumple las normas de denominación de identificadores. Por ejemplo, este mensaje puede devolverse cuando un nombre de autorización contiene caracteres distintos de A a Z, 0 a 9 y los caracteres especiales que reciben soporte.
No se puede procesar la sentencia.
Respuesta del usuario
Vuelva a realizar la operación, especificando un nombre de autorización que cumpla las normas de denominación de identificadores.
sqlcode: -567
sqlstate: 42602
SQL0569N ID de autorización nombre-autorización no identifica de forma exclusiva un usuario, un grupo o un rol en el sistema.
Explicación
El ID de autorización especificado por la sentencia GRANT o REVOKE no identifica de forma exclusiva a un usuario, rol o grupo en el espacio de nombres de seguridad. La referencia a nombre-autorización es ambigua. Observe que, cuando se utiliza la seguridad DCE, es necesario utilizar siempre la palabra clave USER, GROUP o ROLE.
Respuesta del usuario
Modifique la sentencia para especificar explícitamente la palabra clave USER, GROUP o ROLE e identificar de forma exclusiva el ID de autorización especificado.
sqlcode: -569
sqlstate: 56092
SQL0570W No se han otorgado todos los privilegios solicitados sobre el objeto nombre-objeto de tipo tipo-objeto .
Explicación
Se ha intentado realizar una operación GRANT sobre el objeto nombre-objeto del tipo tipo-objeto, pero no se han otorgado alguno o todos los privilegios. El ID de autorización que ha emitido la sentencia no tiene todos los privilegios que se deben otorgar con la opción GRANT o no tiene autorización ACCESSCTRL o SECADM.
Se han concedido todos los privilegios válidos solicitados.
Respuesta del usuario
Obtenga la autorización obligatoria y vuelva a intentar la operación.
sqlcode: +570
sqlstate: 01007
SQL0572N El paquete pkgname no está operativo.
Explicación
El paquete nombre-paquete está marcado como no operativo y se debe volver a vincular explícitamente (sin especificar RESOLVE CONSERVATIVE) antes de poder utilizarlo. Este paquete no se puede utilizar porque se ha descartado más de una función definida por el usuario que depende de este paquete.
Respuesta del usuario
Vuelva a vincular explícitamente el paquete indicado utilizando el mandato REBIND (sin especificar RESOLVE CONSERVATIVE) o BIND.
sqlcode: -572
sqlstate: 51028
SQL0573N Una lista de columnas especificada en la cláusula de referencias de la restricción nombre no identifica una restricción exclusiva de la tabla padre o apodo nombre-tabla.
Explicación
En la cláusula de referencias se ha especificado una lista de nombres de columnas para la restricción identificada con el nombre nombre que no coincide con los nombres de columnas de la clave primaria o de ninguna clave exclusiva de la tabla nombre-tabla referenciada.
nombre es el nombre de la restricción, en caso de que se haya especificado. Si no se ha especificado un nombre de restricción, nombre es el primer nombre de columna especificado en la lista de columnas de la cláusula FOREIGN KEY seguido de tres puntos.
No se puede procesar la sentencia.
Respuesta del usuario
Corrija la lista de columnas en la cláusula de referencias o añada la restricción de unicidad a la tabla o apodo referenciados.
sqlcode: -573
sqlstate: 42890
SQL0574N El valor DEFAULT o el valor de atributo IDENTITY no es válido para la columna nombre-columna en la tabla nombre-tabla. Código de razón: código-razón.
Explicación
- 1
- El valor no es asignable a la columna porque la constante no tiene el formato de una constante de ese tipo de datos, porque el valor tiene una longitud o precisión incorrecta o porque la función devuelve un tipo de datos incorrecto.
- 2
- Se especifica una constante de coma flotante y la columna no es de tipo de datos de coma flotante.
- 3
- Se especifica una constante decimal y los dígitos distintos a cero se truncarían al asignarlos a la columna.
- 4
- El valor es de más de 254 bytes, incluyendo las comillas para series, los caracteres de introducción como la X para una constante hexadecimal, los nombres de función completamente calificados y los paréntesis. Los blancos no significativos del valor se ignoran. En un entorno de páginas de códigos diferentes, el valor puede ser mayor que 254 bytes debido a la expansión de la serie en la página de códigos de la base de datos.
- 5
- Se especifica el registro especial USER y el atributo de longitud del tipo de datos de serie de caracteres es menor que 8.
- 6
- Se especifica un registro especial de indicación de fecha (CURRENT DATE, CURRENT TIME o CURRENT TIMESTAMP) que no coincide con el tipo de datos de la columna.
- 7
- Se ha especificado una función que no está soportada. La función generada debe ser una de las funciones de conversión (cast) generadas por el sistema o una de las funciones BLOB, DATE, TIME o TIMESTAMP incorporadas.
- 8
- El argumento en una función de fecha/hora no era una constante de serie ni el registro especial de fecha/hora correspondiente.
- 9
- Se ha especificado una función de conversión (cast) generada por el sistema y la columna no está definida con un tipo definido por el usuario.
- 10
- Se ha especificado un valor con una escala distinta de cero para la opción START WITH o INCREMENT BY de una columna de identidad.
- 11
- Se especifica un registro especial como el valor DEFAULT y el atributo de longitud del tipo de datos de serie de caracteres es menor que 128.
- 12
- Se ha especificado una constante decimal de coma flotante y el tipo de datos de la columna no es decimal de coma flotante.
- <0
- Todo código de razón menor que cero es un SQLCODE. El error en la especificación del valor DEFAULT puede determinarse comprobando el mensaje de error correspondiente a este SQLCODE.
No se puede procesar la sentencia.
Respuesta del usuario
Corrija el valor DEFAULT o el valor de atributo IDENTITY en base al código de razón obtenido.
sqlcode: -574
sqlstate: 42894
SQL0575N Ver o tabla de consulta materializada nombre no se puede utilizar porque se ha marcado como no operativo.
Explicación
- COMMENT ON
- DROP VIEW o DROP TABLE
- CREATE ALIAS
- CREATE VIEW o CREATE TABLE
No se puede procesar la sentencia.
Respuesta del usuario
Si nombre es una vista, vuelva a crearla emitiendo una sentencia CREATE VIEW, con la misma definición de vista que la vista no operativa. Si nombre es una tabla de consulta materializada, vuelva a crear la tabla de consulta materializada emitiendo la sentencia CREATE TABLE mediante la misma definición de tabla de consulta materializada igual que en la tabla de consulta materializada no operativa.
sqlcode: -575
sqlstate: 51024
SQL0576N Alias nombre no se puede crear para name2 , ya que daría como resultado una cadena de alias repetitiva.
Explicación
La definición del alias nombre para nombre2 causaría una cadena de alias repetitiva que nunca se resolvería. Por ejemplo, "alias A hace referencia a alias B, el cual hace referencia a alias A" es una cadena de alias repetitiva que nunca se resolvería.
No se puede procesar la sentencia.
Respuesta del usuario
Modifique la definición del alias nombre o revise la definición de uno de los otros alias de la cadena para evitar que la cadena sea repetitiva.
sqlcode: -576
sqlstate: 42916
SQL0577N Rutina definida por el usuario nombre-rutina (nombre específico nombre-específico) ha intentado modificar datos pero no se ha definido como MODIFIES SQL DATA.
Explicación
El programa utilizado para implementar el cuerpo de una rutina no tiene permiso para modificar datos de SQL.
Respuesta del usuario
Elimine las sentencias de SQL que modifiquen datos y, a continuación, vuelva a compilar el programa. Investigue el nivel de SQL permitido como se ha especificado al definir la rutina.
sqlcode: -577
sqlstate: 38002
sqlstate: 42985
SQL0579N Rutina nombre-rutina (nombre específico nombre-específico) ha intentado leer datos pero no se ha definido como READS SQL DATA o MODIFIES SQL DATA.
Explicación
El programa utilizado para implementar el cuerpo de una rutina no tiene permiso para leer datos de SQL.
Respuesta del usuario
Elimine las sentencias de SQL que lean datos y, a continuación, vuelva a compilar el programa. Investigue el nivel de SQL permitido como se ha especificado al definir la rutina.
sqlcode: -579
sqlstate: 38004
sqlstate: 42985
SQL0580N Las expresiones de resultado de una expresión CASE no pueden ser todas NULL.
Explicación
La sentencia contiene una expresión CASE cuyas expresiones de resultado (expresiones que siguen a las palabras THEN y ELSE) están codificadas con la palabra clave NULL.
No se puede procesar la sentencia.
Respuesta del usuario
Modifique la expresión CASE para que incluya por lo menos una expresión de resultado que no sea la palabra clave NULL.
sqlcode: -580
sqlstate: 42625
SQL0581N Los tipos de datos de las expresiones de resultado de una expresión CASE o función DECODE no son compatibles.
Explicación
La sentencia contiene una expresión CASE o una función DECODE que tiene expresiones de resultado (expresiones que siguen a las palabras clave THEN y ELSE para expresiones CASE) que no son compatibles.
El tipo de datos de una expresión CASE o el resultado de una función DECODE se determina mediante las "Normas de los tipos de datos de resultado" de las expresiones resultantes.
No se puede procesar la sentencia.
Respuesta del usuario
Corrija las expresiones de resultado de modo que sean compatibles.
sqlcode: -581
sqlstate: 42804
SQL0582N Una expresión CASE en una cláusula VALUES, predicado IN, cláusula GROUP BY o cláusula ORDER BY no puede incluir un predicado cuantificado, un predicado IN utilizando una selección completa o un predicado EXISTS.
Explicación
- un predicado cuantificado (uno que utilice SOME, ANY o ALL),
- un predicado IN que utilice una selección completa o
- un predicado EXISTS
- una cláusula VALUES
- un predicado IN
- una cláusula GROUP BY o
- una cláusula ORDER BY.
No se da soporte a dichas expresiones CASE. La expresión CASE puede formar parte de una función escrita en SQL.
No se puede procesar la sentencia.
Respuesta del usuario
Elimine el predicado cuantificado, el predicado IN o el predicado EXISTS de la expresión CASE. Si la expresión CASE forma parte de una función, es posible que sea necesario escribir la consulta sin la función que causa el error.
sqlcode: -582
sqlstate: 42625
SQL0583N El uso de la rutina o expresión nombre no es válido porque no es determinista o tiene una acción externa.
Explicación
La rutina (función o método) o expresión está definida como no determinista o como poseedora de una acción externa. Esto no está permitido en el contexto en el que se utiliza la rutina o expresión. Los contextos en los que estas rutinas o expresiones no son válidas son:
- como primer operando del predicado BETWEEN
- en la expresión que precede la primera palabra clave WHEN de una expresión CASE simple.
- como primer argumento de una función DECODE
- como argumento de una función RATIO_TO_REPORT
- en una expresión de una cláusula GROUP BY
- en una expresión de una cláusula ORDER BY (sólo acción externa).
- en una expresión de una cláusula PARTITION BY
- en una cláusula FILTER de una especificación de predicado definida por el usuario o de una definición de extensión de índice
- en la expresión por omisión para una variable o parámetro global de una definición de procedimiento
No se puede procesar la sentencia.
Respuesta del usuario
Si no se pretendía utilizar una rutina no determinista o de acción externa, utilice en su lugar una rutina que no tenga esas características. Si el comportamiento asociado a la rutina no determinista o de acción externa es el deseado, utilice la forma alternativa de las sentencias que convierten en explícita la intención.
- En lugar del predicado BETWEEN, utilice la sentencia correspondiente utilizando la combinación equivalente de predicados de comparación (a>=b y a <=c en lugar de entre b y c).
- En lugar de una cláusula when simple o una función DECODE, utilice la cláusula de búsqueda (searched when) correspondiente donde tendría que especificarse la rutina en la condición de búsqueda.
- Traslada el argumento de la función RATIO_TO_REPORT a una consulta anidada.
- Elimine la rutina o expresión no determinista o de acción externa en la cláusula GROUP BY. Si desea agrupar el resultado en una columna de acuerdo con una rutina no determinista o de acción externa, utilice una expresión de tabla anidada o de tabla común para proporcionar primero una tabla de resultados con la expresión como columna del resultado.
- Elimine la rutina de acción externa de la cláusula ORDER BY. Si la columna forma parte del conjunto de resultados de la consulta, cambie la expresión de la cláusula ORDER BY por el formato de entero simple o de nombre de columna simple de la clave de clasificación.
- Elimine la rutina o expresión no determinista o de acción externa en la cláusula FILTER.
- Elimine la rutina o expresión de acción no determinística o externa de la cláusula por omisión para la variable o el parámetro global de una definición de procedimiento.
sqlcode: -583
sqlstate: 42845
SQL0584N La sentencia ha fallado debido a un uso no válido de la palabra clave NULL o la palabra clave DEFAULT.
Explicación
Al crear una tabla, puede definir los valores predeterminados para una o más columnas. Al insertar o fusionar datos en una tabla con este comportamiento predeterminado definido para algunas columnas, especificando "DEFAULT" en una cláusula VALUES hará que los valores predeterminados se inserten o fusionen en esas columnas.
Puede indicar una ausencia de datos para una columna concreta en una sentencia utilizando la palabra clave NULL,
Hay requisitos y restricciones sobre cómo se pueden utilizar las palabras clave DEFAULT y NULL. Estos son algunos de los ejemplos:
- Ejemplo 1: La palabra clave DEFAULT sólo se puede utilizar en una cláusula VALUES con las sentencias INSERT y MERGE.
- Ejemplo 2: Una cláusula VALUES que no forma parte de una sentencia INSERT debe tener un valor que no sea NULL en, como mínimo, una fila para cada columna, a menos que el tipo de datos de NULL puede resolverse en el contexto de su uso en la sentencia.
- Ejemplo 3: En entornos federados, la palabra clave DEFAULT no se puede utilizar en una cláusula VALUES de una sentencia INSERT en la que el objeto es un apodo.
Respuesta del usuario
Modifique la sentencia para que las palabras clave NULL o DEFAULT no se utilicen de una manera no soportada y, a continuación, vuelva a enviar la sentencia.
sqlcode: -584
sqlstate: 42608
SQL0585N El nombre de esquema nombre-esquema aparece más de una vez en la sentencia special-register establecida.
Explicación
La sentencia SET para el registro especial registro-especial incluye el esquema nombre-esquema más de una vez.
No se puede procesar la sentencia.
Respuesta del usuario
Verifique la lista de la sentencia SET que contiene el duplicado. Si el error sólo es que se ha escrito un nombre de esquema incorrectamente, lo cual hace que se duplique otra entrada, entre el nombre de esquema correctamente y vuelva a emitir la sentencia. Si realmente la entrada es un duplicado, no se precisa ninguna acción.
sqlcode: -585
sqlstate: 42732
SQL0586N La longitud total del registro especial special-register no puede superar la longitud.
Explicación
El registro-especial está definido con una longitud más pequeña que el valor especificado en la sentencia SET. El contenido de la serie incluye cada nombre de esquema entrecomillado y si hay más de un nombre de esquema, éstos están separados por comas. La longitud total de la serie de todos los nombres del registro especial no puede sobrepasar la longitud máxima del registro especial. Una sentencia SET PATH o SET CURRENT PACKAGE PATH podrían dar como resultado este mensaje.
No se puede procesar la sentencia o el programa de utilidad.
Respuesta del usuario
Elimine los nombres de esquema con el fin de reducir la longitud total para que se adecue a la longitud del registro especial. Si la sentencia que ha fallado es SET PATH y si todos los nombres de esquema son obligatorios, será necesario consolidar algunas funciones definidas por el usuario, procedimientos, métodos o tipos diferenciados para que sean necesarios menos nombres de esquema en SQL PATH.
sqlcode: -586
sqlstate: 42907
SQL0590N Nombre nombre especificado en contexto etiqueta-contexto no es exclusivo.
Explicación
El nombre nombre se especifica como un parámetro, variable de SQL, cursor, etiqueta o condición en un contexto definido por código-contexto. El nombre no es exclusivo.
Si etiqueta-contexto es " BEGIN ...END ", el contexto del error es una sentencia compuesta de SQL dinámico. De lo contrario, el contexto del error es un activador o una rutina, y código-contexto es el nombre de activador o de rutina que contiene la sentencia compuesta.
- Si nombre es un nombre de parámetro, debe ser exclusivo en la lista de parámetros y la cláusula EXPRESSION AS de una rutina.
- Si nombre es un nombre de variable de estado, debe ser exclusivo dentro de la lista de variables de estado.
- Si nombre es un nombre de variable de SQL, un nombre de cursor o una condición, debe ser exclusivo en una sentencia compuesta.
- Una etiqueta debe ser exclusiva en una sentencia compuesta y diferente de las etiquetas de las sentencias en las que está anidada.
Respuesta del usuario
Modifique el nombre para que sea exclusivo.
sqlcode: -590
sqlstate: 42734
SQL0593N NOT NULL debe especificarse para una columna ROW CHANGE TIMESTAMP, una columna ROW BEGIN, una columna ROW END o una columna de un periodo. nombre-columna.
Explicación
Las columnas de indicación de fecha y hora de cambio de fila, de inicio de fila y de fin de fila no dan soporte a los valores nulos. Cuando se define una columna de los tipos indicados en una sentencia CREATE TABLE o ALTER TABLE, debe especificarse la cláusula NOT NULL para la columna.
Una columna de un período debe definirse como NOT NULL.
No se puede ejecutar la sentencia.
Respuesta del usuario
Cambie la sentencia para especificar NOT NULL para la columna nombre-columna.
sqlcode: -593
sqlstate: 42831
SQL0595W Nivel de aislamiento nivel-solicitado se ha escalado a nivel-escalado.
Explicación
DB2 no da soporte al nivel de aislamiento especificado. Se ha reajustado al nivel de aislamiento superior siguiente al que da soporte DB2.
Respuesta del usuario
Para evitar que aparezca este aviso, especifique un nivel de aislamiento al que DB2 dé soporte. DB2 da soporte a los niveles de aislamiento de Lectura repetida (RR), Estabilidad de lectura (RS), Estabilidad de cursor (CS) y de Lectura no confirmada (UR).
sqlcode: +595
sqlstate: 01526
SQL0597N No se puede recuperar un valor DATALINK. Código de razón= código-razón.
Explicación
- 01
- DB2 Data Links Manager no autoriza al usuario de DB2 recuperar un valor de DATALINK incorporado a un símbolo de escritura para modificar el archivo referenciado del valor de DATALINK.
Respuesta del usuario
- 01
- Consulte al administrador de DB2 Data Links Manager para que se otorgue el privilegio de acceso de escritura a este archivo.
sqlcode: -0597
sqlstate: 42511
SQL0598W Nombre de índice existente se utiliza como índice para la clave primaria o una clave exclusiva.
Explicación
Se necesitaba un índice para una operación ALTER TABLE que ha definido una clave primaria o una clave exclusiva y el índice indicado coincide con el índice necesario.
Si la descripción de índice de una clave primaria sin particionar o de un índice de clave exclusiva sin particionar identifica el mismo conjunto de columnas (en cualquier orden) que la clave primaria o única y si se ha especificado como exclusiva, se considerará que coincide, independientemente de las especificaciones ascendentes o descendentes.
Sin embargo, los índices particionados cuyas columnas no son un superconjunto de las columnas clave de particionamiento no se consideran que coincidan.
Se procesa la sentencia satisfactoriamente.
Respuesta del usuario
No es necesaria ninguna acción.
sqlcode: +598
sqlstate: 01550
SQL0599W Las funciones de comparación no se crean para un tipo diferenciado basado en un tipo de datos de serie larga.
Explicación
No se crean funciones de comparación para un tipo diferenciado basado en un tipo de datos de serie larga (BLOB, CLOB, DBCLOB, LONG VARCHAR o LONG VARGRAPHIC), ya que las funciones correspondientes no están disponibles para estos tipos de datos incorporados.
Esta es una situación de aviso. Se procesa la sentencia satisfactoriamente.
Respuesta del usuario
No es necesaria ninguna acción.
sqlcode: +599
sqlstate: 01596
SQL0600N No se ha podido generar una rutina nombre-rutina debido a una firma duplicada o porque alteraría temporalmente una rutina existente.
Explicación
Durante la operación CREATE o ALTER, no se ha podido crear una función de conversión generada por el sistema, un método de observador, un método mutante o una función de constructor porque otra función o método con el mismo nombre y signatura ya existe en el esquema o porque el método o función alteraría temporalmente un método que existe.
Respuesta del usuario
Elija otro nombre para el tipo definido por el usuario, atributo o función de conversión que provoca el conflicto, o descarte la función o método que tiene el mismo nombre que la función o método que no ha podido generar.
sqlcode: -600
sqlstate: 42710
SQL0601N El nombre del objeto que se va a crear es idéntico al nombre existente nombre de tipo tipo.
Explicación
La sentencia CREATE o ALTER ha intentado crear o añadir un objeto nombre cuando ya existe un objeto del tipo tipo con dicho nombre en el servidor de aplicaciones o en la misma sentencia.
Si el tipo es FOREIGN KEY, PRIMARY KEY, UNIQUE o CHECK CONSTRAINT, el nombre es el nombre de restricción especificado en la sentencia ALTER NICKNAME, ALTER TABLE, CREATE NICKNAME o CREATE TABLE o generado por el sistema.
Si tipo es ROLE, el nombre es el nombre de rol especificado en la sentencia CREATE o ALTER ROLE.
Si el tipo es DATA PARTITION, el nombre es el nombre de la partición de datos especificado en la sentencia ALTER TABLE o CREATE TABLE.
Este error también se puede producir al registrar un objeto de depósito de esquema XML utilizando un mandato REGISTER o uno de los procedimientos XSR_REGISTER, XSR_DTD o XSR_EXTENTITY. El error se produce cuando el nombre de XSROBJECT ya existe.
Usuarios de sistemas federados: algunas fuentes de datos no proporcionan los valores apropiados para los símbolos de mensaje nombre y tipo. En estos casos, nombre y tipo tendrán el formato siguiente: "OBJECT: <data source> TABLE/VIEW" y "UNKNOWN", que indica que no se conocen los valores reales en el origen de datos especificado.
Si tipo corresponde a un permiso, nombre es el nombre de permiso especificado en la sentencia CREATE PERMISSION.
Si tipo corresponde a una máscara, nombre es el nombre de máscara especificado en la sentencia CREATE MASK.
Si type es un subconjunto de miembros, name es el nombre del subconjunto de miembros especificado en CALL SYSPROC.WLM_CREATE_MEMBER_SUBSET .
No se puede procesar la sentencia. No se crea ningún objeto y no se modifica ni altera el objeto existente.
Respuesta del usuario
Descarte el objeto existente o elija otro nombre para el nuevo objeto.
Usuarios de sistemas federados: si la sentencia es CREATE FUNCTION MAPPING o CREATE TYPE MAPPING, el usuario puede también considerar no proporcionar un nombre de correlación de tipos y el sistema creará automáticamente un nombre exclusivo para esta correlación.
sqlcode: -601
sqlstate: 42710
SQL0602N El índice no se ha creado o modificado porque se han especificado demasiadas columnas, puntos o claves basadas en expresiones.
Explicación
Existe un límite superior para el número de columnas que se pueden incluir en un índice. El número de columnas que se permite en un índice determinado está influenciado por factores como: el tipo de tabla y si las columnas que se incluyen en el índice utiliza la ordenación aleatoria.
Este mensaje se devuelve cuando se intenta crear un índice, alterarlo o crear una extensión de índice y el número de columnas resultante del índice superará el límite superior.
Usuarios de sistemas federados:
- El límite en el número de columnas que se permite en un índice varía para orígenes de datos diferentes.
- Este problema podría detectarse en el servidor federado o bien en el origen de datos.
Respuesta del usuario
Revise las restricciones relacionadas con el número de columnas máximo de un índice. Después, modifique la definición de índice para tener menos columnas.
Usuarios de sistemas federados: cambie la definición de índice para que sea conforme al límite de columnas para la fuente de datos.
sqlcode: -602
sqlstate: 54008
SQL0603N No se puede crear un índice exclusivo porque la tabla contiene datos que producirían entradas de índice duplicadas.
Explicación
El índice definido en la sentencia CREATE INDEX no ha podido crearse como índice exclusivo porque la tabla especificada ya contiene filas que duplican los valores de las columnas y períodos identificados. Si se está definiendo un índice en una columna XML, es posible que se generen valores de índice duplicados desde un documento XML individual.
Si una tabla particionada tiene una partición que se acaba de conectar (es decir, una partición con un valor de 'A' en la columna STATUS de la tabla de catálogos SYSDATAPARTITIONS), es posible que la entrada de índica duplicado exista en la partición que se acaba de conectar. La sentencia CREATE INDEX crea una partición de índice en la partición de tabla que se acaba de crear, aún cuando todavía no se pueden ver lo datos en esa partición.
Usuarios de sistemas federados: esta situación también puede ser detectada por la fuente de datos.
No se puede procesar la sentencia. No se crea el índice especificado.
Respuesta del usuario
Revise los datos para determinar si se permiten los datos duplicados. También puede considerar la posibilidad de crear un índice no UNIQUE (no exclusivo).
Si el índice está particionado y hay particiones que se acaban de conectar en la tabla, ejecute la sentencia SET INTEGRITY para que aparezcan en línea las particiones que se acaban de conectar. Puede eliminar los datos duplicados mediante la sentencia SET INTEGRITY por violación de otras restricciones, por lo que deberá volver a emitir la sentencia CREATE INDEX. Si todavía no se ha creado un índice exclusivo, compruebe los datos que se generarán en entradas de índices duplicados.
sqlcode: -603
sqlstate: 23515
SQL0604N El atributo de longitud, precisión o escala para columna, tipo diferenciado, tipo estructurado, tipo de matriz, atributo de tipo estructurado, rutina, tipo de destino de conversión, correlación de tipos o variable global elemento de datos no es válido.
Explicación
Existe un error en la especificación del tipo de datos en una sentencia CREATE o ALTER, o en una especificación CAST. Puede haberse especificado un atributo de longitud, precisión o escala no válido, o puede que el tipo de datos sea incorrecto o no esté permitido en este contexto. La ubicación del error la proporciona elemento-datos de la manera siguiente:
- Para una sentencia CREATE o ALTER TABLE, elemento-datos proporciona el nombre de la columna que contiene el error o el tipo de datos que contiene un error. Si el tipo de datos de columna es un tipo de datos estructurados o XML, el valor de INLINE LENGTH debe ser, como mínimo, 292 y no debe ser superior a 32673. Para un tipo de datos LOB, el valor de INLINE LENGTH debe ser, como mínimo, el tamaño del descriptor LOB (consulte la sentencia CREATE TABLE) y no puede ser superior a 32673.
- Para una sentencia CREATE FUNCTION, elemento-datos es un símbolo que identifica el área del problema en la sentencia. Por ejemplo, "PARAMETER 2", "RETURNS" o "CAST FROM". En algunos casos, también puede ser el tipo de datos que contiene el error.
- Para una sentencia CREATE DISTINCT TYPE, elemento-datos proporciona el nombre del tipo que se está definiendo o el tipo de datos fuente que contiene el error.
- Para una sentencia CREATE TYPE(matriz), elemento-datos proporciona el tipo de datos que contiene un error. El valor entero especificado dentro de los corchetes debe ser un entero mayor o igual que 1 y no mayor que 2147483647.
- Para una sentencia CREATE o ALTER TYPE, elemento-datos proporciona el tipo de atributo que contiene el error o el nombre del tipo estructurado que tiene un valor de longitud en línea incorrecto. La longitud de línea no puede ser menor de 292 y del tamaño que la función del constructor devuelve para el tipo estructurado.
- Para una sentencia CREATE VARIABLE, elemento-datos proporciona el nombre de la variable que tiene un tipo de datos incorrecto. El tipo de datos de una variable global puede ser cualquier tipo de datos incorporado con la excepción de los tipos LONG, LOB, ARRAY y tipos estructurados. Están permitidos los tipos diferenciados y los tipos de referencia.
- Para CAST(expresión AS tipo-datos), elemento-datos es "CAST" o el tipo de datos que contiene el error.
- Para XMLCAST(expresión AS tipo-datos ), elemento-datos es "XMLCAST" o el tipo de datos que contiene el error.
- Para una correlación de tipos inversa, la expresión [p..p] no puede utilizarse para el tipo de datos remotos. Por ejemplo, la siguiente sentencia (correlación de tipos inversa) es incorrecta.
CREATE TYPE MAPPING tm1 FROM SERVER drdasvr TYPE CHAR([1..255]) TO SYSIBM.VARCHARMientras que la siguiente (correlación de tipos en avance) es correcta.
CREATE TYPE MAPPING tm1 TO SERVER drdasvr TYPE CHAR([1..255]) FROM SYSIBM.VARCHAR
Usuarios de sistemas federados: si la sentencia es CREATE TYPE MAPPING, se ha intentado crear una correlación de tipos en la que un atributo de tipo para el tipo de datos local o el tipo de datos remoto no es válido. Las razones posibles son:
- La precisión/longitud local se ha establecido en 0 o en un valor negativo.
- El atributo de precisión/longitud se ha especificado para tipos de datos, como fecha/hora/indicación de fecha y hora, coma flotante o entero.
- El atributo de escala se ha especificado para tipos de datos, como carácter, fecha/hora/indicación de fecha y hora, coma flotante o entero.
- Se ha especificado la cláusula FOR BIT DATA para un tipo no de caracteres.
- Se ha establecido la precisión remota en 0 para tipos remotos distintos a fecha y hora Informix.
- Está utilizándose un calificador de campo en una correlación de tipos para un tipo de fecha y hora Informix.
- Un valor final es inferior al valor inicial de un rango de escala/precisión.
No se puede procesar la sentencia.
Respuesta del usuario
Corrija la sintaxis y vuelva a intentarlo.
sqlcode: -604
sqlstate: 42611
SQL0605W El índice no se ha creado porque ya existe un índice nombre con una definición coincidente.
Explicación
Una sentencia CREATE INDEX ha intentado crear un índice nuevo que coincide con una definición de índice existente.
Dos definiciones de índice coinciden si identifican las mismas columnas en el mismo orden, con las mismas especificaciones ascendentes o descendentes y ambas imponen la unicidad o sólo el nuevo índice no impone la unicidad.
Dos definiciones de índice también coinciden si identifican las mismas columnas en el mismo orden, con el orden de clave de índice ascendente o descendente igual o inverso y como mínimo un índice soporta las exploraciones hacia adelante e invertidas.
Para tablas particionadas, hay dos definiciones de índice que no coinciden si uno está particionado y el otro sin particionar, aunque coincidan el resto de especificaciones. Los índices particionados y sin particionar de otras definiciones similares pueden coexistir en la misma tabla.
No se ha creado el índice nuevo.
Respuesta del usuario
No es necesaria ninguna acción a menos que el índice existente nombre no sea un índice adecuado. Por ejemplo, el índice existente nombre no es un índice adecuado si no permite exploraciones invertidas y el necesario sí (o viceversa). En este caso, el índice nombre debe descartarse para que se pueda crear el índice necesario.
sqlcode: +605
sqlstate: 01550
SQL0606N La sentencia COMMENT ON o LABEL ON ha fallado porque la tabla o columna especificada no es propiedad de propietario.
Explicación
Se ha intentado poner un comentario o etiqueta en una tabla o una columna que no existe o cuyo propietario no es el especificado en el texto del mensaje.
Ha finalizado el proceso de la sentencia de SQL.
Respuesta del usuario
Corrija la sentencia. Inténtelo de nuevo.
sqlcode: -606
sqlstate: 42505
SQL0607N operación no está definida para los objetos del sistema.
Explicación
La operación especificada en la sentencia de SQL no puede realizarse en objetos del sistema. Se ha intentado realizar una de las siguientes acciones:
- ALTER, DROP o TRANSFER OWNERSHIP de un objeto propiedad del sistema, por ejemplo una tabla de catálogo del sistema, una función incorporada o un tipo de datos incorporado
- COMMENT ON una función integrada propiedad del sistema.
- INSERT, DELETE o TRUNCATE en una tabla de catálogos del sistema.
- UPDATE directamente una tabla de catálogos del sistema. Es posible actualizar algunas columnas de un subconjunto de tablas de catálogos del sistema. Para la operación UPDATE de estas tablas de catálogos, hay que utilizar vistas que se puedan actualizar del esquema SYSSTAT. Para obtener una descripción de las vistas de catálogos que se pueden actualizar (vistas SYSSTAT), consulte la publicación Consulta de SQL.
- CREATE o DROP un índice en una tabla del sistema
- CREATE un activador en una tabla del sistema
- Se ha identificado una tabla del sistema que no se puede actualizar en la cláusula FROM de una sentencia SELECT que contiene una cláusula FOR UPDATE. Para obtener una lista de los catálogos de sistemas que se pueden actualizar, consulte la publicación Consulta de SQL.
- DROP o ALTER un espacio de tablas del sistema.
- DROP o ALTER un grupo de particiones de base de datos del sistema.
- DROP para una carga de trabajo por omisión del sistema.
- ALTER para SYSDEFAULTUSERWORKLOAD con la opción especificada ENABLE, DISABLE, POSITION, ADD o DROP.
- ALTER para SYSDEFAULTADMWORKLOAD con una opción especificada que no sea COLLECT.
- ALTER para una carga de trabajo con SYSDEFAULTADMWORKLOAD o SYSDEFAULTUSERWORKLOAD especificado como valor de la opción POSITION BEFORE o AFTER.
- REDISTRIBUTE los grupos de particiones de base de datos IBMCATGROUP o IBMTEMPGROUP.
- Transferir el propietario de un esquema cuyo nombre comience por "SYS".
- CREATE de un conjunto de acciones de trabajo o un umbral para la carga de trabajo de administración por omisión SYSDEFAULTADMWORKLOAD.
- INSERT en la tabla SYSTOOLS.ADMINTASKS utilizada por el planificador de tarea administrativa (ATS).
- UPDATE de una columna restringida en la tabla SYSTOOLS.ADMINTASKS utilizada por el planificador de tarea administrativa (ATS).
- ALTER de la tabla SYSTOOLS.ADMINTASKS utilizada por el planificador de tarea administrativa (ATS).
No se ha podido realizar una operación administrativa de mover tabla en las tablas de un esquema reservado.
No se puede procesar la sentencia.
Respuesta del usuario
No intente modificar ningún objeto del sistema excepto aquellas columnas de las tablas de catálogos del sistema que se puedan actualizar mediante las vistas SYSSTAT actualizables. Consulte la publicación Consulta de SQL para obtener más información.
sqlcode: -607
sqlstate: 42832
SQL0612N nombre es un nombre duplicado.
Explicación
Se ha emitido una sentencia con el mismo nombre que aparece más de una vez allí donde no se permiten duplicados. El lugar en el que aparecen estos nombres varía dependiendo del tipo de sentencia.
- Las sentencias CREATE TABLE no pueden tener definido el mismo nombre de columna para dos columnas.
- Las sentencias CREATE TABLE que especifican el particionamiento de tabla no pueden definir un nombre de partición de datos idéntico para dos particiones de datos.
- Las sentencias ALTER TABLE no pueden añadir ni asociar una partición de datos a una tabla especificando un nombre de partición que sea igual al de una partición de datos existente de la tabla.
- Las sentencias CREATE VIEW o las definiciones de expresión de tabla común no pueden tener el mismo nombre de columna en la lista de nombres de columna. Si no se especifica ninguna lista de nombres de columna, los nombres de columna de las columnas de la lista de selección de la vista deberán ser únicos.
- La sentencia ALTER TABLE no puede añadir una columna a una tabla empleando una columna que ya exista o que sea la misma que otra columna que se esté añadiendo. Además, sólo se puede hacer referencia a un nombre de columna en una cláusula ADD, DROP COLUMN o ALTER COLUMN de una sentencia ALTER TABLE individual.
- CREATE INDEX no puede especificar más de una vez un nombre de columna como parte de la clave de índice o de las columnas INCLUDE del índice.
- CREATE TRIGGER no puede especificar más de una vez un nombre de columna en la lista de columnas que provoca la activación de un activador de actualización.
- Las sentencias CREATE TABLE OF no pueden tener el mismo nombre definido para la columna REF IS y cualquier atributo del tipo estructurado.
- Las sentencias CREATE TYPE no pueden tener definido el mismo nombre para dos campos en un tipo de datos ROW o dos atributos en un tipo estructurado. Los nombres de campo y de atributo deben ser exclusivos en el tipo y en todos los supertipos.
- Las sentencias ALTER TYPE no pueden añadir un atributo a un tipo estructurado utilizando el nombre de un atributo que ya exista en el tipo o cualquiera de sus subtipos o que sea igual a otro atributo que se esté añadiendo. Asimismo, es posible que el nombre del atributo no sea el mismo que el de la columna REF IS en cualquier tabla creada a partir del tipo estructurado. Además, sólo se puede hacer referencia a un nombre de atributo en una cláusula ADD o DROP ATTRIBUTE de una sola sentencia ALTER TYPE.
- Las sentencias CREATE INDEX EXTENSION no pueden tener definido el mismo nombre para dos parámetros.
- Sólo se puede hacer referencia a un nombre de columna en una cláusula ALTER COLUMN de una sola sentencia ALTER NICKNAME.
- Una lista de argumentos XMLQUERY, XMLEXISTS o XMLTABLE contenía dos argumentos con el mismo nombre.
- Una lista de columnas XMLTABLE contiene dos columnas con el mismo nombre.
- La cláusula de correlación con tipo de una sentencia SELECT no puede contener dos columnas con el mismo nombre.
- Las sentencias CREATE o ALTER TABLE no deben especificar el mismo período más de una vez en una clave exclusiva.
- Las sentencias CREATE o ALTER TABLE no deben definir un período y una columna con el mismo nombre.
- No se puede descartar un período al mismo tiempo que se está añadiendo o modificando en la misma sentencia ALTER TABLE. Por ejemplo, el mismo nombre de período no puede aparecer en la cláusula DROP PERIOD y en la cláusula ADD PERIOD de la misma sentencia ALTER TABLE.
No se puede procesar la sentencia.
Respuesta del usuario
Especifique nombres exclusivos según corresponda al tipo de sentencia.
sqlcode: -612
sqlstate: 42711
SQL0613N La clave primaria, clave exclusiva o clave de particionamiento de tabla identificada por nombre es demasiado larga o tiene demasiadas columnas y puntos.
Explicación
La causa del error es una de las siguientes:
- La suma de las longitudes internas de las columnas de la cláusula PRIMARY KEY o una cláusula UNIQUE que nombre identifica excede el límite de longitud de clave de índice o el número de columnas y dos veces el número de períodos excede el valor máximo, 64. Asimismo, no se puede definir una clave principal o una clave exclusiva utilizando una columna LONG VARCHAR. Si se define la clave primaria o la restricción de unicidad en una tabla con tipo, hay una actividad general adicional de índice lo que reduce el número máximo de columnas especificadas a 63 y limita la longitud en 4 bytes.
- El número de columnas de la cláusula PARTITION BY sobrepasa el máximo de 16.
nombre es el nombre de restricción, si se ha especificado, de la clave principal o restricción de unicidad. Si no se ha especificado ningún nombre de restricción, nombre es el nombre de la primera columna especificada en la cláusula de clave primaria o de restricción de unicidad seguido de tres puntos.
El límite de longitud de la clave de índice se basa en el tamaño de página del espacio de tablas utilizado por el índice:
Max Key Length Page size
-------------- ---------
1K 4K
2K 8K
4K 16K
8K 32K
Para una clave de particionamiento, nombre es el nombre de columna de la columna que sobrepasa el límite.
No se puede procesar la sentencia.
Respuesta del usuario
Modifique la definición de la clave primaria, de la clave exclusiva o de la clave de particionamiento de tabla eliminando una o más columnas de clave o períodos para ajustarse al límite de 64 columnas y al límite de longitud de clave.
sqlcode: -613
sqlstate: 54008
SQL0614N No se puede crear o modificar el índice o la extensión de índice nombre-índice porque la longitud combinada de las columnas especificadas es demasiado larga.
Explicación
No se ha podido crear o modificar el índice porque la suma de las longitudes internas de columna de clave excede el límite de longitud de clave de índice. Además, no se puede crear un índice mediante la columna LONG VARCHAR, LONG VARGRAPHIC ni LOB. Si el índice está definido en una tabla con tipo, hay una actividad general adicional de índice que reduce la longitud máxima en 4 bytes. El índice puede modificarse mediante una sentencia ALTER TABLE o ALTER NICKNAME que modifica el tipo de datos de una o varias columnas.
No se ha podido crear una extensión de índice porque la suma de las columnas devueltas por la función GENERATE KEY excede el límite de longitud de clave de índice.
El límite de longitud de la clave de índice se basa en el tamaño de página del espacio de tablas utilizado por el índice:
Max Key Length Page size
-------------- ---------
1K 4K
2K 8K
4K 16K
8K 32K
No se puede procesar la sentencia. No se ha creado el índice o la extensión de índice especificados o no se ha podido modificar la tabla o apodo.
Respuesta del usuario
Para modificar la definición de índice o alterar la columna, elimine una o varias columnas de claves y reduzca la longitud de clave al máximo permitido. Para una definición de extensión de índice, especifique una función GENERATE KEY distinta o redefina la función para reducir la longitud de la fila devuelta.
sqlcode: -614
sqlstate: 54008
SQL0615N El objeto nombre-objeto de tipo tipo-objeto no se puede descartar porque se está utilizando actualmente.
Explicación
No se puede emitir una sentencia DROP de un objeto cuando está en uso.
No se puede procesar la sentencia. El objeto no se descarta.
Respuesta del usuario
Cierre cualquier cursor que dependa directa o indirectamente del objeto nombre-objeto y vuelva a someter la sentencia.
Para espacios de tablas temporales, emita de nuevo la sentencia cuando el espacio de tablas no esté en uso.
sqlcode: -615
sqlstate: 55006
SQL0620N La sentencia CREATE TABLE ha fallado porque user-id no tiene espacios de base de datos recuperables privados con menos de 255 tablas.
Explicación
No se ha especificado el nombre de espacio db en la sentencia CREATE TABLE, por lo que el gestor de bases de datos ha intentado encontrar un espacio db cuyo propietario fuese id-usuario. Este mensaje aparecerá bajo una de las condiciones siguientes:
- No se han encontrado espacios db privados en la base de datos DB2 para VM para el id-usuario.
- Se han encontrado uno o varios espacios db para el id-usuario, pero cada uno contenía 255 tablas.
- Los espacios db estaban ubicados en agrupaciones de almacenamiento no recuperables. Sólo estarán disponibles los espacios db privados que existen en agrupaciones de almacenamientos recuperables cuando la sentencia CREATE TABLE no especifique el nombre de espacio db.
Ha finalizado el proceso de la sentencia de SQL.
Respuesta del usuario
Las sugerencias para las tres condiciones posibles son:
- Adquiera un espacio db privado de una agrupación de almacenamiento recuperable. Es posible que necesite ayuda del administrador de bases de datos.
- Descarte una tabla de un dbspace privado que resida en una agrupación de almacenamiento para liberar una entrada o realice la acción indicada en (1).
- Si desea crear la tabla en un espacio db existente en una agrupación de almacenamiento recuperable, especifique el nombre del espacio db en el mandato CREATE TABLE. De lo contrario, realice la acción indicada en (1).
A continuación, vuelva a ejecutar la sentencia CREATE TABLE.
Si procede, adquiera un espacio db privado para el usuario.
sqlcode: -620
sqlstate: 57022
SQL0622N La cláusula cláusula no es válida para esta base de datos.
Explicación
La cláusula indicada no es válida porque es incompatible con las características definidas para esta base de datos.
- No se pueden especificar CCSID ASCII y PARAMETER CCSID ASCII cuando está conectado a una base de datos creada con una página de códigos Unicode.
- No se pueden especificar CCSID UNICODE y PARAMETER CCSID UNICODE cuando está conectado a una base de datos creada con una página de códigos no Unicode.
- No se pueden especificar CCSID UNICODE ni PARAMETER CCSID UNICODE en esta sentencia cuando está conectado a una base de datos creada con una página de códigos no Unicode.
- Solo se puede especificar FOR SBCS DATA cuando está conectado a una base de datos creada con una página de códigos de un solo byte.
- Solo se puede especificar FOR MIXED DATA cuando está conectado a una base de datos creada con una página de códigos de doble byte o Unicode.
- La cláusula IN nombre-basedatos.nombre-espacio-tablas o la cláusula IN DATABASE nombre-basedatos se ha especificado utilizando un nombre de base de datos que no corresponde al nombre de la base de datos a la que está conectada actualmente la aplicación.
No se puede procesar la sentencia.
Respuesta del usuario
Cambie o elimine la cláusula y vuelva a emitir la sentencia de SQL.
Para admitir objetos Unicode en una base de datos no Unicode, actualice la configuración de la base de datos para especificar la secuencia de clasificación alternativa (ALT_COLLATE).
sqlcode: -622
sqlstate: 56031
SQL0623N Ya existe un índice de agrupación en clúster en la tabla nombre.
Explicación
La sentencia CREATE INDEX crearía un segundo índice de clústeres en la tabla especificada. Una tabla dada sólo puede tener un índice de clústeres.
No se puede ejecutar la sentencia.
Respuesta del usuario
Determine la identidad y validez del índice de clústeres existentes en la tabla nombre. Tome en consideración la creación del índice sin el atributo CLUSTER.
sqlcode: -623
sqlstate: 55012
SQL0624N La tabla nombre ya tiene una clave primaria o una restricción de unicidad utilizando las columnas y los periodos especificados.
Explicación
Una clave principal o una restricción exclusiva no puede definirse en una sentencia ALTER TABLE porque la tabla indicada ya tiene una clave o restricción de este tipo.
No se puede ejecutar la sentencia.
Respuesta del usuario
Una tabla no puede tener más de una clave principal. Una tabla no puede tener una restricción exclusiva que duplique una restricción existente.
sqlcode: -624
sqlstate: 42889
SQL0628N Están presentes varias palabras clave o en conflicto que implican la cláusula tipo-cláusula .
Explicación
Varios motivos pueden haber causado este diagnóstico para la sentencia. La causa la indica el valor de tipo-cláusula. Las posibles razones incluyen:
- Puede que no se haya especificado la palabra clave en la misma sentencia que otra palabra clave.
- Puede que la palabra clave forme parte de una secuencia de palabras clave en la que no se ha impuesto el orden en que están especificadas. Es posible que, en dicho tipo de secuencia, se haya especificado una palabra clave con la palabra clave opuesta.
- Es posible que la palabra clave aparezca más de una vez con distintos valores asociados.
- Puede que la palabra clave requiera la especificación de otras palabras clave en particular en la misma sentencia que no se han especificado.
- Al aplicar ALTERING en un objeto, se ha especificado una palabra clave que está en conflicto con una propiedad existente del objeto.
- Cuando SE MODIFICA una tabla particionada, las cláusulas ADD, ATTACH y DETACH no están soportadas con ninguna otra cláusula.
- Al crear una tabla CREATING o DECLARING con la cláusula LIKE nombre-tabla, donde nombre-tabla identifica un apodo, la cláusula INCLUDING COLUMN DEFAULTS no tiene ningún efecto y los valores por omisión de la columna no se copian.
- La modalidad de parámetro OUT o INOUT se ha utilizado para definir un parámetro en una función que no da soporte a parámetros OUT o INOUT.
- Se estaba creando una función de tabla genérica utilizando la sentencia CREATE PROCEDURE, con la cláusula RETURNS GENERIC TABLE, y se produjo uno de los errores siguientes:
- Se ha especificado un lenguaje distinto de JAVA con la cláusula LANGUAGE
- Se ha especificado un estilo de parámetro distinto de DB2GENERAL con la cláusula PARAMETER STYLE
- Al crear un activador, el mismo suceso de activador se ha especificado más de una vez.
- Al crear un espacio de tablas, la cláusula "USING STOGROUP" no puede utilizarse con espacios de tablas DMS o SMS.
- Al crear un espacio de tablas, STOGROUP no puede cambiarse para los espacios de tablas de almacenamiento automático temporales.
- Al crear un espacio de tablas, DATA TAG no puede establecerse para un espacio de tablas temporal.
- Al crear un espacio de tablas, DATA TAG no puede establecerse para el espacio de tablas de catálogo del sistema.
- Al crear o alterar una tabla, VERSIONING no puede especificarse con LIKE para tabla-resultados-as o definición-consulta-materializada.
- Al aplicar ALTERING a una tabla de distribución aleatoria utilizando el azar según el método de generación, la cláusula DROP DISTRIBUTION no se soporta.
Respuesta del usuario
Compruebe que la sentencia cumpla con la sintaxis y con las normas definidas para la sentencia. Corrija las apariciones de palabras clave duplicadas o que entren en conflicto.
sqlcode: -628
sqlstate: 42613
SQL0629N SET NULL no se puede especificar porque la columna o FOREIGN KEY nombre no puede contener valores nulos.
Explicación
La opción SET NULL de la sentencia ALTER TABLE o la cláusula FOREIGN KEY indicada no es válida. Para una sentencia ALTER TABLE, no se puede modificar la columna nombre para no permitir valores NULL porque esta columna era la última columna anulable de la restricción de clave foránea con el tipo de acción 'on delete set NULL'.
Para la cláusula FOREIGN KEY, ninguna columna de la clave permite valores nulos. nombre es el nombre de la restricción, en caso de que se haya especificado. Si no se ha especificado un nombre de restricción, nombre es el primer nombre de columna especificado en la lista de columnas de la cláusula FOREIGN KEY seguido de tres puntos.
No se puede procesar la sentencia.
Respuesta del usuario
Para una sentencia ALTER TABLE, elimine la restricción foránea o cambie como mínimo otra columna en esta restricción para que sea anulable. Para la cláusula FOREIGN KEY, cambie una columna de la clave para permitir una asignación al valor nulo o cambie la norma de supresión.
sqlcode: -629
sqlstate: 42834
SQL0631N FOREIGN KEY nombre es demasiado largo o tiene demasiadas columnas.
Explicación
La suma de las longitudes internas de columnas identificadas en la cláusula FOREIGN KEY de la sentencia CREATE TABLE excede del límite de longitud de claves de índice, o el número de columnas identificadas excede de 64. Asimismo, no puede definirse una clave externa utilizando una columna LONG VARCHAR.
nombre es el nombre de restricción, si se ha especificado, de la cláusula FOREIGN KEY. Si no se ha especificado un nombre de restricción, nombre es el primer nombre de columna especificado en la lista de columnas de la cláusula FOREIGN KEY seguido de tres puntos.
El límite de longitud de la clave de índice se basa en el tamaño de página del espacio de tablas utilizado por el índice:
-------------- ---------
1K 4K
2K 8K
4K 16K
8K 32K
No se puede procesar la sentencia.
Respuesta del usuario
Para modificar la definición de la clave externa, elimine una o más columnas de claves para que se cumpla el límite de columnas 64 y el límite de longitudes clave.
sqlcode: -631
sqlstate: 54008
SQL0632N FOREIGN KEY nombre no es válido porque la tabla no se puede definir como dependiente de la tabla nombre-tabla debido a las restricciones de la regla de supresión (código de razón = código-razón).
Explicación
- (01) La relación hace referencia a sí misma y ya existe una relación que hace referencia a sí misma con la norma de supresión SET NULL.
- (02) La relación forma un ciclo de dos o más tablas que hace que la tabla que esté conectada por supresión a sí misma (las demás normas de supresión del ciclo serían CASCADE).
- (03) La relación hace que la tabla esté conectada por supresión a la tabla indicada a través de varias relaciones y la norma de supresión de la relación existente sea SET NULL.
Las normas de supresión de las relaciones existentes provocan el error, no la norma de supresión especificada en la cláusula FOREIGN KEY de la sentencia CREATE TABLE o ALTER TABLE.
nombre es el nombre de restricción, si se ha especificado, de la cláusula FOREIGN KEY. Si no se ha especificado un nombre de restricción, nombre es el primer nombre de columna especificado en la lista de columnas de la cláusula FOREIGN KEY seguido de tres puntos.
No se puede procesar la sentencia.
Respuesta del usuario
Si es posible, elimine la cláusula FOREIGN KEY individual de la sentencia CREATE TABLE o ALTER TABLE.
sqlcode: -632
sqlstate: 42915
SQL0633N La regla de supresión de FOREIGN KEY nombre debe ser delete-rule (código de razón = código de razón).
Explicación
- (01) La restricción de referencia se hace referencia a sí misma y una restricción existente que hace referencia a sí misma tiene la norma de supresión indicada (NO ACTION, RESTRICT o CASCADE).
- (02) La restricción de referencia se hace referencia a sí misma y la tabla es dependiente de una relación con una norma de supresión CASCADE.
- (03) La relación haría que la tabla estuviera conectada por supresión a la misma tabla a través de varias relaciones y estas relaciones deben tener la misma norma de supresión (NO ACTION, RESTRICT o CASCADE).
nombre es el nombre de restricción, si se ha especificado, de la cláusula FOREIGN KEY. Si no se ha especificado un nombre de restricción, nombre es el primer nombre de columna especificado en la lista de columnas de la cláusula FOREIGN KEY seguido de tres puntos.
No se puede procesar la sentencia.
Respuesta del usuario
Si es posible, modifique la norma de supresión.
sqlcode: -633
sqlstate: 42915
SQL0634N La regla de supresión de FOREIGN KEY nombre no debe ser CASCADE (código de razón = código de razón).
Explicación
- (01) Existe una restricción que se hace referencia a sí misma con una norma de supresión SET NULL, NO ACTION o RESTRICT.
- (02) La relación formaría un ciclo que haría que la tabla estuviera conectada por supresión a sí misma. Una de las normas de supresión existentes en el ciclo no es CASCADE, de modo que es posible definir esta relación si la norma de supresión no es CASCADE.
- (03) La relación haría que otra tabla estuviera conectada
por supresión a la misma tabla a través de varias vías de acceso con
normas de supresión diferentes o con la norma de supresión igual
a SET NULL.
nombre es el nombre de restricción, si se ha especificado, de la cláusula FOREIGN KEY. Si no se ha especificado un nombre de restricción, nombre es el primer nombre de columna especificado en la lista de columnas de la cláusula FOREIGN KEY seguido de tres puntos.
No se puede procesar la sentencia.
Respuesta del usuario
Si es posible, modifique la norma de supresión.
sqlcode: -634
sqlstate: 42915
SQL0636N El rango especificado para la partición de datos nombre-partición no es válido. Código de razón= código-razón.
Explicación
El rango especificado para la clave de particionamiento no es válido por una de las siguientes razones:
- 1
El valor STARTING para la partición es mayor que el valor ENDING. Generalmente, el valor STARTING para una partición debe ser menor que el valor ENDING. Sin embargo, el valor de inicio puede ser IGUAL al valor final si AMBOS vínculos son inclusivos. Un vínculo que incluye MINVALUE o MAXVALUE es exclusivo. Por ejemplo, una partición definida como STARTING (1, MINVALUE) ENDING (1, MINVALUE) no es válida (con el código de razón 1) porque los valores de vínculo son iguales y ambos son exclusivos. Aunque sólo un vínculo (por ejemplo, sólo un vínculo STARTING) esté especificado explícitamente, este código de razón se devolverá si los vínculos resultantes (después de que se generen los vínculos que faltan) violan esta regla.
- 3
El valor STARTING no está especificado para la partición con la clave inferior.
- 4
El valor ENDING no está especificado para la partición con la clave superior.
- 5
Un valor STARTING no está especificado cuando el valor ENDING anterior no se ha especificado.
- 7
En DB2 UDB para iSeries solamente: Las particiones de datos no están especificadas en orden ascendente.
- 9
El valor STARTING o ENDING para la partición es demasiado largo. La longitud total de los valores límite de la clave de particionamiento de tabla debe ser inferior o igual a 512 bytes.
- 10
El rango se solapa con otra partición. Cada partición de datos debe tener un límite de inicio y de fin bien definido y cada valor de datos debe ir en una partición de datos y sólo una. Además, si se utiliza el mismo valor (excepto MINVALUE o MAXVALUE) en el límite de fin de una partición y en el límite de inicio de la siguiente partición, por lo menos uno de estos vínculos debe estar definido como EXCLUSIVO. Para una tabla existente, para determinar si los vínculos de una partición son INCLUSIVOS o EXCLUSIVOS, consulte la tabla de catálogo SYSCAT.DATAPARTITIONS de la forma siguiente (substituyendo los valores adecuados de 'esquema-tabla' y 'nombre-tabla'):
SELECT DATAPARTITIONID, DATAPARTITIONNAME, LOWINCLUSIVE, LOWVALUE, HIGHINCLUSIVE, HIGHVALUE FROM SYSCAT.DATAPARTITIONS WHERE TABSCHEMA='table-schema' AND TABNAME='table-name' ORDER BY SEQNO- 11
MINVALUE y MAXVALUE no pueden especificarse cuando la cláusula EVERY está especificada.
- 12
El valor especificado para la cláusula EVERY debe ser mayor que cero y lo suficientemente grande para definir particiones exclusivas.
- 13
Una constante no puede especificarse después de MINVALUE o MAXVALUE en el valor STARTING o ENDING de una partición. Una vez se haya especificado MINVALUE o MAXVALUE todas las columnas subsiguientes (de menor importancia) deben ser MINVALUE o MAXVALUE, respectivamente.
- 14
No se pueden especificar valores especiales decimales de coma flotante como límite inferior, límite superior o incremento cuando está especificada la cláusula EVERY.
- 15
El valor STARTING y el valor ENDING para la partición no pueden ser un valor nulo. Observe que un valor de serie de caracteres con una longitud de cero se trata como un valor nulo cuando el parámetro de configuración de base de datos varchar2_compat se establece en ON.
Si el valor de nombre-partición tiene el formato "PARTITION=value", el nombre de la partición no estaba disponible cuando se produjo el error. El valor proporcionado identifica el valor de inicio y de fin de la partición transgresora en la cláusula de lista de particiones.
No se puede procesar la sentencia.
Respuesta del usuario
Corrija los rangos no válidos para las particiones de datos.
sqlcode: -636
sqlstate: 56016
SQL0637N Palabra clave palabra clave no es válida tal como se utiliza.
Explicación
La sentencia de SQL contiene una especificación duplicada o conflictiva para una cláusula que contiene la palabra clave indicada. Por ejemplo:
- DEFAULT, UNIQUE y PRIMARY sólo se pueden especificar una sola vez en una definición de columna
- UNIQUE y PRIMARY no se pueden especificar al mismo tiempo para una misma definición de columna
- PRIMARY sólo se puede especificar en una sentencia CREATE TABLE
- El atributo especificado para la sentencia PREPARE no puede especificar una opción más de una vez, de lo contrario, existen opciones en conflicto
- ACTIVATE o DEACTIVATE ROW ACCESS CONTROL sólo pueden especificarse una vez.
- ACTIVATE o DEACTIVATE COLUMN ACCESS CONTROL sólo pueden especificarse una vez.
No se puede procesar la sentencia.
Respuesta del usuario
Corrija la sentencia para las cláusulas duplicadas o en conflicto.
sqlcode: -637
sqlstate: 42614
SQL0638N La tabla nombre no se puede crear porque no se ha especificado ninguna definición de columna.
Explicación
La sentencia CREATE TABLE no contiene ninguna definición de columna.
No se puede procesar la sentencia.
Respuesta del usuario
Añada una o más definiciones de columna a la sentencia.
sqlcode: -638
sqlstate: 42601
SQL0644N Se ha especificado un valor no válido para la palabra clave keyword en la sentencia tipo-sentencia.
Explicación
La palabra clave palabra clave va seguida de un valor no válido según permite la descripción de tipo-sentencia. Si el valor es numérico, es posible que el valor esté fuera de un rango definido. Si el valor es de otro tipo, no pertenece al conjunto definido de valores válidos.
Respuesta del usuario
Determine en la documentación de consulta para el tipo-sentencia cuáles son los valores válidos y realice al cambio apropiado.
sqlcode: -644
sqlstate: 42615
SQL0647N Bufferpool nombre-bufferpool no está activo actualmente.
Explicación
La agrupación de almacenamientos intermedios nombre-agrup-almacenamientos-intermedios no está activa en el entorno actual de base de datos. Se ha efectuado un intento de encontrar otra agrupación de almacenamientos intermedios con el mismo tamaño de página pero no hay tales agrupaciones de almacenamientos intermedios activas en el entorno de base de datos actual. La agrupación de almacenamientos intermedios nombre-agrup-almacenamientos-intermedios se ha definido recientemente pero no se ha activado todavía.
No se puede procesar la sentencia.
Respuesta del usuario
La base de datos debe detenerse y volverse a arrancar para activar la agrupación de almacenamientos intermedios necesaria.
sqlcode: -647
sqlstate: 57003
SQL0648N La clave foránea no se puede definir porque provocará que la tabla owner1.table-name1 se conecte por supresión a la tabla owner2.table-name2 a través de varias vías de acceso. Código de razón= código-razón.
Explicación
- 01
- La relación hará que la tabla propietario1.nombre-tabla1 esté conectada por supresión a la tabla propietario2.nombre-tabla2 a través de varías vías de acceso con la misma norma de supresión de SET NULL.
- 02
- La relación hará que la tabla propietario1.nombre-tabla1 esté conectada por supresión a la tabla propietario2.nombre-tabla2 a través de múltiples vías de acceso con diferentes normas de supresión.
Ha finalizado el proceso de la sentencia de SQL.
Respuesta del usuario
Corrija la sentencia. Inténtelo de nuevo.
sqlcode: -648
sqlstate: 42915
SQL0650N No se ha ejecutado la sentencia ALTER. Código de razón: código-razón.
Explicación
No se permite realizar la operación ALTER de un índice o una tabla tal y como se ha especificado.
El código de razón indica más específicamente la naturaleza del problema:
- 23
La compresión no se puede modificar para los índices siguientes: índices de bloque MDC o ITC, índices de tablas temporales globales, índices de tablas agrupadas por clústeres de rangos generadas y especificaciones de índice.
- 30
Se ha realizado un intento para modificar la tabla de latencia, SYSTOOLS.REPL_MQT_LATENCY.
- 31
Se ha intentado cambiar una columna de la tabla base de la tabla de duplicación a un tipo de datos no soportado en las tablas base de las tablas de duplicación.
Respuesta del usuario
Corrija la sentencia ALTER para evitar la restricción indicada por el código de razón y, después, emita de nuevo la sentencia.
sqlcode: -650
sqlstate: 56090
SQL0658N La sentencia ha fallado porque el objeto denominado nombre no se puede descartar, modificar o sustituir explícitamente.
Explicación
Este mensaje se puede devolver cuando se intenta alterar o descartar explícitamente un objeto que no soporta la sentencia ALTER o DROP:
- Los objetos restringidos de ser alterados explícitamente incluyen funciones declaradas como LANGUAGE SQL y funciones derivadas. Los objetos restringidos de ser explícitamente descartados incluyen los permisos de fila por omisión.
Este mensaje también se puede devolver cuando un objeto no se puede alterar, descartar o sustituir explícitamente debido a dependencias indirectas u otros errores, incluyendo los siguientes ejemplos:
- El descarte de un objeto ha fallado debido a que el sistema había creado el objeto implícitamente. Ejemplos de objetos:
- Una función de conversión de tipo de datos o de comparación que se generó cuando se emitió la sentencia CREATE TYPE
- Un paquete que se creó para utilizarlo con un procedimiento SQL
- Se ha hecho un intento de emitir la sentencia CREATE VIEW con la cláusula OR REPLACE, especificando el nombre de la vista que se creó para utilizar con un índice basado en expresión.
- Se ha hecho un intento de utilizar la sentencia DROP THRESHOLD para descartar un umbral que se definió en el contexto de un conjunto de acciones de trabajo.
- Se ha hecho un intento de alterar el apodo para no permitir el almacenamiento en antememoria, pero se hace referencia al apodo mediante una consulta fullselect de una definición de tabla de consulta materializada.
Respuesta del usuario
Responda a este error realizando los pasos de resolución de problemas siguientes:
- Revise las restricciones para la sentencia ALTER relacionadas con el objeto denominado en la señal de tiempo de ejecuciónnombre. Para objetos que no se pueden alterar explícitamente utilizando la sentencia ALTER, descarte y, a continuación, vuelva a crear los objetos con los cambios deseados.
- Para descartar los objetos generados por el sistema, descarte los objetos que provocaron que se crearan objetos generados por el sistema.
- Para descartar un umbral que se definió en el contexto de un conjunto de acciones de trabajo, utilice la sentencia ALTER WORK ACTION SET o la sentencia DROP WORK ACTION SET.
- Para alterar un apodo para no permitir el almacenamiento en antememoria, elimine todas las referencias al apodo desde cualquier definición de tabla de consulta materializada.
- Para descartar permisos de fila predeterminados para una tabla, emita la sentencia ALTER TABLE, especificando la cláusula DEACTIVATE ROW ACCESS CONTROL.
sqlcode: -658
sqlstate: 42917
SQL0659N Se ha sobrepasado el tamaño máximo de un objeto de tabla.
Explicación
- Datos: donde se almacenan los datos de columna básicos.
- Índice: donde se almacenan todos los índices de la tabla.
- Datos extensos: donde se almacenan los datos de las columnas LONG VARCHAR y LONG VARGRAPHIC.
- Lob/Asignación Lob: donde se almacenan los datos de las columnas BLOB, CLOB y DBCLOB y la información de control.
- XML: aquí es donde se almacenan los datos XML.
Cuando un objeto de almacenamiento ha alcanzado su tamaño máximo, no se puede ampliar más.
Respuesta del usuario
- Reorganice la tabla.
- Suprima de la tabla las filas que ya no necesite.
- Descarte un índice de la tabla.
- Actualice las filas para reducir la cantidad de datos (después de esta acción puede ser necesario emitir un mandato reorg para restituir almacenamiento no utilizado).
- Suprima los documentos XML que no sean necesarios
sqlcode: -659
sqlstate: 54032
SQL0663N El número de valores de particionamiento no es correcto para la partición de datos nombre-partición.
Explicación
Se ha especificado un número incorrecto de valores límite de clave de particionamiento de datos en la cláusula STARTING o ENDING para la partición de datos. Si la especificación de la partición de datos incluía una cláusula EVERY, sólo puede haber una columna de clave de particionamiento de tabla con un tipo de datos numérico o de fecha y hora. Si el valor de nombre-partición tiene el formato "PARTITION=value", el nombre de la partición no estaba disponible cuando se produjo el error. El valor proporcionado identifica el valor de inicio y de fin de la partición transgresora en la cláusula de lista de particiones.
Respuesta del usuario
Cambie el número de valores especificados en la cláusula STARTING o ENDING para que coincida con el número de columnas de la clave de particionamiento de tabla. Otra alternativa consiste en cambiar el número de columnas de la clave de particionamiento de tabla.
sqlcode: -663
sqlstate: 53038
SQL0667N No se puede crear FOREIGN KEY nombre porque la tabla contiene filas con valores de clave foránea que no se pueden encontrar en la clave padre de la tabla padre.
Explicación
La definición de la clave externa indicada ha fallado porque la tabla que se está modificando contiene como mínimo una fila donde la clave externa no coincide con el valor de la clave padre de la tabla padre.
nombre es el nombre de la restricción, en caso de que se haya especificado. Si no se ha especificado un nombre de restricción, nombre es el primer nombre de columna especificado en la lista de columnas de la cláusula FOREIGN KEY seguido de tres puntos.
No se puede procesar la sentencia. No se modifica la tabla especificada.
Respuesta del usuario
Elimine las filas erróneas de la tabla y defina una clave externa.
sqlcode: -667
sqlstate: 23520
SQL0668N Operación no permitida para el código de razón código de razón en la tabla nombre-tabla.
Explicación
El acceso a la tabla nombre-tabla está restringido. La causa se basa en los siguientes códigos de razón código-razón:
- 1
Se puede devolver el código de razón 1 en varios escenarios, incluidos los ejemplos siguientes:
- La tabla está en estado sin acceso pendiente de establecer integridad, lo que significa que la integridad de la tabla no es obligatoria y el contenido de la tabla podría no ser válido.
- Es posible que una operación en una tabla padre o una tabla subyacente que no está en estado Sin acceso pendiente de establecimiento de integridad también reciba este error si una tabla dependiente está en estado Sin acceso Pendiente de establecimiento de integridad.
- Se ha intentado emitir la sentencia SET INTEGRITY en una tabla de consulta materializada mantenida por el usuario sin especificar la cláusula IMMEDIATE UNCHECKED.
- 2
La tabla está en estado Sin movimiento de datos. Cuando se está en este estado, no están permitidas las operaciones que causen el movimiento de datos. Entre las operaciones de movimiento de datos se incluyen REDISTRIBUTE, la actualización de clave de particionamiento de base de datos, la actualización de clave de clústeres multidimensionales, la actualización de clave de clústeres de rango, la actualización de clave de particionamiento de tablas y REORG TABLE.
- 3
La tabla está en estado de carga pendiente. Ha fallado un intento anterior de LOAD en esta tabla. No se permite ningún acceso a la tabla hasta que la operación LOAD se reinicie o termine.
- 4
La tabla está en estado Acceso de lectura. Este estado puede producirse durante el proceso en línea de LOAD (LOAD INSERT con la opción READ ACCESS), o después de una operación LOAD en línea, pero antes de haber validado todas las restricciones en la parte recién añadida de la tabla mediante la sentencia SET INTEGRITY. Este estado también puede darse si se utilizó la cláusula READ ACCESS al desactivar la comprobación de integridad con la sentencia SET INTEGRITY. En esta tabla no se permite ninguna actividad de actualización.
- 5
La tabla está en estado Carga en proceso. El programa de utilidad LOAD está operando en esta tabla, no se permite ningún acceso hasta que LOAD haya finalizado.
- 6
Las tablas de consulta materializada que hacen referencia a un apodo no se pueden renovar en DB2 Enterprise Server Edition.
- 7
La tabla está en estado pendiente de reorganización. Esto puede producirse cuando una sentencia ALTER TABLE contiene una operación recomendada por REORG.
- 8
La tabla está en estado pendiente de modificación. Esto se puede producir al utilizar la tabla en la misma unidad de trabajo que una sentencia ALTER TABLE que contenga una operación recomendada por REORG.
- 9
La tabla está en el estado Pendiente de redistribución. El programa de utilidad REDISTRIBUTE no ha terminado su proceso en esta tabla; no se permite ningún acceso hasta que REDISTRIBUTE haya finalizado.
- 10
La tabla es la tabla fuente para una operación ADMIN_MOVE_TABLE en marcha. La operación que se ha intentado está restringida hasta que finalice o se cancela la operación de mover.
- 11
La tabla, que tiene un índice sin particiones, tiene una nueva partición de datos a la que la operación intenta acceder en la misma transacción que la operación de adición o enlace que ha creado la partición, pero la transacción no tiene la tabla bloqueada en modo exclusivo.
Respuesta del usuario
Responda a este error de acuerdo con el código de razón siguiente:
- 1
Saque la tabla denominada nombre-tabla del estado Sin acceso Pendiente de establecimiento de integridad según el tipo de tabla:
- Para una tabla de consulta materializada mantenida por el usuario, ejecute la sentencia con la opción IMMEDIATE UNCHECKED.
- Para tablas de consulta materializada que no están mantenidas por el usuario, ejecute la sentencia SET INTEGRITY con la opción IMMEDIATE CHECKED.
- 2
Ejecute la sentencia REFRESH TABLE en las tablas de consulta y tablas por etapas, materializadas de forma inmediata y dependientes, de la tabla nombre-tabla. El contenido de estas tablas de consulta materializada dependientes inmediatas y las tablas de etapas se puede mantener de forma incremental a partir de los datos añadidos de nombre-tabla mediante operaciones LOAD INSERT anteriores y a partir de los datos adjuntos de nombre-tabla mediante sentencias ALTER TABLE anteriores con la cláusula ATTACH.
- 3
Saque la tabla del estado "Carga pendiente".
- 4
Si el estado de Acceso de lectura era debido a una carga, emita el mandato LOAD QUERY para comprobar si la tabla está en proceso de carga. Si la respuesta es afirmativa, espere hasta que se haya completado el programa de utilidad LOAD o, si es necesario, reinicie o termine la operación LOAD que falló anteriormente. Si LOAD no está en proceso actualmente, emita la sentencia SET INTEGRITY con la opción IMMEDIATE CHECKED para validar las restricciones en la parte recién cargada de la tabla.
Si el estado de Acceso de lectura era debido a una desactivación de la comprobación de integridad, emita la sentencia SET INTEGRITY con la opción IMMEDIATE CHECKED.
- 5
Espere a que se haya completado la operación LOAD actual. Puede utilizar el mandato LOAD QUERY para supervisar el proceso de carga.
- 6
Defina una tabla de consulta materializada utilizando la opción MAINTAINED BY USER. A continuación, utilice una sentencia INSERT con una subconsulta para llenar la tabla de consulta materializada.
- 7
Reorganice la tabla utilizando el mandato REORG TABLE.
Para una tabla en el estado pendiente de reorganización, tenga en cuenta que las cláusulas siguientes no están permitidas cuando se reorganiza la tabla:
- La cláusula INPLACE REORG TABLE
- La cláusula ON DATA PARTITION para una tabla particionada cuando la tabla tiene definidos índices no particionados
- 8
Complete la unidad de trabajo y vuelva a emitir el mandato.
- 9
Si el programa de utilidad REDISTRIBUTE está trabajando, espere a que finalice de trabajar en la tabla actual. Puede utilizar el mandato LIST UTILITIES para supervisar el progreso del programa de utilidad REDISTRIBUTE. Si una operación REDISTRIBUTE anterior falló y dejó la tabla en este estado, ejecute de nuevo el programa de utilidad con la opción CONTINUE o ABORT y deje que el programa finalice su proceso en esta tabla.
- 10
Finalice o cancele la operación de mover tabla y vuelva a emitir el mandato. Puede consultar la tabla SYSTOOLS.ADMIN_MOVE_TABLE para obtener información sobre el estado de la operación de mover.
- 11
Modifique la aplicación de modo que las transacciones que incluyan operaciones de partición de adición o enlace se confirmen antes de que la aplicación acceda a las nuevas particiones en las que la tabla de destino tiene un índice sin particiones. De forma alternativa, modifique la aplicación de modo que una tabla que tenga un índice sin particiones y que esté afectada por la operación de adición o enlace en línea se bloque de forma exclusiva cuando se acceda a una nueva partición en la misma transacción que la operación de adición o enlace que ha creado la partición.
sqlcode: -668
sqlstate: 57007
SQL0669N Un índice necesario del sistema no se puede descartar explícitamente.
Explicación
La sentencia DROP INDEX ha intentado descartar un índice necesario para:
- imponer la restricción de la palabra clave en una tabla
- imponer una restricción de unicidad en una tabla
- imponer la exclusividad en la columna del identificador de objetos (OID) de una jerarquía de tablas con tipo
- mantener una tabla de consulta materializada duplicada
- mantener una columna XML en la tabla
- mantener una definición de clave de fila de HBase
Un índice necesario del sistema no se puede descartar mediante la sentencia DROP INDEX.
No se puede procesar la sentencia. No se ha descartado el índice primario.
Respuesta del usuario
Si no desea mantener la restricción principal o exclusiva, utilice la cláusula DROP PRIMARY KEY o la cláusula DROP CONSTRAINT de la sentencia ALTER TABLE para eliminar la clave principal o la restricción de unicidad. Si el índice se había creado solamente para hacer cumplir la clave primaria o la clave exclusiva quedará descartado. Si no, podría procesarse entonces la sentencia DROP INDEX.
El índice para una columna OID sólo puede descartarse mediante el descarte de la tabla.
El índice necesario para mantener una tabla de consulta materializada duplicada sólo se puede descartar eliminando primero la tabla de consulta materializada duplicada.
Los índices necesarios para el sistema asociados con una o varias columnas XML de una tabla no se pueden descartar explícitamente. El gestor de bases de datos mantiene los índices de este tipo para soportar la columna XML de la tabla. El índice especificado en la sentencia DROP INDEX no se puede descartar sin descartar la tabla.
Para los usuarios de HBase, el índice sólo puede descartarse implícitamente cuando se descarta la tabla de HBase asociada.
sqlcode: -669
sqlstate: 42917
SQL0670N La sentencia ha fallado porque el tamaño de fila o columna de la tabla resultante habría superado el límite de tamaño de fila o columna: límite. Nombre de espacio de tablas: nombre_espacio_tabla. Tamaño de columna o fila resultante: tamaño_calculado.
Explicación
El tamaño de fila de una tabla es la suma de los recuentos de bytes de las columnas, incluidas las longitudes en línea de todas las columnas de tipo XML o estructurado. Por lo tanto, el tamaño de fila se ve afectado por el número total de columnas, el número total de columnas LOB, y el tipo de datos de las columnas.
El límite de tamaño de fila es el número máximo de bytes de una tabla determinada. Este límite consta de un valor definido en algunos casos o un valor de variable que depende del tamaño de página del espacio de tabla.
En una tabla organizada en columnas, el límite de tamaño de columna consta del tamaño máximo de un valor de datos de columna no comprimido que se ajusta a una página de la tabla.
El mensaje se recibe cuando se intenta crear o modificar una tabla utilizando una de las sentencias siguientes:
- CREATE TABLE
- Sentencia ALTER TABLE
- DECLARE GLOBAL TEMPORARY TABLE
- CREATE GLOBAL TEMPORARY TABLE
El mensaje también se puede devolver cuando una tabla de agrupación en clúster multidimensional (MDC) de un tamaño de fila ampliado tiene una clave de dimensión VARCHAR, VARGRAPHI o VARBINARY que es mayor de 24 bytes.
Este mensaje también se puede devolver cuando una tabla de base organizada en columnas hace que la tabla de sinopsis asociada supere el límite de tamaño. Cuando sucede esto, la señal de límite indicará que la tabla de sinopsis ha superado el límite.
Respuesta del usuario
Para resolver el problema notificado por este mensaje, lleve a cabo los pasos siguientes:
Para los límites de tamaño de fila:
- Calcule el tamaño de fila de la tabla que está intentando crear o modificar.
- Determine el límite o la restricción que ha superado el tamaño de fila.
- Para tablas organizadas en filas: el límite de tamaño de fila se determina por el tamaño de página del espacio de tabla.
- Para tablas organizadas por columnas: el límite es el tamaño de fila máximo de tabla organizada por columnas.
- Realice una de las acciones siguientes:
- Reduzca el tamaño de fila reduciendo las longitudes de una o más columnas, especificando un tipo de datos diferente o eliminando una o más columnas.
- Sólo para tablas organizadas en filas: Especifique en la sentencia un espacio de tabla con un tamaño de página que se ajuste al tamaño de fila que ha calculado.
- Si no es posible reducir el tamaño de fila o encontrar un espacio de tabla con un tamaño de página mayor, habilite el parámetro de configuración del tamaño de fila ampliado, extended_row_sz, que le permite que la longitud de la fila supere la longitud de registro máxima para el tamaño de página del espacio de tabla.
Para los límites de tamaño de columna:
- Determine el tamaño de columna máximo para la tabla que está intentando crear o modificar, basándose en el tipo de columna el y tamaño de página subyacente.
- Reduzca la longitud de la columna afectada para que no supere el límite.
sqlcode: -670
sqlstate: 54010
SQL0672N Operación DROP no permitida en la tabla nombre-tabla.
Explicación
La operación DROP ha fallado por una de las razones siguientes:
- La tabla que se descarta tiene el atributo RESTRICT ON DROP.
- El espacio de tablas o grupo de particiones de base de datos que se está descartando contiene la tabla especificada, que tiene el atributo RESTRICT ON DROP.
No se puede ejecutar la sentencia DROP.
Respuesta del usuario
Si el problema se ha producido una sentencia DROP TABLE, emita una sentencia ALTER TABLE utilizando la cláusula DROP RESTRICT ON DROP. A continuación, vuelva a emitir la sentencia DROP TABLE.
Si el problema se ha producido durante la ejecución de la sentencia DROP TABLESPACE o DROP DATABASE PARTITION GROUP, asegúrese de que no haya otras tablas en el espacio de tablas o el grupo de particiones de base de datos con el atributo RESTRICT ON DROP. La siguiente sentencia SELECT puede ayudarle a identificar las tablas:
SELECT TB.TABNAME, TB.TABSCHEMA,
TS.TBSPACE, TS.NGNAME
FROM SYSCAT.TABLES TB,
SYSCAT.TABLESPACES TS
WHERE TYPE = 'T' AND
DROPRULE = 'R' AND
TB.TBSPACEID = TS.TBSPACEID
ORDER BY TS.NGNAME, TS.TBSPACE,
TB.TABSCHEMA, TB.TABNAME;
Después de identificar las tablas con el atributo RESTRICT ON DROP, emita una sentencia ALTER TABLE utilizando la cláusula DROP RESTRICT ON DROP para cada tabla con el atributo RESTRICT ON DROP. A continuación, vuelva a emitir la sentencia DROP TABLESPACE o DROP DATABASE PARTITION GROUP.
sqlcode: -672
sqlstate: 55035
SQL0673N No se puede crear un índice de clave primaria o exclusiva porque la tabla contiene filas duplicadas con respecto a los valores de las columnas de clave primaria o exclusiva identificadas de la restricción nombre.
Explicación
La definición de clave principal o exclusiva de la restricción identificada por nombre ha fallado porque la tabla que se está modificando ya contiene filas con valores duplicados para las columnas de las cláusulas PRIMARY KEY o UNIQUE.
nombre es el nombre de la restricción, en caso de que se haya especificado. Si no se ha especificado ningún nombre de restricción, nombre es el nombre de la primera columna especificada en la cláusula de clave primaria o de restricción de unicidad seguido de tres puntos.
No se puede procesar la sentencia. No se modifica la tabla especificada.
Respuesta del usuario
Elimine las filas erróneas de la tabla antes de intentar definir la clave principal o exclusiva.
sqlcode: -673
sqlstate: 23515
SQL0678N El literal literal debe ser compatible con el tipo de datos tipo-datos de la columna nombre-columna.
Explicación
El literal literal especificado para la cláusula STARTING, ENDING o EVERY no es compatible con el tipo de datos de la columna nombre-columna. El tipo de datos de la columna es tipo-datos. El valor de un literal utilizado en la cláusula EVERY no puede ser cero ni negativo. La cláusula EVERY debe especificar una duración cuando la cláusula PARTITION BY especifica un tipo de datos de fecha y hora.
Respuesta del usuario
Especifique un literal válido en la cláusula STARTING, ENDING o EVERY.
sqlcode: -678
sqlstate: 53045
SQL0680N La sentencia ha fallado porque se han especificado demasiadas columnas para una tabla, vista, función de tabla o apodo, o porque se han especificado demasiados campos para un tipo de datos de fila definido por el usuario.
Explicación
El número máximo de filas que puede definirse para una tabla depende del tipo de objeto.
El número máximo de columnas que puede definirse para una vista, función de tabla o apodo y el número máximo de campos permitido para un tipo de datos de fila definido por el usuario se especifican en los límites de SQL y XML.
Para tablas, el número máximo de columnas se ve afectado por el número de columnas LOB especificado. La sección del límite de tamaño de fila de la sentencia CREATE TABLE incluye una fórmula para calcular el tamaño de fila de una tabla.
Para fuentes de bases de datos relacionales de entornos federados, los apodos también pueden estar limitados por el número máximo de columnas para tablas o vistas en la fuente de datos cuando estos límites son inferiores a los valores especificados en los límites de SQL y XML.
Este mensaje se devuelve en los siguientes escenarios:
- Se intenta crear un objeto, como una tabla, una vista, una función de tabla o un apodo para una tabla con más columnas del número máximo de columnas permitido.
- Se intenta crear un tipo de datos de fila definido por el usuario con más campos del número máximo de campos permitido.
Respuesta del usuario
Asegúrese de que la cantidad de columnas o campos no supere el límite.
Para resolver el problema notificado por este mensaje, lleve a cabo una de las acciones de resolución de problemas siguientes:
- Creación de una tabla
- Revise los límites de SQL y XML del gestor de datos. Particularmente, revise los límites de SQL y XML Del gestor de bases de datos que son específicos del tamaño de página.
- Vuelva a diseñar la tabla para que tenga menos columnas, utilice un tipo de datos distinto de los LOB para reducir el tamaño de fila o indique un espacio de tablas con un tamaño de página que permita utilizar un número de columnas superior y emita de nuevo la sentencia CREATE TABLE.
- Crear una vista o una función de tabla en una tabla
- Revise los límites del gestor de bases de datos, rediseñe la tabla para que cumpla los límites de SQL y vuelva a crear la función de vista o tabla.
- Crear un apodo en una tabla o vista en una fuente de datos federada
- Revise los límites del gestor de datos y los límites de SQL de la fuente de datos para tablas o vistas, vuelva a diseñar el apodo para que cumpla estos límites y créelo de nuevo.
- Crear un tipo de datos de fila
- revise los límites de SQL y XML, vuelva a diseñar el tipo de datos para que tenga menos campos y cumpla los límites de SL y, a continuación, cree de nuevo el tipo de datos de fila.
sqlcode: -680
sqlstate: 54011
SQL0683N La especificación para la columna, atributo, tipo definido por el usuario o función elemento de datos contiene cláusulas incompatibles.
Explicación
Existe un error en una especificación de elemento de datos en una sentencia CREATE, una sentencia ALTER, una expresión XMLTABLE o una correlación con tipo de una sentencia SELECT que hace referencia a una función de tabla genérica. Existen especificaciones incompatibles, como por ejemplo: "INTEGER y FOR BIT DATA". Si la columna es del tipo DB2SECURITYLABEL, las especificaciones incompatibles incluyen NOT NULL WITH DEFAULT. La ubicación del error la proporciona elemento-datos de la manera siguiente:
- Para una sentencia CREATE TABLE, una sentencia ALTER TABLE, una expresión XMLTABLE o una cláusula de correlación con tipo de una sentencia SELECT, elemento-datos proporciona el nombre de la columna que contiene el error.
- Para una sentencia CREATE FUNCTION, elemento-datos es un símbolo que identifica el área del problema en la sentencia. Por ejemplo, "PARAMETER 3", "RETURNS" o "CAST FROM".
- Para una sentencia CREATE DISTINCT TYPE, elemento-datos proporciona el nombre del tipo que está definiéndose.
- Para una sentencia CREATE o ALTER TYPE, elemento-datos identifica la cláusula que contiene el error o proporciona el nombre del atributo que contiene el error.
- Para una sentencia CREATE o ALTER TABLE, las columnas para un período BUSINESS_TIME deben definirse como DATE o TIMESTAMP(p), siendo p un número entre 0 y 12 (inclusive).
- Para una sentencia CREATE o ALTER TABLE, elemento-datos para una columna ROW BEGIN, ROW END o TRANSACTION START ID debe ser TIMESTAMP(12).
- Para una sentencia ALTER TABLE, no se puede especificar ALTER COLUMN con COMPRESS OFF o COMPRESS SYSTEM DEFAULT una columna clave de distribución aleatoria de una tabla de distribución aleatoria que usa el azar según el método de generación.
No se puede procesar la sentencia.
Respuesta del usuario
Elimine la incompatibilidad y vuelva a ejecutar la sentencia.
sqlcode: -683
sqlstate: 42842
SQL0695N El valor proporcionado (seclabel) no se ha podido convertir a una etiqueta de seguridad. En la política de seguridad con un ID de política de id-política, el valor de elemento valor-elemento no se corresponde con ningún elemento en el componente en la posición ordinal ordinal.
Explicación
Una sentencia INSERT o UPDATE ha especificado un valor para la columna del tipo DB2SECURITYLABEL. El valor no puede convertirse en una etiqueta de seguridad válida para la política de seguridad que protege la tabla. Si el valor seclabel es *N, el valor real se habrá grabado en el archivo de anotaciones cronológicas db2diag.
El valor tiene un problema en el componente indicado por el número del componente. La posición ordinal hace referencia a la posición del componente en la cláusula COMPONENTS de la sentencia CREATE SECURITY utilizada para crear la política. El valor del elemento indicado no se corresponde con un elemento válido en dicho componente.
Respuesta del usuario
Compruebe la sentencia INSERT o UPDATE y asegúrese de que el valor que se está estableciendo en la columna de etiqueta de seguridad sea válido para la política de seguridad que sirve para proteger la tabla. A veces se puede generar un valor no válido como resultado de una operación SELECT realizada desde una tabla que no está protegida con la misma política de seguridad que la tabla de destino. Sólo debe copiar etiquetas de seguridad entre las tablas protegidas por medio de la misma política de seguridad.
Para obtener el nombre de la política de seguridad para el ID de política facilitado utilice esta consulta de SQL. Sustituya el ID de política por el número de ID de política facilitado en el mensaje de error.
SELECT SECPOLICYNAME
FROM SYSCAT.SECURITYPOLICIES
WHERE SECPOLICYID = policy-id
sqlcode: -695
sqlstate: 23523
SQL0696N La definición del activador nombre-activador incluye un uso no válido del nombre de correlación o nombre de tabla de transición nombre. Código de razón=código-razón.
Explicación
La definición de activador incluía una utilización no válida de nombre. El valor de código-razón identifica el problema:
- 1
El nombre de correlación NEW y el nombre NEW TABLE no están permitidos en un activador DELETE si el activador DELETE no se ha definido mediante una sentencia de SQL compuesto (compilado).
- 2
El nombre de correlación OLD y el nombre OLD TABLE no están permitidos en un activador INSERT si el activador INSERT no se ha definido mediante una sentencia de SQL compuesto (compilado).
- 3
El nombre OLD TABLE y el nombre NEW TABLE no están permitidos en un activador BEFORE.
- 4
El nombre OLD TABLE y el nombre NEW TABLE no están permitidos en un activador si el activador se ha definido mediante una sentencia de SQL compuesto (compilado).
No se puede procesar la sentencia.
Respuesta del usuario
Elimine el nombre de correlación no válido o el nombre de tabla de transición con la palabra clave precedente.
SQL0697N Los nombres de correlación OLD o NEW no están permitidos en un desencadenante definido con la cláusula FOR EACH STATEMENT.
Explicación
El activador incluye como es sabido una cláusula REFERENCING con nombres de correlación OLD o NEW especificados así como la cláusula FOR EACH STATEMENT. No se pueden especificar juntos.
No se puede procesar la sentencia.
Respuesta del usuario
Elimine todos los nombres de correlación OLD o NEW de la cláusula REFERENCING o sustituya FOR EACH STATEMENT por FOR EACH ROW.
sqlcode: -697
sqlstate: 42899
SQL0707N El nombre nombre no se puede utilizar porque el identificador especificado está reservado para uso del sistema.
Explicación
La lista siguiente proporciona normas sobre nombres y calificadores reservados:
- Un nombre de espacio de tablas no puede empezar por SYS.
- Un nombre de grupo de almacenamiento no puede empezar por SYS.
- Un nombre de grupo de particiones de base de datos no puede empezar por SYS o IBM.
- Un nombre de módulo no puede empezar por SYS.
- Un nombre de objeto para un objeto definido en un módulo no puede empezar por SYS_ excepto en el caso del procedimiento de inicialización de módulos.
- Un nombre de punto de salvaguarda no puede empezar por SYS.
- Un nombre de rol no puede empezar por SYS y no puede ser ACCESSCTRL, DATAACCESS, DBADM, NONE, NULL, PUBLIC, SECADM, SQLADM o WLMADM.
- Un nombre de objeto de gestión de carga de trabajo no puede empezar por SYS.
- Un nombre de subconjunto de miembros no puede empezar por SYS.
Respuesta del usuario
Seleccione un nombre que no esté reservado.
sqlcode: -707
sqlstate: 42939
SQL0713N El valor de sustitución para special-register no es válido.
Explicación
El valor especificado en la sentencia SET no es un valor válido del registro especial indicado, el valor especificado es válido para el registro especial pero no puede utilizarse en el servidor actual o bien el valor especificado es NULL como resultado de una variable de indicador.
No se puede ejecutar la sentencia.
Respuesta del usuario
Corrija el valor de sustitución y las variables de indicador.
sqlcode: -713
sqlstate: 42815
SQL0719N Error de enlace para el usuario auth-id. Paquete nombre-paquete ya existe.
Explicación
- id-autorización
- ID de autorización del invocador de BIND o PREP
- nombre-paquete
- Nombre del paquete en el formato 'pkgschema.pkgname.pkgversion'. Si la versión del paquete es la serie vacía, se omite '.pkgversion' en el nombre.
No se ha creado el paquete.
Respuesta del usuario
- Compruebe la vista del catálogo SYSCAT.PACKAGES para los nombres de paquetes de aplicaciones existentes. Vuelva a invocar PRECOMPILE o BIND con un 'pkgschema.pkgname.pkgversion' que no se está utilizando.
- Vuelva a emitir la sentencia PREP o BIND sin la opción ACTION ADD. Se sustituirá el paquete existente.
sqlcode: -719
sqlstate: 42710
SQL0720N Intentando sustituir el paquete pkgschema.pkgname WITH VERSION pkgversion, donde ya existe esta versión.
Explicación
Se efectúa un intento de crear una versión de un paquete que ya existe utilizando la opción ACTION REPLACE REPLVER. La versión especificada en la palabra clave REPLVER es diferente de la versión especificada en la opción de precompilación VERSION. La versión especificada en la opción de precompilación VERSION ya existe en el catálogo. La combinación de 'pkgschema.pkgname.version' debe ser exclusiva en la vista del catálogo SYSCAT.PACKAGES.
Un error común es que el usuario crea que la versión que se está creando es la especificada en la palabra clave REPLVER. Éste no es el caso. La versión especificada en la palabra clave REPLVER es el nombre de la versión que se está reemplazando. La versión que se va a crear es la versión que se suministra al programa en la opción VERSION.
No se ha creado ningún paquete.
Respuesta del usuario
Asegúrese de que la versión que se está creando aún no existe.
- Precompilar de nuevo el programa con un nombre de versión nuevo y volver a emitir el mandato PREP o BIND original.
- La otra solución es volver a emitir el mandato PREP o BIND especificando la cláusula ACTION REPLACE sin la especificación REPLVER. En este caso, REPLACE reemplazará la versión que coincide con la versión especificada en la opción VERSION.
sqlcode: -720
sqlstate: 42710
SQL0721N Paquete pkgschema.pkgname con símbolo de coherencia = 0Xcontoken no se puede crear porque no es exclusivo.
Explicación
Se ha intentado añadir o sustituir un paquete con un símbolo de coherencia que no es exclusivo para dicho paquete. La combinación 'esquema-paquete.nombre-paquete.símbolo-coherencia' ya existe. Probablemente se haya creado al utilizar la opción LEVEL de PRECOMPILE para especificar el símbolo de coherencia.
No se ha creado el paquete.
Respuesta del usuario
SELECT PKGSCHEMA,PKGNAME
FROM SYSCAT.PACKAGES
WHERE HEX(UNIQUE_ID) = 'contoken'; Si se utilizó la opción LEVEL en la precompilación, la nueva precompilación y la especificación de un valor LEVEL diferente cambiará el símbolo de coherencia. Se recomienda no utilizar la opción LEVEL; si no se especifica la opción LEVEL de la precompilación se garantiza que el símbolo de coherencia tenga un valor de indicación de fecha y hora actual.
SQL0722N Error al ejecutar bind-command para el usuario auth-id. El paquete nombre-paquete no existe.
Explicación
- mandato-bind
- Tipo de mandato de vinculación (BIND | REBIND) emitido. Tenga en cuenta que el valor 'BIND' se utilizará también para una precompilación.
- id-autorización
- ID de autorización que ha utilizado la vinculación o revinculación
- nombre-paquete
- Nombre del paquete en el formato 'pkgschema.pkgname.pkgversion'. Si la versión del paquete es la serie vacía, se omite '.pkgversion' en el nombre.
El paquete no se ha vinculado ni revinculado.
Explicación
Compruebe en la vista del catálogo SYSCAT.PACKAGES la sentencia 'pkgschema.pkgname.pkgversion' correcta para especificarla en la opción REPLVER.
sqlcode: -722
sqlstate: 42704
SQL0723N Se ha producido un error en una sentencia SQL desencadenada en el desencadenante nombre-desencadenante. La información devuelta para el error incluye SQLCODE sqlcode, SQLSTATE sqlstate y símbolos de mensaje lista-símbolos.
Explicación
Ha fallado una sentencia de SQL en el activador nombre-activador durante la ejecución del activador. Se proporciona el sqlcode, el sqlstate y la lista de símbolos de mensajes (cada símbolo está separado por un carácter de barra vertical). Puede que los símbolos de mensajes estén truncados. Consulte el mensaje correspondiente al sqlcode para obtener información adicional sobre el error.
No se pueden procesar el activador ni la sentencia de SQL original que ha ocasionado la ejecución del activador.
Respuesta del usuario
Compruebe el mensaje asociado al SQLCODE de la sentencia de SQL que ha fallado. Siga la acción que sugiera dicho mensaje.
sqlcode: -723
sqlstate: 09000
SQL0724N La activación de nombre-objeto de tipo tipo-objeto superaría el nivel máximo de SQL indirecto en cascada.
Explicación
La activación en cascada de SQL indirecto se produce cuando un activador activa otro activador (posiblemente mediante normas de supresión de restricciones referenciales) o cuando una rutina, que contiene SQL, invoca otra rutina. La profundidad de esta activación en cascada está limitada a 16 para activadores y a 64 para rutinas.
Tenga en cuenta que en las situaciones repetitivas en las que un activador incluye una sentencia de SQL activada que provoca directa o indirectamente la activación del mismo activador, o en las que una rutina se invoca a sí misma de forma directa o indirecta, es una forma de cascada que es muy probable que invoque este error, si es que no hay condiciones que impidan que la cascada exceda el límite.
El tipo-objeto es uno de los siguientes: TRIGGER, FUNCTION, METHOD o PROCEDURE.
El nombre-objeto especificado es uno de los objetos que se habrían activado en el decimoséptimo nivel de cascada.
Respuesta del usuario
Empiece por los objetos que se activan o se invocan con la sentencia que ha recibido este error. Si alguno de estos objetos es repetitivo, asegúrese de que haya alguna condición que evite que el objeto se active o se invoque más de lo permitido por el límite. Si ésta no es la causa del problema, siga la cadena de objetos activados o invocados para determinar la cadena que sobrepasa el límite de cascada.
sqlcode: -724
sqlstate: 54038
SQL0727N Se ha producido un error durante el tipo de acción del sistema implícito tipo-acción. La información devuelta para el error incluye SQLCODE sqlcode, SQLSTATE sqlstate y símbolos de mensaje lista-símbolos.
Explicación
El proceso de una sentencia o un mandato ha provocado que el gestor de bases de datos ejecute implícitamente un proceso adicional. Durante este proceso, se ha detectado un error. La acción que se ha intentado aparece en tipo-acción:
- 1
Revinculación implícita de un paquete
- 2
Preparación implícita de una sentencia de SQL dinámico colocada en antememoria
- 3
Revalidación implícita de un objeto
- 4
Se reserva el uso del código de retorno a DB2.
- 5
Vinculación incremental de una sentencia de SQL estático, no vinculada durante el tiempo de vinculación de paquetes
- 6
Preparación implícita de una sentencia reoptimizable que contiene variables de sistema principal, registros especiales o marcadores de parámetros
- 7
Regeneración implícita de un activador
- 8
Regeneración implícita de una función
- 9
Regeneración implícita de una restricción de comprobación
- 10
Creación implícita de instancias de una variable global
- 11
Invocación implícita de la rutina de inicialización de módulos
- 12
Verificación implícita de que los datos cumplen la restricción de integridad después de modificar un tipo de datos de columna
- 13
Verificación implícita de que los valores de columna de expresión de generación existentes son iguales a la expresión de generación después de modificar un tipo de datos de columna
Se proporciona el sqlcode, el sqlstate y la lista de símbolos de mensajes (cada símbolo está separado por un carácter de barra vertical). Puede que los símbolos de mensajes estén truncados. Consulte el mensaje correspondiente al sqlcode para obtener información adicional sobre el error.
La sentencia de SQL original o el mandato que ha causado el tipo-acción no se puede procesar y la acción implícita del sistema no ha sido satisfactoria.
Usuarios de sistemas federados: puede haber recibido este mensaje porque ha preparado dinámicamente una sentencia de SQL en una sesión de paso a través y después ha intentado ejecutar la sentencia después de que la sesión se haya cerrado.
Respuesta del usuario
Compruebe el mensaje asociado al SQLCODE de la sentencia de SQL que ha fallado. Siga la acción que sugiera dicho mensaje.
Si el paquete no es válido, puede utilizarse el mandato REBIND para reproducir el error o para validar explícitamente el paquete una vez resuelto el problema.
Para una anomalía que se ha producido mientras se estaba revalidando un objeto de la base de datos:
- Determine el nombre del objeto de la base de datos que no se ha podido revalidar localizando el mensaje de anomalía de revalidación en el registro de notificaciones de administración.
- Para evitar este error en el futuro, puede realizar una de las acciones siguientes:
- Si ya no se necesita el objeto de la base de datos que causa este error, descarte el objeto de la base de datos.
- Si se puede cambiar la sentencia o el mandato que ha provocado que se tenga que revalidar este objeto de la base de datos, cambie la sentencia o el mandato de forma que la próxima vez que se ejecute la sentencia o el mandato no se tenga que revalidar el objeto de la base de datos.
- Revalide el objeto de la base de datos ahora realizando una de estas acciones:
- Ejecute una sentencia de SQL que haga referencia directamente al objeto de la base de datos.
- Llame al procedimiento ADMIN_REVALIDATE_DB_OBJECTS para el objeto de la base de datos.
Usuarios de sistemas federados: si la sentencia que ha fallado se había preparado dinámicamente en una sesión de paso a través, abra otra sesión de paso a través, escriba y prepare la sentencia de nuevo y ejecútela mientras la sesión permanezca abierta.
sqlcode: -727
sqlstate: 56098
SQL0740N Rutina nombre-rutina (nombre específico nombre-específico) se define con la opción MODIFIES SQL DATA, que no es válida en el contexto en el que se invoca la rutina.
Explicación
La rutina nombre-rutina (nombre específico nombre-específico) está definida con MODIFIES SQL DATA y, por consiguiente, no está permitida en:
- un activador BEFORE que no se ha definido mediante una sentencia de SQL compuesto (compilado)
- una subconsulta correlacionada
- una condición de búsqueda (como una cláusula WHERE o restricción de comprobación)
Las funciones de módulo y las funciones definidas con una sentencia de SQL compuesto (compilado) como cuerpo de la función que se definen con la opción MODIFIES SQL DATA solamente pueden tener una única expresión en la parte de la derecha de una sentencia de asignación de una sentencia de SQL compuesto (compilado).
Respuesta del usuario
Asegúrese de que la resolución de rutina se resuelva en la rutina deseada. Elimine la rutina de la sentencia anómala o vuelva a definir la rutina con un indicador de acceso de SQL distinto de MODIFIES SQL DATA.
sqlcode: -740
sqlstate: 51034
SQL0746N La rutina denominada nombre-rutina (nombre específico nombre-específico) ha fallado porque la rutina ha violado las reglas de sentencias SQL anidadas al intentar realizar la operación operación en la tabla denominada nombre-tabla.
Explicación
Este mensaje se devuelve cuando una aplicación llama a una rutina que intenta acceder a una tabla de tal forma que entra en conflicto con otros usos de la tabla por parte de la aplicación, o bien porque la rutina se invoca directa o indirectamente desde la aplicación.
El valor del símbolo operación indica la naturaleza del conflicto:
- Si la operación es "READ", la aplicación u otra rutina está grabando la tabla nombre-tabla.
- Si la operación es "MODIFY", la aplicación u otra rutina ya está leyendo o grabando la tabla nombre-tabla.
Este mensaje puede devolverse en varias situaciones:
- Si nombre-tabla hace referencia a una tabla de Explain y la sentencia que recibe este mensaje de error es una sentencia PREPARE o EXECUTE IMMEDIATE, se ha producido un conflicto al insertar información de explicación en la tabla de Explain.
- Este mensaje puede devolverse cuando un activador intenta llamar a un procedimiento almacenado que accede a tablas que han sido modificadas con anterioridad dentro del contexto de la sentencia de invocación más externa. Puede utilizar la variable DB2_RESOLVE_CALL_CONFLICT para establecer que todas las modificaciones en las tablas se completen de conformidad con las reglas estándar de SQL para activadores antes de ejecutar la llamada CALL.
Respuesta del usuario
Vuelva a intentar la operación.
Si la operación sigue fallando con este error, siga estos pasos para evitar el error:
- Vuelva a diseñar la aplicación o la rutina para evitar el conflicto.
- Si el conflicto ha tenido lugar la insertar información de explicación para una sentencia dinámica, inhabilite la explicación para las sentencias dinámicas utilizando el registro especial CURRENT EXPLAIN MODE y luego ejecute de nuevo la sentencia PREPARE o la sentencia EXECUTE IMMEDIATE.
- Si este mensaje se devuelve cuando un activador intenta llamar a un procedimiento almacenado que accede a tablas que anteriormente se han modificado dentro del contexto de la sentencia de invocación más externa, establezca la variable de registro DB2_RESOLVE_CALL_CONFLICT en YES.
sqlcode: -746
sqlstate: 57053