0% encontró este documento útil (0 votos)
720 vistas650 páginas

Sqlcode Español

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
720 vistas650 páginas

Sqlcode Español

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

® ®

IBM DB2 Universal Database IBM


Consulta de mensajes, Volumen 2
Versión 7

GC10-3494-00
® ®
IBM DB2 Universal Database IBM
Consulta de mensajes, Volumen 2
Versión 7

GC10-3494-00
Antes de utilizar esta información y el producto al que da soporte, asegúrese de leer la información general incluida
en el “Apéndice C. Avisos” en la página 631.

Este manual es la traducción del original inglés IBM DB2 Universal Database Message Reference Volume 1
(GC09-2978-00), Volume 2 (GC09-2979-00), Version 7.
Este documento contiene información sobre productos patentados de IBM. Se proporciona de acuerdo con un contrato
de licencia y está protegido por la ley de la propiedad intelectual. La presente publicación no incluye garantías del
producto y las declaraciones que contiene no deben interpretarse como tales.
Puede solicitar publicaciones a través del representante de IBM o sucursal de IBM de su localidad, o bien llamando a
los números de teléfono 1-800-879-2755, en los Estados Unidos, o 1-800-IBM-4YOU, en Canadá.
Cuando envía información a IBM, otorga a IBM un derecho no exclusivo para utilizar o distribuir dicha información
en la forma en que IBM considere adecuada, sin contraer por ello ninguna obligación con el remitente.
© Copyright International Business Machines Corporation 1993, 2000. Reservados todos los derechos.
Contenido
Acerca de esta guía . . . . . . . . . v SQL3400 - SQL3499 . . . . . . . . . 397
A quién va dirigida esta guía . . . . . . v SQL3500 - SQL3599 . . . . . . . . . 400
Cómo está estructurada esta guía . . . . . v SQL3600 - SQL3699 . . . . . . . . . 409
Organización . . . . . . . . . . . v SQL3700 - SQL3799 . . . . . . . . . 411
Convenios . . . . . . . . . . . . v SQL3800 - SQL3899 . . . . . . . . . 415
SQL3900 - SQL3999 . . . . . . . . . 416
Capítulo 1. Introducción a los mensajes . . 1 SQL4000 - SQL4099 . . . . . . . . . 422
Información disponible en línea . . . . . . 1 SQL4100 - SQL4199 . . . . . . . . . 426
Otros mensajes de DB2. . . . . . . . 3 SQL4300 - SQL4399 . . . . . . . . . 436
Otras fuentes de mensajes . . . . . . . 3 SQL4400 - SQL4499 . . . . . . . . . 438
SQL4900 - SQL4999 . . . . . . . . . 440
Capítulo 2. Mensajes SQL . . . . . . . 5 SQL5000 - SQL5099 . . . . . . . . . 450
SQL0000 - SQL0099 . . . . . . . . . . 5 SQL5100 - SQL5199 . . . . . . . . . 457
SQL0100 - SQL0199 . . . . . . . . . 16 SQL6000 - SQL6099 . . . . . . . . . 463
SQL0200 - SQL0299 . . . . . . . . . 34 SQL6100 - SQL6199 . . . . . . . . . 483
SQL0300 - SQL0399 . . . . . . . . . 56 SQL6500 - SQL6599 . . . . . . . . . 486
SQL0400 - SQL0499 . . . . . . . . . 71 SQL7000 - SQL7099 . . . . . . . . . 496
SQL0500 - SQL0599 . . . . . . . . . 100 SQL8000 - SQL8099 . . . . . . . . . 499
SQL0600 - SQL0699 . . . . . . . . . 123 SQL8100 - SQL8199 . . . . . . . . . 504
SQL0700 - SQL0799 . . . . . . . . . 136 SQL9300 - SQL9399 . . . . . . . . . 504
SQL0800 - SQL0899 . . . . . . . . . 142 SQL10000 - SQL10099 . . . . . . . . 506
SQL0900 - SQL0999 . . . . . . . . . 151 SQL20000 - SQL20099 . . . . . . . . 510
SQL1000 - SQL1099 . . . . . . . . . 171 SQL20100 - SQL20199 . . . . . . . . 534
SQL1100 - SQL1199 . . . . . . . . . 195 SQL20200 - SQL20299 . . . . . . . . 538
SQL1200 - SQL1299 . . . . . . . . . 210 SQL29000 - SQL29100 . . . . . . . . 539
SQL1300 - SQL1399 . . . . . . . . . 234 SQL30000 - SQL30099 . . . . . . . . 542
SQL1400 - SQL1499 . . . . . . . . . 249 SQL30100 - SQL30199 . . . . . . . . 557
SQL1500 - SQL1599 . . . . . . . . . 263
SQL1600 - SQL1699 . . . . . . . . . 268 Capítulo 3. Mensajes SQLSTATE . . . . 559
SQL1700 - SQL1799 . . . . . . . . . 277 Código de clase 00 Realización satisfactoria
SQL1800 - SQL1899 . . . . . . . . . 283 no calificada . . . . . . . . . . . 560
SQL1900 - SQL1999 . . . . . . . . . 289 Código de clase 01 Aviso . . . . . . . 560
SQL2000 - SQL2099 . . . . . . . . . 289 Código de clase 02 Sin datos . . . . . . 564
SQL2100 - SQL2199 . . . . . . . . . 303 Código de clase 07 Error del SQL dinámico 564
SQL2200 - SQL2299 . . . . . . . . . 305 Código de clase 08 Excepción de conexión 564
SQL2300 - SQL2399 . . . . . . . . . 308 Código de clase 09 Excepción de acción
SQL2400 - SQL2499 . . . . . . . . . 311 activada . . . . . . . . . . . . . 565
SQL2500 - SQL2599 . . . . . . . . . 316 Código de clase 0A Característica no
SQL2600 - SQL2699 . . . . . . . . . 331 soportada . . . . . . . . . . . . 565
SQL2700 - SQL2799 . . . . . . . . . 333 Código de clase 0D Especificación de tipo de
SQL2800 - SQL2899 . . . . . . . . . 342 destino no válida . . . . . . . . . . 565
SQL3000 - SQL3099 . . . . . . . . . 346 Código de clase 0F Símbolo no válido . . . 565
SQL3100 - SQL3199 . . . . . . . . . 363 Código de clase 0K Sentencia RESIGNAL no
SQL3200 - SQL3299 . . . . . . . . . 381 válida . . . . . . . . . . . . . . 566
SQL3300 - SQL3399 . . . . . . . . . 390

© Copyright IBM Corp. 1993, 2000 iii


Código de clase 20 No se han encontrado Código de clase 56 Error variado de SQL o
mayús./minús. para la sentencia CASE . . 566 del producto . . . . . . . . . . . 589
Código de clase 21 Violación de cardinalidad 566 Código de clase 57 Recurso no disponible o
Código de clase 22 Excepción de datos. . . 567 intervención del operador . . . . . . . 590
Código de clase 23 Violación de restricción 568 Código de clase 58 Error del sistema . . . 591
Código de clase 24 Estado del cursor no
válido. . . . . . . . . . . . . . 569 Apéndice A. Errores de comunicaciones 593
Código de clase 25 Estado de transacción no TCP/IP . . . . . . . . . . . . . 593
válido. . . . . . . . . . . . . . 569 APPC . . . . . . . . . . . . . . 597
Código de clase 26 Identificador de sentencia NETBIOS . . . . . . . . . . . . 600
de SQL no válido . . . . . . . . . . 569 IPX/SPX . . . . . . . . . . . . . 602
Código de clase 28 Especificación de
autorización no válida . . . . . . . . 570 Apéndice B. Utilización de la biblioteca
Código de clase 2D Finalización de de DB2 . . . . . . . . . . . . . 609
transacción no válida . . . . . . . . 570 Archivos PDF y manuales impresos sobre
Código de clase 2E Nombre de conexión no DB2 . . . . . . . . . . . . . . 609
válido. . . . . . . . . . . . . . 570 Información sobre DB2 . . . . . . . 609
Código de clase 34 Nombre de cursor no Impresión de los manuales PDF . . . . 620
válido. . . . . . . . . . . . . . 570 Solicitud de los manuales impresos . . . 621
Código de clase 38 Excepción de función Documentación en línea de DB2 . . . . . 622
externa . . . . . . . . . . . . . 571 Acceso a la ayuda en línea . . . . . . 622
Código de clase 39 Excepción de llamada de Visualización de información en línea . . 624
función externa . . . . . . . . . . 572 Utilización de los asistentes de DB2 . . . 627
Código de clase 3B SAVEPOINT no válido 572 Configuración de un servidor de
Código de clase 40 Retrotracción de documentos. . . . . . . . . . . 628
transacción . . . . . . . . . . . . 572 Búsqueda de información en línea . . . 629
Código de clase 42 Error de sintaxis o
violación de la norma de acceso . . . . . 573 Apéndice C. Avisos . . . . . . . . 631
Código de clase 44 Violación WITH CHECK Marcas registradas . . . . . . . . . 634
OPTION . . . . . . . . . . . . . 585
Código de clase 46 Java DDL . . . . . . 585 Índice . . . . . . . . . . . . . 637
Código de clase 51 Estado de aplicación no
válido. . . . . . . . . . . . . . 586
Cómo ponerse en contacto con IBM . . 639
Código de clase 54 Límite de SQL o del
Información sobre productos . . . . . . 639
producto excedido . . . . . . . . . 587
Código de clase 55 Un objeto no se
encuentra en estado necesario. . . . . . 588

iv Consulta de mensajes, Volumen 2


Acerca de esta guía
El objetivo de este manual es enumerar los mensajes que devuelven los
diversos componentes de DB2.

A quién va dirigida esta guía


La Consulta de mensajes se ha diseñado para que lo utilice cualquier usuario de
DB2 que necesite información más detallada acerca de los mensajes que se
devuelven.

Cómo está estructurada esta guía


Esta guía enumera todos los mensajes de error posibles que devuelven los
distintos componentes de DB2.
Organización
Este libro contiene las secciones siguientes:
v El Capítulo 1. Introducción a los mensajes describe cómo acceder a los
mensajes de error y cómo interpretarlos.
v El Capítulo 2. Mensajes SQL describe los mensajes (valores SQLCODE)
generados por el gestor de bases de datos cuando se detecta una condición
de aviso o error.
v El Capítulo 3. Mensajes SQLSTATE describe el significado de todos los
valores SQLSTATE.
v El Apéndice A. Errores de comunicaciones describe los códigos de error de
comunicaciones asociados con sqlcode -30081.
Convenios
El formato de la fecha y hora, así como los caracteres empleados como
separadores de la fecha y de la hora, están pensados para los sistemas que se
han configurado para el formato de idioma de los Estados Unidos. Estos
formatos pueden aparecer de forma distinta en su pantalla, según el formato
de idioma nacional que utilice su sistema.

© Copyright IBM Corp. 1993, 2000 v


vi Consulta de mensajes, Volumen 2
Capítulo 1. Introducción a los mensajes
Se da por sentado que el usuario conoce el funcionamiento del sistema
operativo en el que DB2 está instalado. La información que se ofrece en los
siguientes capítulos sirve de ayuda para identificar un error o problema y
solucionarlo siguiendo las acciones de recuperación adecuadas. Asimismo,
esta información permite conocer dónde se generan y anotan los mensajes.

Información disponible en línea


Los siguientes mensajes de DB2 están accesibles desde la línea de mandatos
del sistema operativo:
Prefijo Descripción
ASN mensajes generados por DB2 Replication
CCA mensajes generados por el Asistente de configuración de cliente
CLI mensajes generados por la Interfaz de nivel de llamada
DBA mensajes generados por el Centro de control y el programa de
utilidad Administración de la base de datos
DBI mensajes generados por la instalación y la configuración
DB2 mensajes generados por el procesador de línea de mandatos
DWC mensajes generados por el Centro de depósito de datos
FLG mensajes y códigos de razón generados por Gestor de catálogos de
información
GSE mensajes generados por DB2 Spatial Extender
SAT mensajes generados por DB2 Satellite Edition
SPM mensajes generados por el gestor de puntos de sincronismo
SQJ mensajes generados por SQL incorporado en Java (SQLJ)
SQL mensajes generados por el gestor de bases de datos cuando se ha
detectado una condición de aviso o error.

El texto del mensaje asociado con los valores SQLSTATE también está
disponible en línea.

Los identificadores de mensajes están formados por un prefijo de mensaje de


tres caracteres (véase la lista anterior), seguido por un número de mensaje de

© Copyright IBM Corp. 1993, 2000 1


cuatro o cinco dígitos. La letra que aparece al final del identificador y que
indica la gravedad del mensaje de error es opcional.

Para obtener ayuda sobre estos mensajes de error, escriba lo siguiente en la


línea de mandatos del sistema operativo:

db2 “? XXXnnnnn”

donde XXX representa el prefijo del mensaje


y donde nnnnn representa le número del mensaje.

Nota: El identificador de mensajes aceptado como un parámetro del mandato


db2 no es sensible a mayúsculas ni a minúsculas y la letra final no es
obligatoria.

Así pues, el resultado de los siguientes mandatos será exactamente el mismo:


v db2 “? SQL0000N”
v db2 “? sql0000”
v db2 “? SQL0000n”

Si el texto del mensaje no cabe en la pantalla porque es demasiado largo,


puede utilizar el siguiente mandato (en sistemas basados en UNIX y otros
sistemas que den soporte a ’more’):

db2 “? XXXnnnnn” | more

La ayuda también se puede invocar en la modalidad de entrada interactiva.


Para activar esta modalidad, escriba lo siguiente en el indicador de mandatos
del sistema operativo:

db2

Cuando se encuentre en la modalidad de entrada interactiva, podrá escribir


los mandatos en el siguiente indicador de mandatos:

db2 =>

Para obtener ayuda sobre los mensajes de DB2 en esta modalidad, escriba lo
siguiente en el indicador de mandatos:

? XXXnnnnn

Nota: Si el texto del mensaje no cabe en la pantalla porque es demasiado


largo, los usuarios que dispongan de estaciones de trabajo no gráficas
pueden conducir la salida al programa ’more’ (en sistemas basados en
UNIX) o redirigir la salida a un archivo que pueda examinarse.

2 Consulta de mensajes, Volumen 2


El texto del mensaje asociado con un SQLSTATE determinado se puede
consultar de la siguiente forma:

db2 “? nnnnn”

db2 “? nn”

donde nnnnn es un SQLSTATE de cinco dígitos (alfanuméricos) y nn es el


código de clase SQLSTATE de dos dígitos (los primeros dos dígitos del valor
SQLSTATE).
Otros mensajes de DB2
Algunos componentes de DB2 devuelven mensajes que no se describen en
este manual ni están en línea. Algunos de los prefijos del mensaje pueden
incluir:
AUD mensajes generados por el recurso DB2 Audit.
DIA mensajes de diagnósticos generados por muchos componentes de
DB2. Estos mensajes se graban en el archivo de anotaciones
cronológicas de diagnósticos [Link] y tienen como finalidad
proporcionar información adicional a los usuarios y al personal de
servicio de DB2 cuando investiguen errores.
GOV mensajes generados por el programa de utilidad DB2 Governor.

En muchos casos, estos mensajes proporcionan suficiente información para


determinar la causa del aviso o del error. Para más información sobre el
mandato o el programa de utilidad que ha generado los mensajes, consulte el
manual correspondiente donde se explica el mandato o el programa de
utilidad.
Otras fuentes de mensajes
Cuando se ejecutan otros programas en el sistema, es posible que aparezcan
mensajes con prefijos que no son los que se mencionan en esta guía de
consulta.

Si desea obtener información sobre estos mensajes, consulte las publicaciones


que ha recibido con el producto del programa correspondiente.

Capítulo 1. Introducción a los mensajes 3


4 Consulta de mensajes, Volumen 2
Capítulo 2. Mensajes SQL
Cada mensaje tiene un identificador compuesto por un prefijo (SQL) y un
número de mensaje. Los mensajes se listan por secuencia numérica según el
número de mensaje. Existen tres tipos de mensajes: de notificación, de aviso y
críticos. Los identificadores de mensajes que terminan con una N
corresponden a mensajes de error. Los que acaban con una W indican que son
mensajes informativos o de aviso. Los identificadores de mensaje que
terminan con C indican errores críticos de sistema.

Al número de mensaje también se le puede llamar SQLCODE. El SQLCODE


se pasa a la aplicación como un número positivo o negativo dependiendo del
tipo de mensaje (N, W o C). N y C generan valores negativos mientras que W
genera valores positivos. DB2 devuelve el SQLCODE a la aplicación y esta
puede obtener el mensaje asociado al SQLCODE. DB2 también devuelve un
valor SQLSTATE para condiciones que podrían ser el resultado de una
sentencia de SQL. Los valores SQLSTATE aparecen listados en el Capítulo 3.
Mensajes SQLSTATE. Algunos valores SQLCODE tienen valores SQLSTATE
asociados. Los valores SQLSTATE asociados con un SQLCODE determinado
(si es aplicable) se documentan en este capítulo junto a cada mensaje.

Los parámetros variables para los mensajes SQL se muestran como nombres
descriptivos.

SQL0000 - SQL0099

Consulte la publicación Application Development


SQL0000W El proceso de la sentencia ha sido
Guide.
satisfactorio.
sqlcode: 0
Explicación: La sentencia de SQL se ha
ejecutado satisfactoriamente, a no ser que se sqlstate: 00000, 01003, 01004, 01503, 01504, 01506,
haya producido una condición de error. 1509, 01517
Respuesta del Usuario: Compruebe
SQLWARN0 para asegurarse de que esté en SQL0001N La vinculación o precompilación
blanco. Si es así, la sentencia se ha ejecutado no se ha completado
satisfactoriamente. De lo contrario, existe una satisfactoriamente.
condición de aviso. Compruebe los demás
indicadores de aviso para determinar si hay Explicación: La solicitud de vinculación o
alguna condición de aviso determinada. Por precompilación no ha finalizado de manera
ejemplo, si SQLWARN1 no está en blanco, satisfactoria por las razones especificadas en los
significa que se ha truncado una serie. mensajes anteriores.
No se ha creado ningún paquete.

© Copyright IBM Corp. 1993, 2000 5


Respuesta del Usuario: Consulte los mensajes mensajes no puede utilizarse tal como se ha
del archivo de mensajes. Vuelva a someter el especificado.
mandato.
No se ha creado ningún paquete.
Si está instalando la base de datos de ejemplo,
Respuesta del Usuario: Consulte los mensajes
elimínela e instálela de nuevo.
del archivo de mensajes. Compruebe el nombre
del archivo de mensajes. Compruebe los
SQL0002N El nombre del archivo de atributos del archivo de mensajes, si existe.
vinculación no es válido. Vuelva a someter el mandato.
Explicación: Por las razones expuestas en los
mensajes anteriores, el nombre del archivo de SQL0006N El parámetro de formato de
vinculación no se puede utilizar tal y como se ha fecha/hora no es válido.
especificado.
Explicación: El valor del parámetro datetime no
No se ha creado ningún paquete. está comprendido en el rango válido (entre 0 y
3).
Respuesta del Usuario: Consulte los mensajes
del archivo de mensajes. Vuelva a someter el No se ha creado ningún paquete.
mandato.
Respuesta del Usuario: Vuelva a emitir el
Si está instalando la base de datos de ejemplo, mandato con un parámetro de formato válido.
elimínela e instálela de nuevo.
SQL0007N El carácter “<carácter>” que sigue
SQL0003N El nombre de la base de datos no a “<texto>” no es válido.
es válido.
Explicación: El “<carácter>” especificado no es
Explicación: Por las razones expuestas en los un carácter válido para sentencias de SQL. El
mensajes anteriores, el nombre de la base de campo “<texto>” indica los 20 caracteres de la
datos no puede utilizarse tal como se ha sentencia de SQL que preceden al carácter que
especificado. no es válido.
No se ha creado ningún paquete. Usuarios del sistema federado: algunas fuentes
de datos no proporcionan los valores adecuados
Respuesta del Usuario: Consulte los mensajes
para las señales de mensajes de “<carácter>” y
del archivo de mensajes. Vuelva a someter el
“<texto>”. En estos casos, “<carácter>” y
mandato.
“<texto>” tendrán el siguiente formato: “<fuente
de datos>:UNKNOWN”, lo que significa que los
SQL0004N La contraseña no es válida. valores reales de la fuente de datos especificada
son desconocidos.
Explicación: La contraseña es demasiado larga o
contiene caracteres que no son válidos. No se puede procesar la sentencia.

No se ha creado ningún paquete. Respuesta del Usuario: Suprima o sustituya el


carácter no válido.
Respuesta del Usuario: Vuelva a someter el
mandato con una contraseña válida. sqlcode: -7
sqlstate: 42601
SQL0005N El nombre del archivo de
mensajes no es válido.
Explicación: Por las razones expuestas en los
mensajes anteriores, el nombre del archivo de

6 Consulta de mensajes, Volumen 2


No se puede procesar la sentencia.
SQL0008N El símbolo “<símbolo>” que
aparece en la declaración de una Respuesta del Usuario: Revise la sentencia para
variable del sistema principal no ver si hay algún delimitador de comentario de
es válido. más o de menos en el comentario indicado.
Explicación: La sintaxis de la declaración de
una variable del sistema principal no es válida. SQL0012W Se ha producido una correlación
El precompilador no puede identificar la variable sin calificación para la columna
del sistema principal. “<columna>”.
No se puede procesar la sentencia. No se ha Explicación: La columna mencionada aparece
aceptado ninguna de las variables del sistema en una sentencia SELECT, no se ha calificado
principal declaradas en la sentencia (hasta el explícitamente y aparece en una tabla
punto y coma). especificada en la cláusula FROM de una
selección exterior. Por lo tanto, la referencia a la
Respuesta del Usuario: Revise la sintaxis de la
columna de la sentencia SELECT se ha
declaración de variable del sistema principal.
interpretado como una referencia exterior y
producirá una correlación.
SQL0009W Se ha pasado por alto un intento
La sentencia se ha procesado bajo el supuesto de
de alterar temporalmente una
que se deseaba llevar a cabo la correlación.
opción de precompilación.
Respuesta del Usuario: Asegúrese de que
Explicación: Se ha intentado alterar
realmente deseaba llevar a cabo la correlación. Es
temporalmente una opción de precompilación.
un buen método de práctica el calificar
Esta opción se ha ignorado. explícitamente referencias exteriores
intencionadas.
Respuesta del Usuario: Asegúrese de que todas
las opciones del precompilador están sqlcode: +12
correctamente especificadas.
sqlstate: 01545

SQL0010N La constante de serie que empieza


SQL0013N Un identificador delimitado vacío
con “<serie>” no tiene un
no es válido.
delimitador final de serie.
Explicación: Durante la precompilación, se ha
Explicación: La sentencia contiene una
encontrado especificado como serie vacía un
constante de serie que empieza con “<serie>” y
nombre de cursor, un nombre de sentencia, un
que no termina correctamente.
nombre de base de datos o un ID de
No se puede procesar la sentencia. autorización. Esto no es válido. No se puede
procesar la sentencia.
Respuesta del Usuario: Revise la sentencia para
ver si faltan apóstrofes en la constante de serie Respuesta del Usuario: Suministre un nombre
indicada. de cursor, un nombre de sentencia, un nombre
de base de datos o un ID de autorización
sqlcode: -10
válidos.
sqlstate: 42603
SQL0014N El nombre del archivo fuente no
SQL0011N El comentario no está terminado. es válido.

Explicación: El comentario no se ha terminado Explicación: El nombre del archivo fuente


correctamente. especificado en la llamada al precompilador
contiene caracteres no válidos o el puntero al

Capítulo 2. Mensajes SQL 7


nombre de archivo fuente no es válido. servidor de aplicaciones del DRDA mientras se
estaba conectado a un servidor no DRDA.
No se ha creado ningún paquete.
Respuesta del Usuario: Asegúrese de que el Entre ″db2 ? bind″ o ″db2 ? prep″ para obtener
nombre del archivo fuente es correcto. una lista de opciones a las que sólo da soporte
un servidor de aplicaciones del DRDA.
SQL0015N El tipo de datos de la variable del
Los números de opción posibles y sus nombres
sistema principal ″<símbolo_1>″
de opciones correspondientes son:
no es válido. Utilice en su lugar
″<símbolo_2>″. 1 DATETIME
Explicación: Si la opción de precompilación 2 LANGLEVEL
WCHARTYPE CONVERT está activada, la
variable del sistema principal de gráficos debe 4 ISOLATION
especificarse con el tipo de datos ’wchar_t’, y no 5 BLOCKING
’sqldbchar’.
6 GRANT
Si la opción de precompilación WCHARTYPE
NOCONVERT está activada (es el valor por 8 SQLFLAG
omisión) y ’wchar_t’ está definido como un 16 CONNECT
entero de 4 bytes en esta plataforma, la variable
del sistema principal de gráficos debe 17 SQLRULES
especificarse con el tipo de datos ’sqldbchar’, y 18 DISCONNECT
no ’wchar_t’.
19 SYNCPOINT
Respuesta del Usuario: Sustituya el tipo de
datos actual de la variable del sistema principal 20 ISOLATION
por el tipo de datos especificado en el mensaje.
21 BINDFILE
22 SQLCA
SQL0020W La base de datos de destino no da
soporte a la opción u opciones de 23 PACKAGE
vinculación o de precompilación
24 OPTLEVEL
“<nombre-opciones/número-
opciones>”, por lo tanto se 25 SYNTAX o SQLERROR
pasarán por alto.
26 NOLINEMACRO
Explicación: Este mensaje aparece en las
siguientes situaciones: 30 LEVEL
v el DBMS de destino no da soporte a una o 31 COLLECTION
más de las opciones especificadas en el
32 VERSION
momento de la precompilación/vinculación
v el DBMS de destino no da soporte a los 33 OWNER
valores de una o más de las opciones 34 QUALIFIER
especificadas en el momento de la
precompilación/vinculación 35 TEXT

Los valores u opciones no soportados se pasarán 40 VALIDATE


por alto. La causa más probable es que se ha 41 EXPLAIN
especificado una opción o valor de opción al que
sólo se da soporte cuando se está conectado al 42 ACTION

8 Consulta de mensajes, Volumen 2


44 REPLVER
SQL0022W Se ha ignorado la opción
45 RETAIN duplicada “<opción>” del
precompilador.
46 RELEASE
Explicación: La opción del precompilador
47 DEGREE “<opción>” está duplicada.
50 STRDEL Esta opción se ha ignorado.
51 DECDEL Respuesta del Usuario: Asegúrese de que se
55 CHARSUB especifican las opciones del precompilador una
sola vez.
56 CCSIDS
57 CCSIDM SQL0023N El nombre de la base de datos no
58 CCSIDG es válido.

59 DEC Explicación: El nombre de la base de datos


especificado no es un nombre válido.
60 WCHARTYPE
Se termina la precompilación.
61 DYNAMICRULES
Respuesta del Usuario: Asegúrese de que el
62 INSERT nombre de la base de datos está correctamente
63 EXPLSNAP escrita y de que cumple las normas de los
identificadores cortos.
64 FUNCPATH
65 SQLWARN SQL0024N No se ha especificado ningún
nombre de base de datos.
66 QUERYOPT
Explicación: No se ha proporcionado ningún
Respuesta del Usuario: Asegúrese de que se
nombre de base de datos para seguir con la
especificó intencionadamente la opción u
precompilación.
opciones de vinculación o de precompilación
“<nombre-opciones/número opciones>” mientras Se termina la precompilación.
se estaba conectado a este DBMS.
Respuesta del Usuario: Suministre un nombre
de base de datos.
SQL0021W Se ha ignorado la opción no
válida “<opción>” del
precompilador. SQL0025W La vinculación o precompilación
ha finalizado con avisos.
Explicación: La opción especificada en el
mensaje no es una opción válida del Explicación: Se ha completado
precompilador. satisfactoriamente la vinculación o
precompilación, pero se han emitido avisos. Se
Esta opción se ha ignorado. ha creado un paquete y/o un archivo de
vinculación, tal como se solicitó mediante el
Respuesta del Usuario: Asegúrese de que todas
mandato.
las opciones del precompilador están
correctamente especificadas. Respuesta del Usuario: Consulte los mensajes
del archivo de mensajes. Si es necesario, corrija
los problemas y vuelva a someter el mandato.

Capítulo 2. Mensajes SQL 9


Respuesta del Usuario: Especifique un nombre
SQL0026N La contraseña no es válida.
de archivo fuente.
Explicación: La contraseña especificada no es
una contraseña válida.
SQL0031C No se puede abrir el archivo
Se termina la precompilación. “<nombre>”.
Respuesta del Usuario: Asegúrese de que la Explicación: Se necesita el archivo “<nombre>”,
contraseña suministrada cumple las normas de pero no se ha podido abrir.
las contraseñas válidas.
Se termina la precompilación.
Respuesta del Usuario: Asegúrese de que el
SQL0028C El número de release del archivo
nombre de archivo especificado es correcto, de
de vinculación no es válido.
que existe en el sistema de archivos y de que los
Explicación: El número de release del archivo permisos de archivo son correctos.
de vinculación no es compatible con el número
Si está instalando la base de datos de ejemplo,
de release de la versión instalada del gestor de
elimínela e instálela de nuevo. Si el error
bases de datos.
persiste, vuelva a instalar el gestor de bases de
El archivo de vinculación no puede utilizarse con datos y luego instale la base de datos de ejemplo.
la versión actual del gestor de bases de datos. No
se puede procesar el mandato.
SQL0032C No se puede utilizar el archivo
Respuesta del Usuario: Si es posible, repita el “<nombre>”.
proceso de precompilación con el gestor de bases
Explicación: Se ha detectado un error al leer o
de datos actual. En caso contrario, utilice sólo
grabar el archivo “<nombre>”.
archivos de vinculación creados con un nivel de
release compatible del gestor de bases de datos. Se termina la precompilación.
Respuesta del Usuario: Vuelva a intentar la
SQL0029N Es necesaria la cláusula INTO. precompilación.
Explicación: Las sentencias SELECT o VALUES
que no son de cursor incluidas en un programa SQL0033N “<nombre>” no es un archivo de
de aplicación deben contener la cláusula INTO vinculación válido.
para indicar dónde se tienen que colocar los
resultados de la sentencia. Las sentencias Explicación: El archivo de vinculación
SELECT dinámicas no aceptan la cláusula INTO. “<nombre>” especificado no es un archivo de
vinculación.
Respuesta del Usuario: Añada la cláusula INTO
a la sentencia SELECT o VALUES y vuelva a Se termina la vinculación.
precompilar el programa de aplicación. Respuesta del Usuario: Asegúrese de que se ha
sqlcode: -29 especificado el nombre de archivo correcto.

sqlstate: 42601
SQL0034N No se ha especificado ningún
nombre de archivo de vinculación.
SQL0030N No se ha especificado ningún
nombre de archivo fuente. Explicación: No se ha especificado ningún
nombre de archivo de vinculación para seguir
Explicación: No se ha proporcionado ningún con la vinculación.
nombre de archivo fuente para seguir con la
precompilación. Se termina la vinculación.

Se termina la precompilación. Respuesta del Usuario: Suministre un nombre

10 Consulta de mensajes, Volumen 2


de archivo de vinculación.
SQL0038W La opción de vinculación
SQLERROR CONTINUE se ha
SQL0035N No se puede abrir el archivo activado, al ser necesaria cuando
“<nombre>”. se vincula este archivo de lista
suministrado por DB2 para
Explicación: No se puede abrir el archivo de DB2/MVS, SQL/DS o OS/400.
mensajes “<nombre>”.
Explicación: La opción de vinculador
Se termina el proceso de vinculación o SQLERROR CONTINUE es obligatoria cuando se
precompilación. vinculan los siguientes archivos de lista
Respuesta del Usuario: Asegúrese de que el suministrados por DB2:
sistema puede acceder al archivo. v [Link]
v [Link]
SQL0036N La sintaxis del nombre del archivo v [Link]
“<nombre>” no es válida. v [Link]
Explicación: Si el archivo es una entrada para el Esta opción indica al servidor DRDA que genere
precompilador, debe tener la extensión correcta un paquete aunque haya sentencias de SQL en
para el lenguaje que se utilice. Si el archivo es un archivo de vinculación que considere no
una entrada para el vinculador, debe tener la válido. Puesto que no todos los servidores DRDA
extensión .bnd. También un nombre de archivo dan soporte a todas las sentencias de SQL que se
completamente determinado que supere la encuentran en los archivos de vinculación
longitud máxima de plataforma puede provocar suministrados por DB2, debe usarse la opción de
este error. vinculación SQLERROR CONTINUE para
Se termina la precompilación o vinculación. garantizar que se crean paquetes para todos los
archivos de vinculación del archivo de lista.
Respuesta del Usuario: Asegúrese de que el
nombre de archivo especificado es correcto. Respuesta del Usuario: No se necesita
respuesta. La opción de vinculación requerida,
SQLERROR CONTINUE, ya se ha especificado
SQL0037W La sintaxis del archivo de para usted. Para evitar este mensaje de aviso en
mensajes “<nombre>” no es el futuro, especifique la opción de vinculación
válida. SQLERROR CONTINUE.
Explicación: El nombre del archivo de mensajes
“<nombre>” no es sintácticamente correcto para SQL0039N El vinculador no ha finalizado el
esta función. proceso porque el archivo de
El sistema redirecciona la salida hacia el vinculación no es válido.
dispositivo de salida estándar. Explicación: El vinculador no ha podido
Respuesta del Usuario: Asegúrese de que el procesar el archivo de vinculación. Es posible
nombre de archivo especificado es correcto. que el archivo de vinculación no sea válido
porque se alteró accidentalmente su contenido.
No se procesa el archivo de vinculación.
Respuesta del Usuario: Si es posible, repita el
proceso de precompilación para crear un nuevo
archivo de vinculación. En caso contrario,
consiga una copia nueva del archivo de
vinculación.

Capítulo 2. Mensajes SQL 11


Respuesta del Usuario: Consulte el resto de
SQL0040N Se ha producido un error en uno
mensajes que acompañan a éste para resolver los
o más archivos de vinculación de
errores que se produjeron. Vuelva a someter el
la lista “<nombre>”. No se han
mandato.
vinculado los siguientes archivos:
“<lista>”.
SQL0051N Se ha excedido en el programa el
Explicación: Por las razones especificadas en los
número máximo de sentencias de
mensajes anteriores en el archivo de mensajes,
SQL.
uno o más archivos de vinculación no se
vincularon. La lista de archivos que no se Explicación: En el programa hay demasiadas
vincularon se compone de dígitos, empezando sentencias de SQL a incluir dentro de un paquete
por 1, que indican la posición relativa de los en la base de datos.
archivos no vinculados en el archivo de lista.
“<nombre>” no incluye la especificación de vía Se termina la precompilación.
de acceso del archivo de lista. Respuesta del Usuario: Simplifique el programa
Sólo se listan en el mensaje los 20 primeros o divídalo en programas menores, o ambos.
archivos de vinculación erróneos. Si hay más de
20 archivos de vinculación erróneos, se añaden SQL0053W No se han encontrado sentencias
puntos suspensivos (...) tras el último nombre de de SQL en el programa.
archivo de vinculación de la lista.
Explicación: El archivo fuente especificado no
No se han creado uno o más paquetes. contiene sentencias de SQL.
Respuesta del Usuario: Consulte los mensajes Si se vincula, se creará un paquete vacío.
del archivo de mensajes. Compruebe el archivo
de lista para verificar que contiene nombres Respuesta del Usuario: Asegúrese de que está
válidos. Vuelva a someter el mandato. precompilando o vinculando el programa
correcto.

SQL0041N No se ha intentado vincular los


archivos especificados después del SQL0055N El archivo fuente de entrada está
número de archivo “<número>” vacío.
en la lista “<nombre>” porque se Explicación: El archivo fuente de entrada no
ha producido un error muy grave contiene ningún dato.
que ha finalizado el proceso.
Se termina la precompilación.
Explicación: Algunos de los errores que se
producen durante el proceso de vinculación Respuesta del Usuario: Asegúrese de que se ha
están considerados como muy graves (por ej., especificado el archivo de entrada correcto.
errores del sistema, errores de memoria). Si se
produce uno de estos errores al procesar un SQL0056N Una declaración de variable
archivo de un archivo de lista, el proceso SQLSTATE o SQLCODE está en
finalizará. No se realizará ningún intento de una sentencia compuesta anidada.
vincular los archivos restantes en el archivo de
lista. Explicación: Una declaración de variable
SQLSTATE o SQLCODE está en una sentencia
Este tipo de error se produce al vincular el compuesta anidada en lugar de la sentencia
archivo de vinculación especificado en la lista. compuesta más remota en la rutina SQL.
Observe que el dígito que se utiliza para
identificar el archivo de vinculación indica la No se puede procesar la sentencia.
posición relativa del archivo en el archivo de
Respuesta del Usuario: Declare las variable
lista.

12 Consulta de mensajes, Volumen 2


SQLSTATE y SQLCODE sólo en la sentencia Respuesta del Usuario: No es necesaria
compuesta más exterior de la rutina SQL. ninguna acción.
sqlcode: -56
SQL0061W El vinculador se está procesando.
sqlstate: 42630
Explicación: Este mensaje se graba en el
dispositivo estándar de salida cuando el
SQL0057N Una sentencia RETURN en una
vinculador empieza el proceso.
función o método SQL debe
incluir un valor de retorno. El proceso continúa.
Explicación: Una sentencia RETURN se Respuesta del Usuario: No es necesaria
especifica en el método o función SQL sin ninguna acción.
especificar una valor a devolver.
No se puede procesar la sentencia. SQL0062W Iniciando INCLUDE del archivo
″<nombre>″.
Respuesta del Usuario: Especifique un valor en
la sentencia RETURN. Explicación: Se ha encontrado una sentencia
INCLUDE. El precompilador está procesando el
sqlcode: -57
archivo de la sentencia INCLUDE.
sqlstate: 42631
Respuesta del Usuario: No es necesaria
ninguna acción.
SQL0058N El tipo de datos del valor de la
sentencia RETURN en un
SQL0063W Ha finalizado la función
procedimiento SQL debe ser
INCLUDE del archivo
INTEGER.
″<nombre>″.
Explicación: Una sentencia RETURN se
Explicación: El precompilador ha completado el
especifica en el procedimiento SQL con un valor
proceso del archivo de la sentencia INCLUDE. El
o expresión que no es del tipo de datos de
proceso del archivo que contiene la sentencia
INTEGER.
INCLUDE se reanudará.
No se puede procesar la sentencia.
Respuesta del Usuario: No es necesaria
Respuesta del Usuario: Especifique un valor en ninguna acción.
la sentencia RETURN que tiene un tipo de datos
de INTEGER.
SQL0064N El archivo ″<nombre>″ se incluye
sqlcode: -58 (INCLUDE) directa o
indirectamente a sí mismo.
sqlstate: 428F2
Explicación: Se ha encontrado un INCLUDE
cíclico. Un archivo de entrada al precompilador
SQL0060W Se está procesando el no puede realizar un INCLUDE de sí mismo, ni
precompilador “<nombre>”. un archivo del que éste hace un INCLUDE
Explicación: Este mensaje se graba en el puede realizar un INCLUDE del primero.
dispositivo de salida estándar cuando el No se efectúa el INCLUDE del archivo
precompilador empieza el proceso. El símbolo especificado.
“<nombre>” hace referencia al precompilador del
lenguaje particular invocado. Respuesta del Usuario: Compruebe la forma en
que están anidados los archivos de la sentencia
El proceso continúa. INCLUDE y elimine cualquier posible ciclo.

Capítulo 2. Mensajes SQL 13


v Cambie el nombre del esquema a SESSION.
SQL0065N Se ha encontrado un fin-de-línea
inesperado en una declaración de v Elimine el nombre del esquema y deje que
variable del sistema principal. DB2 use el valor por omisión, SESSION.

Explicación: Una declaración de variable del sqlcode: -79


sistema principal tiene una sintaxis no válida. Se
ha encontrado un fin-de-línea antes de que se sqlstate: 428EK
haya completado la declaración.
No se puede procesar la sentencia. SQL0081N Se ha devuelto el SQLCODE
“<sqlcode>” durante la
Respuesta del Usuario: Revise la sintaxis de la precompilación/vinculación.
declaración de variable del sistema principal.
Explicación: Al precompilar o vincular el
programa, el gestor de bases de datos ha
SQL0078N Los nombres de los parámetros devuelto un SQLCODE “<sqlcode>” inesperado.
deben estar especificados para la
rutina “<nombre-rutina>”. No se puede procesar la sentencia.

Explicación: La rutina “<nombre-rutina>” no Respuesta del Usuario: Revise el SQLCODE


tiene los nombres de los parámetros para determinar el problema y tome la acción
especificados para todos los parámetros. Cuando adecuada.
la rutina se define con LANGUAGE SQL o
SQLMACRO es necesario un nombre de
SQL0082C Se ha producido un error que ha
parámetro para cada parámetro definido.
interrumpido el proceso.
No se puede procesar la sentencia.
Explicación: Un error no SQL anterior ha hecho
Respuesta del Usuario: Asegúrese de que cada que se interrumpa el proceso.
parámetro definido incluye un nombre de
Se interrumpe la
parámetro.
precompilación/vinculación/vinculación
sqlcode: -78 repetida. No se ha creado ningún paquete.
sqlstate: 42629 Respuesta del Usuario: Corrija la situación que
ha causado el error anterior y vuelva a intentar
la operación.
SQL0079N El nombre del esquema para
DECLARE GLOBAL
TEMPORARY TABLE SQL0083C Se ha producido un error de
“<nombre>” debe ser SESSION y asignación de memoria.
no “<nombre-esquema>”.
Explicación: No hay suficiente memoria para
Explicación: El nombre del esquema para una continuar el proceso.
tabla temporal declarada debe ser SESSION. La
Respuesta del Usuario: Las soluciones posibles
sentencia DECLARE GLOBAL TEMPORARY
son:
TABLE define una tabla temporal declarada
nueva llamada “<nombre>” con un nombre de v Asegurarse de que el sistema disponga de
esquema explícito de “<nombre-esquema>”. Esto suficiente memoria real y virtual.
no está permitido. v Eliminar los procesos de fondo.
No se puede procesar la sentencia.
Respuesta del Usuario: Modifique la sentencia
de una de las maneras siguientes:

14 Consulta de mensajes, Volumen 2


como si una lista separada por comas de los
SQL0084N Una sentencia EXECUTE
campos de componentes se hubiera utiliza en su
IMMEDIATE contiene una
lugar. Dado que en las sentencias de SQL no se
sentencia SELECT o VALUES.
permiten listas de variables de sistema principal,
Explicación: Se ha utilizado una sentencia como pueda ser PREPARE, ninguna constituye
SELECT o VALUES en la sentencia EXECUTE una referencia a una estructura con varios
IMMEDIATE. campos.
No se puede procesar la sentencia. Respuesta del Usuario: Sustituya una referencia
de estructura por una variable de sistema
Respuesta del Usuario: No se da soporte a la
principal atómica o bien por un nombre de
función implícita. Prepare la sentencia SELECT o
campo de estructura completamente calificado.
VALUES. A continuación utilice OPEN, FETCH y
CLOSE.
SQL0088N La variable de sistema principal
sqlcode: -84
“<nombre>” es ambigua.
sqlstate: 42612
Explicación: La variable de sistema principal
“<nombre>” no se puede identificar de forma
SQL0085N El nombre de sentencia exclusiva. Puede haber más de una variable del
“<nombre>” ya está definido. sistema principal con la misma calificación.

Explicación: Una sentencia DECLARE anterior No se puede procesar la sentencia.


ya utiliza el nombre de sentencia especificado en
Respuesta del Usuario: Califique la variable del
la sentencia DECLARE actual.
sistema principal de una manera más detallada o
No se procesa la sentencia DECLARE actual. La asígnele otro nombre si ya está calificada al
sentencia DECLARE anterior conserva el uso del completo.
nombre de la sentencia.
Respuesta del Usuario: Utilice otro nombre SQL0089N El proceso ha finalizado tras
para la sentencia. encontrar 100 errores.
Explicación: El precompilador o vinculador ha
SQL0086C Se ha producido un error de interrumpido el proceso después de encontrar
asignación de memoria. 100 errores.

Explicación: No hay suficiente memoria para Respuesta del Usuario: Corrija los errores
continuar el proceso. indicados en el archivo de anotaciones
cronológicas de mensajes y vuelva a someter el
Respuesta del Usuario: Las soluciones posibles mandato.
son:
v Comprobar que el sistema tenga la memoria
necesaria. SQL0091W La precompilación o vinculación
ha finalizado con “<número-1>”
v Eliminar los procesos de fondo. errores y “<número-2>” avisos.
Explicación: La precompilación o la vinculación
SQL0087N Una variable de sistema principal ha terminado con el número indicado de avisos y
″<nombre>″ es una estructura que de errores.
se utiliza allí donde no se
permiten las referencias de Se termina la precompilación o vinculación.
estructuras.
Respuesta del Usuario: Si se ha producido
Explicación: Cuando se utiliza una referencia de algún error o aviso, corrija el programa, si es
estructura en una sentencia de SQL, se trata

Capítulo 2. Mensajes SQL 15


necesario, y vuelva a intentar la precompilación Si está instalando la base de datos de ejemplo,
o vinculación. elimínela e instálela de nuevo.

SQL0092N No se ha creado ningún paquete SQL0095N No se ha creado ningún archivo


debido a errores anteriores. de vinculación debido a los
errores anteriores.
Explicación: Debido a los errores anteriores, no
se ha creado ningún paquete. Explicación: Debido a los errores anteriores, no
se ha creado ningún archivo de vinculación.
Respuesta del Usuario: Corrija los errores y
vuelva a intentar la precompilación o No se ha creado ningún archivo de vinculación.
vinculación.
Respuesta del Usuario: Corrija los errores y
repita la precompilación.
SQL0093N Se ha encontrado el fin-de-entrada
antes del terminador de sentencias
SQL0097N Las variables o los parámetros de
correspondiente a EXEC SQL.
los tipos de datos LONG
Explicación: Al procesar una sentencia de SQL, VARCHAR o LONG
se ha encontrado el final de archivo fuente antes VARGRAPHIC no se soportan en
de que la sentencia terminase. rutinas SQL.
Se termina la precompilación. Explicación: Las rutinas SQL (procedimientos,
funciones o métodos) no soportan variable o
Respuesta del Usuario: Asegúrese de que la
parámetros de tipos de datos LONG VARCHAR
sentencia de SQL termina correctamente.
o LONG VARGRAPHIC.
Respuesta del Usuario: No use variables o
SQL0094N Ha finalizado la vinculación
parámetros de tipos de datos LONG VARCHAR
debido a una petición de
o LONG VARGRAPHIC en rutinas SQL. Para
interrupción del usuario.
LONG VARCHAR, use VARCHAR con una
Explicación: El proceso ha terminado porque el longitud explícita. Para LONG VARGRAPHIC,
usuario debe haber pulsado la secuencia de use VARGRAPHIC con una longitud explícita.
teclas de interrupción.
sqlcode: -97
Termina el proceso. No se ha creado ningún
sqlstate: 42601
paquete.
Respuesta del Usuario: Si es necesario, vuelva a
someter la vinculación.

SQL0100 - SQL0199
v El resultado de una sentencia SELECT es una
SQL0100W No se ha encontrado ninguna fila
tabla vacía.
para FETCH, UPDATE o DELETE
o bien el resultado de una v Se ha ejecutado una sentencia FETCH cuando
consulta es una tabla vacía. el cursor estaba situado después de la última
fila de la tabla de resultados.
Explicación: Se cumple una de las condiciones
v El resultado de SELECT utilizado en la
siguientes:
sentencia INSERT está vacío.
v No se ha encontrado ninguna fila que cumpla
las condiciones de búsqueda especificadas en No se ha recuperado, actualizado ni suprimido
una sentencia UPDATE o DELETE. ningún dato.

16 Consulta de mensajes, Volumen 2


Respuesta del Usuario: No es necesaria v Usuarios del sistema federado: determine la
ninguna acción. Se puede continuar el proceso. fuente de datos que no puede ejecutar la
sentencia (en la guía para la determinación de
sqlcode: +100
problemas hallará los procedimientos para
sqlstate: 02000 identificar la fuente de datos que falla) y
determine la causa de este rechazo. Si el
rechazo proviene del servidor federado,
SQL0101N La sentencia es demasiado larga o aumente el tamaño del área de pila de
demasiado compleja. sentencia (stmtheap) del archivo de
Explicación: No se ha podido procesar la configuración de la base de datos.
sentencia porque excede el límite del sistema sqlcode: -101
establecido para la longitud o complejidad, o
porque intervienen demasiadas restricciones o
sqlstate: 54001
activadores.
Si la sentencia crea o modifica una descripción
SQL0102N La constante de serie con empieza
empaquetada, la nueva descripción empaquetada
con “<serie>”, es demasiado larga.
puede ser demasiado grande para la columna
correspondiente en los catálogos del sistema. Explicación: Se ha producido una de las
situaciones siguientes:
Los Usuarios del sistema federado también
deben comprobar si la sentencia: v El comentario de la sentencia COMMENT ON
excede los 254 bytes.
v Excede un límite del sistema de servidor
federado o un límite del sistema de la fuente v La longitud del nombre del servidor de
de datos en cuanto a longitud o complejidad. aplicaciones especificado en la sentencia
CONNECT de SQL supera los 18 caracteres.
v Viola algún otro límite específico de la fuente
de datos. v La constante de serie que empieza con
″<serie>″ tiene una longitud superior a 32672
No se puede procesar la sentencia. bytes. Las series de caracteres cuya longitud
sea superior a 32672 bytes o las series gráficas
Nota: Allí donde se realicen conversiones de cuya longitud sea superior a 16336 caracteres
datos de caracteres para aplicaciones y sólo se pueden especificar si se asignan desde
bases de datos que se ejecuten bajo las variables del sistema principal. Tenga
diferentes páginas de códigos, el resultado presente que otros servidores de la familia de
de la conversión es el exceso del límite de productos DB2 puede especificar un límite de
longitud. tamaño diferente para las series de caracteres.
Consulte la documentación del producto DB2
Respuesta del Usuario: Proceda de una de estas
adecuado para obtener detalles.
maneras:
v Usuarios del sistema federado: los límites
v Divida la sentencia en sentencias de SQL
específicos de la fuente de datos no deben
menores o menos complejas.
excederse en una sesión de paso a través. Por
v Aumente el tamaño de la pila de sentencias ejemplo, un literal de caracteres de más de 254
(stmtheap) en el archivo de configuración de la bytes incluido en una sentencia enviada a DB2
base de datos. para MVS/ESA en una sesión de paso a través
v Reduzca el número de restricciones de provocaría este error.
referencia o de comprobación implicadas en la
Es posible que se esté produciendo una
sentencia o reduzca el número de índices de
conversión de datos y que la serie resultante sea
las claves externas.
demasiado larga. Para las conexiones entre
v Reduzca el número de activadores implicados aplicaciones y bases de datos que se ejecutan con
en la sentencia. diferentes páginas de códigos, las constantes de

Capítulo 2. Mensajes SQL 17


series de caracteres pasan de una página de Respuesta del Usuario: Corrija el literal
códigos de aplicación a otra. En determinadas numérico no válido. Usuarios del sistema
situaciones, las constantes de series de gráficos federado, si el error se ha producido en una
pueden convertirse además de la página de sesión de paso a través, determine la fuente de
códigos de base de datos a una codificación datos que provoca el error (consulte la guía para
UCS-2 (UNICODE), por ejemplo, cuando la base la determinación de problemas para conocer las
de datos se ha creado con una página de códigos fuentes de datos que fallan). Examine el lenguaje
EUC. Esto significa que es posible obtener una SQL para esa fuente de datos para determinar la
serie resultante que sea más larga que la serie de norma de representación literal que se ha violado
entrada. y ajuste la sentencia que falla tal como sea
necesario.
No se puede procesar la sentencia.
sqlcode: -103
Respuesta del Usuario: Si el problema está en
sqlstate: 42604
el comentario sobre columna o en el comentario
sobre tabla, reduzca el tamaño del comentario. Si
el problema está en la sentencia de SQL SQL0104N Se ha encontrado un símbolo
CONNECT, reduzca la longitud del nombre del “<símbolo>” después de
servidor de aplicaciones. Si el problema está en “<texto>”. Los símbolos esperados
otras constantes de serie, la función solicitada no son: “<lista-símbolos>”.
está disponible de forma interactiva. Si el error se
Explicación: Se ha detectado un error de
produce en el contexto de una sentencia que no
sintaxis en la sentencia de SQL en el símbolo
sea CONNECT SQL incluida en un programa de
especificado después del texto “<texto>”. El
aplicación, asigne la serie larga a una variable
campo “<texto>” indica los 20 caracteres de la
del sistema principal y sustituya la variable por
sentencia de SQL que preceden al símbolo que
la serie literal en la sentencia de SQL.
no es válido.
Usuarios del sistema federado: en una sesión de
Como ayuda al programador, se proporciona una
paso a través, determine la fuente de datos que
lista parcial de símbolos válidos en el campo
provoca el error (consulte la guía para la
SQLERRM del SQLCA como “<lista-símbolos>”.
determinación de problemas para conocer las
Esta lista da por supuesto que la sentencia es
fuentes de datos anómalas). Examine el lenguaje
correcta hasta ese punto.
SQL para esta fuente de datos para determinar el
límite específico que se ha excedido y ajuste la No se puede procesar la sentencia.
sentencia que falla tal como sea necesario.
Respuesta del Usuario: Revise y corrija la
sqlcode: -102 sentencia en el área del símbolo especificado.
sqlstate: 54002 sqlcode: -104
sqlstate: 42601
SQL0103N El literal numérico “<literal>” no
es válido.
SQL0105N La constante de serie que empieza
Explicación: El “<literal>” indicado empieza con “<serie>” no es válida.
con un dígito pero no es un entero, un decimal o
un literal de coma flotante válido. Explicación: La sentencia contiene una
constante de serie que empieza por “<serie>”
Usuarios del sistema federado: Se ha producido que no es válida.
un error de representación literal específico de la
fuente de datos en una sesión de paso a través. No se puede procesar la sentencia.

No se puede procesar la sentencia. Respuesta del Usuario: Especifique el formato


correcto de la constante de serie. Compruebe la

18 Consulta de mensajes, Volumen 2


serie gráfica, las parejas de delimitadores y que tener una longitud máxima de 18 bytes. Los
el número de bytes de la serie sea par. nombres de columnas pueden tener una longitud
máxima de 30 bytes. Los nombres de puntos de
Usuarios del sistema federado, consulte la guía
grabación, tablas, vistas y alias pueden tener una
para la determinación de problemas para
longitud máxima de 128 bytes. (Esta longitud no
determinar la fuente de datos que provoca el
incluye los caracteres de escape, en el caso de
error.
que los haya.)
sqlcode: -105
Se permite un máximo de 30 bytes para el
sqlstate: 42604 nombre de esquema (calificador de objeto),
excepto para tipos definidos por el usuario, que
permiten un máximo de 8 bytes para un nombre
SQL0106N La sentencia de SQL empieza de esquema.
correctamente pero no está
completa. Los nombres de variables del sistema principal
no pueden exceder los 30 bytes de longitud.
Explicación: La sentencia de SQL es correcta
hasta el punto en que falta más entrada. Podría Para la sentencia de SQL CONNECT, en el
estar provocado por no haber podido finalizar momento de la precompilación se aceptará un
correctamente un literal. Los literales de serie nombre de servidor de aplicaciones de una
necesitan unas comillas al final. longitud no superior a los 18 caracteres. Sin
embargo, en el momento de la ejecución, un
Ha finalizado el proceso de esta sentencia de nombre de servidor de aplicaciones que contenga
SQL. más de 8 caracteres de longitud causará un error.
Respuesta del Usuario: Compruebe que la Asimismo, se aceptará una contraseña de hasta
sentencia tenga todas las partes necesarias para 18 caracteres de longitud y un ID de autorización
completar la función deseada y que todas las de hasta 8 caracteres de longitud en la sentencia
cláusulas se hayan completado. de SQL CONNECT.
En PL/I: Compruebe que se haya completado la Usuarios del sistema federado: si se trata de una
sentencia de SQL antes del punto y coma. En sesión de paso a través, es posible que se haya
Assembler: Compruebe que se sigan excedido un límite específico de la fuente de
adecuadamente las normas de continuación. datos.
(Debe haber un carácter que no sea blanco en la
columna 72 y las líneas continuas deben empezar No se puede procesar la sentencia.
en la columna 16 o posterior.)
Nota: Allí donde se realicen conversiones de
En COBOL: Compruebe que se haya completado
datos de caracteres para aplicaciones y
la sentencia de SQL antes de END-EXEC.
bases de datos que se ejecuten bajo
sqlcode: -106 diferentes páginas de códigos, el resultado
de la conversión es el exceso del límite de
sqlstate: 42601, 42603 longitud.
Respuesta del Usuario: Elija un nombre más
SQL0107N El nombre “<nombre>” es corto o corrija la ortografía del nombre de objeto.
demasiado largo. La longitud
máxima es “<longitud>”. Usuarios del sistema federado: en una sesión de
paso a través, determine la fuente de datos que
Explicación: El nombre devuelto como provoca el error (consulte la guía para la
″<nombre>″ es demasiado largo. La longitud determinación de problemas para conocer las
máxima permitida para este tipo viene indicada fuentes de datos anómalas). Examine el lenguaje
por ″<longitud>″. SQL para esta fuente de datos para determinar el
Los nombres de índices y restricciones pueden límite específico que se ha excedido y ajuste la

Capítulo 2. Mensajes SQL 19


sentencia que falla tal como sea necesario. No se puede procesar la sentencia.
sqlcode: -107 Respuesta del Usuario: Corrija la sentencia de
SQL eliminando la cláusula.
sqlstate: 42622
Usuarios del sistema federado: En una sesión de
paso a través, determine la fuente de datos que
SQL0108N El nombre “<nombre>” tiene un
provoca el error (consulte la guía para la
número erróneo de calificadores.
determinación de problemas para conocer las
Explicación: El nombre “<nombre>” se ha fuentes de datos anómalas). Examine el dialecto
calificado de forma incorrecta. de SQL correspondiente a esa fuente de datos
para determinar cuál es la restricción específica
El objeto con el nombre “<nombre>” sólo puede que se ha violado y ajuste, si procede, la
tener un calificador. sentencia anómala.
Un nombre de columna está calificado con un sqlcode: -109
nombre de tabla (calificado o no calificado) o con
un nombre de correlación. En algunos contextos, sqlstate: 42601
un nombre de columna necesita un calificador de
nombre de tabla.
SQL0110N “<serie>” es una constante
No se puede procesar la sentencia. hexadecimal no válida.
Respuesta del Usuario: Asegúrese de que el Explicación: La constante hexadecimal
nombre del objeto está correctamente calificado. “<serie>” no es válida. El problema es alguno de
los siguientes:
sqlcode: -108
v Se ha especificado un dígito hexadecimal no
sqlstate: 42601 válido. Sólo están permitidos los siguientes:
’de 0 a 9’, ’de A a F’ y ’de a a f’.
SQL0109N La cláusula “<cláusula>” no está v Se ha especificado un número impar de dígitos
permitida. hexadecimales.
v Se han especificado más de 8000 dígitos
Explicación: La cláusula indicada no está
hexadecimales.
permitida en el contexto en el que aparece en la
sentencia de SQL. Respuesta del Usuario: Corrija la constante y
vuelva a someter la sentencia.
Una subconsulta, una sentencia INSERT o una
sentencia CREATE VIEW no pueden tener sqlcode: -110
cláusulas INTO, ORDER BY ni FOR UPDATE.
Una sentencia SELECT incluida no puede tener sqlstate: 42606
cláusulas ORDER BY ni FOR UPDATE. Una
sentencia SELECT incluida no puede contener un SQL0111N La función de columna
operador de conjunto, excepto en una “<nombre>” no incluye ningún
subconsulta. Las sentencias SELECT o VALUES nombre de columna.
utilizadas en declaraciones del cursor no pueden
tener una cláusula INTO. Sólo se puede utilizar Explicación: No se ha especificado
una función RAISE_ERROR como elemento de la correctamente la función de columna
lista de selección si se convierte a algún otro tipo “<nombre>” (AVG, MIN, MAX, SUM o
de datos utilizando la especificación CAST. COUNT(DISTINCT)) porque estas funciones
deben incluir un nombre de columna en el
Usuarios del sistema federado: En una sesión de operando.
paso a través, es posible que se haya violado una
restricción específica de la fuente de datos. No se puede procesar la sentencia.

20 Consulta de mensajes, Volumen 2


Respuesta del Usuario: Especifique un nombre sqlcode: -113
de columna en la expresión que sea el operando
sqlstate: 42601
de la función de columna.
NOTA: Este error sólo afecta a los releases de
SQL0117N El número de valores asignado no
DB2 anteriores a la Versión 2.
es el mismo que el número de
sqlcode: -111 columnas especificadas o
implícitas.
sqlstate: 42901
Explicación:
SQL0112N El operando de la función de v El número de valores de inserción de la lista
columna “<nombre>” incluye una de valores de la sentencia INSERT no coincide
función de columna, una selección con el número de columnas especificadas o
completa escalar o una implícitas. Si no se especifica ninguna lista de
subconsulta. columnas, se incluye una lista de columnas
con todas las columnas de la tabla o vista.
Explicación: El operando de una función de
v El número de valores de la parte derecha de
columna no puede incluir:
una asignación de una sentencia de variable de
v una función de columna transición SET o una cláusula SET de una
v una selección completa escalar sentencia UPDATE no coincide con el número
v una subconsulta. de columnas de la parte izquierda.

En una lista SELECT, el operando de un No se puede procesar la sentencia.


operador aritmético no puede ser una función de Respuesta del Usuario: Corrija la sentencia de
columna que incluya la palabra clave DISTINCT. modo que especifique un valor para cada una de
las columnas especificadas o implicadas.
No se puede procesar la sentencia.
sqlcode: -117
Respuesta del Usuario: Corrija el modo en que
se utiliza la función de columna para eliminar la sqlstate: 42802
expresión no válida y vuelva a intentarlo.
sqlcode: -112 SQL0118N La tabla o vista de destino de la
sentencia INSERT, DELETE o
sqlstate: 42607 UPDATE también se especifica en
una cláusula FROM.
SQL0113N “<identificador>” contiene un Explicación: La tabla o vista especificada como
carácter que no está permitido o destino de una sentencia INSERT, DELETE o
no contiene ningún carácter. UPDATE aparece también en la cláusula FROM
de una subconsulta de la sentencia.
Explicación: Un nombre de variable SQL, un
nombre de parámetro o un nombre de condición La tabla o vista destino de una sentencia
“<identificador>” contiene un carácter no válido. INSERT, UPDATE o DELETE no se puede
Sólo se permiten caracteres que son válidos para utilizar para suministrar los valores que se van a
un identificador común SQL. Observe que insertar ni para calificar las filas que se van a
debido a que el identificador está delimitado, no insertar, actualizar o suprimir.
se realiza la conversión y las letras mayúsculas y
minúsculas se consideran diferenciadas entre sí. No se puede procesar la sentencia.

Respuesta del Usuario: Corrija el identificador Este mensaje sólo afecta a los servidores de la
y vuelva a someter la sentencia. Versión 1.2 y anteriores, y los sistemas
principales accedidos a través de DB2 Connect.

Capítulo 2. Mensajes SQL 21


Respuesta del Usuario: No se da soporte a la sqlcode: -119
función implícita. Para intentar obtener el
sqlstate: 42803
resultado deseado, cree una copia temporal de la
tabla de objetos o vista y direccione la
subselección a dicha copia. SQL0120N Una cláusula WHERE, GROUP
BY, SET o una sentencia de
sqlcode: -118
variable de transición SET
sqlstate: 42902 contiene una función de columna.
Explicación: Una cláusula WHERE sólo puede
SQL0119N Una expresión que empieza por contener una función de columna si la cláusula
“<inicio-expresión>” especificada aparece en una subconsulta de una cláusula
en una cláusula SELECT, cláusula HAVING y el argumento de la función de
HAVING o cláusula ORDER BY columna es una función correlacionada a un
no está especificada en la cláusula grupo. Una cláusula GROUP BY sólo puede
GROUP BY o está en una cláusula contener una función de columna si el
SELECT, cláusula HAVING o argumento de la función de columna es una
cláusula ORDER BY con una referencia correlacionada a una columna de una
función de columna y no se ha subselección distinta de la que contiene la
especificado ninguna cláusula cláusula GROUP BY. Una cláusula SET de una
GROUP BY. sentencia UPDATE o una sentencia de variable
de transición SET sólo puede incluir una función
Explicación: La sentencia SELECT contiene uno
de columna dentro de una selección completa a
de los errores siguientes:
la derecha de una asignación.
v En la cláusula SELECT, cláusula HAVING o
cláusula ORDER BY están contenidas la No se puede procesar la sentencia.
expresión identificada y una función de Respuesta del Usuario: Cambie la sentencia de
columna, pero no hay ninguna cláusula modo que no se utilice la función de columna o
GROUP BY que sólo se utilice donde está soportada.
v La expresión identificada está contenida en la
sqlcode: -120
cláusula SELECT, cláusula HAVING o cláusula
ORDER BY, pero no está en la cláusula sqlstate: 42903
GROUP BY.
La expresión identificada es una expresión que SQL0121N La columna “<nombre>” se
empieza por “<inicio-expresión>”. La expresión especifica más de una vez en la
puede ser un solo nombre de columna. sentencia de variable de transición
INSERT, UPDATE o SET.
Si se especifican las funciones NODENUMBER o
Explicación: La misma columna “<nombre>” se
PARTITION en la cláusula HAVING, se
ha especificado más de una vez en la lista de
considera que todas las columnas de claves de
columnas de una sentencia INSERT, la parte
particionamiento de la tabla subyacente se
izquierda de las asignaciones de la cláusula SET
encuentran en la cláusula HAVING.
de una sentencia UPDATE o la parte izquierda
de las asignaciones de la sentencia de variable de
No se puede procesar la sentencia.
transición SET. Observe que este error puede
Respuesta del Usuario: Corrija la sentencia producirse al realizar una actualización o una
incluyendo la expresión en la cláusula GROUP inserción en una vista en la que más de una
BY que está en la cláusula SELECT, cláusula columna se basa en la misma columna de una
HAVING o cláusula ORDER BY, o eliminando la tabla base.
función de columna de la sentencia SELECT.
No se puede procesar la sentencia.

22 Consulta de mensajes, Volumen 2


Respuesta del Usuario: Corrija la sintaxis de la
SQL0123N El parámetro de la posición ″<n>″
sentencia de modo que cada nombre de columna
de la función ″<nombre>″ debe
esté especificado sólo una vez.
ser una constante o una palabra
sqlcode: -121 clave.

sqlstate: 42701 Explicación: El parámetro de la posición ″<n>″


de la función ″<nombre>″ no es una constante
cuando es necesario que sea una constante o no
SQL0122N Una sentencia SELECT sin es una palabra clave cuando es necesario que lo
cláusula GROUP BY contiene un sea.
nombre de columna y una función
de columna en la cláusula Respuesta del Usuario: Asegúrese de que cada
SELECT o bien la cláusula argumento de la función cumple la definición del
SELECT contiene un nombre de parámetro correspondiente.
columna pero no en la cláusula
sqlcode: -123
GROUP BY.
sqlstate: 42601
Explicación: La sentencia SELECT contiene uno
de los errores siguientes:
v La cláusula SELECT contiene un nombre de SQL0125N El número de columna de la
columna y una función de columna, pero no cláusula ORDER BY es menor que
hay ninguna cláusula GROUP BY. uno o mayor que el número de
columnas de la tabla de
v La cláusula SELECT contiene un nombre de
resultados.
columna, pero que no está en la cláusula
GROUP BY. Explicación: La cláusula ORDER BY de la
sentencia contiene un número de columna menor
La columna puede estar contenida en una
que 1 o mayor que el número de columnas de la
función escalar.
tabla de resultados (el número de elementos de
la cláusula SELECT).
Si se especifican las funciones NODENUMBER o
PARTITION en la cláusula SELECT, se considera No se puede procesar la sentencia.
que todas las columnas de claves de
Respuesta del Usuario: Corrija la sintaxis de la
particionamiento de la tabla subyacente se hallan
cláusula ORDER BY de modo que cada
en la cláusula SELECT.
identificador de columna identifique
correctamente a una columna de la tabla de
No se puede procesar la sentencia. resultados.
Respuesta del Usuario: Corrija la sentencia sqlcode: -125
incluyendo en la cláusula GROUP BY las
columnas de la cláusula SELECT o eliminando sqlstate: 42805
las columnas de la cláusula SELECT.
sqlcode: -122 SQL0127N Se ha especificado DISTINCT
más de una vez.
sqlstate: 42803
Explicación: No se puede utilizar el calificador
DISTINCT a la vez en:
v La cláusula SELECT y una función de columna
v Dos o más funciones de columna de la misma
sentencia SELECT.
No se puede procesar la sentencia.

Capítulo 2. Mensajes SQL 23


Respuesta del Usuario: Este error sólo se puede
SQL0131N Los operandos del predicado LIKE
aplicar a los releases de DB2 anteriores a DB2
tienen tipos de datos
Versión 2 y a los sistemas principales a los que
incompatibles.
se accede mediante DB2 Connect.
Explicación: Si la expresión que hay a la
sqlcode: -127
izquierda de LIKE o de NOT LIKE es de tipo
sqlstate: 42905 carácter, la expresión de la derecha también debe
ser de tipo carácter.

SQL0129N La sentencia contiene demasiados Si la expresión de la izquierda es de tipo gráfico,


nombres de tabla (el máximo es la de la derecha también debe ser de tipo gráfico.
15).
Si la expresión de la izquierda es de tipo BLOB,
Explicación: La sentencia de SQL contiene la de la derecha también debe ser de tipo BLOB.
demasiados nombres de tabla. Una sola sentencia
No se puede procesar la sentencia.
de SQL puede hacer referencia a un total de 15
tablas. En este límite se incluye cada una de las Respuesta del Usuario: Corrija las expresiones
tablas a las que se haga referencia en cualquier del predicado LIKE para que sean del mismo
vista. tipo.
No se puede procesar la sentencia. sqlcode: -131
Respuesta del Usuario: Divida la sentencia de sqlstate: 42818
SQL en dos o más sentencias simples que tengan
15 o menos referencias de tablas.
SQL0132N Un predicado LIKE o una función
Este mensaje sólo afecta a los servidores de la escalar POSSTR no son válidos
Versión 1.2 y anteriores, y los sistemas porque el primer operando no es
principales accedidos a través de DB2 Connect. una expresión de serie o porque el
segundo operando no es una
sqlcode: -129
serie.
sqlstate: 54004
Explicación: Un predicado LIKE o una función
escalar POSSTR que aparece en la sentencia no es
SQL0130N La cláusula ESCAPE no es un sólo válido porque el primer operando no es una
carácter, o bien la serie contiene expresión de serie o porque el segundo operando
una aparición no válida del no es una serie.
carácter de escape.
El operando que aparece a la izquierda de un
Explicación: El carácter de escape debe ser un predicado LIKE o NOT LIKE o el primer
sólo carácter que no tenga más de dos bytes de operando de POSSTR debe ser una expresión de
longitud. Sólo puede aparecer en la serie si le serie. El valor que aparece a la derecha del
sigue otro carácter de escape, un signo de predicado o del segundo operando de POSSTR
porcentaje o un guión bajo. Para obtener más puede ser:
información acerca de la cláusula ESCAPE en el v una constante
predicado LIKE, consulte la publicación Consulta
v un registro especial
de SQL.
v una variable de sistema principal
Respuesta del Usuario: Corrija la serie de
v una función escalar cuyos operandos son
patrones o el carácter de escape como
cualquiera de los mencionados anteriormente
corresponda.
v una expresión que concatene cualquiera de los
sqlcode: -130 elementos anteriores
sqlstate: 22019, 22025

24 Consulta de mensajes, Volumen 2


teniendo en cuenta las siguientes restricciones: v La expresión de valor de una cláusula SET de
v ningún elemento de la expresión puede ser del una sentencia UPDATE, a no ser que la
tipo LONG VARCHAR, CLOB, LONG expresión sea una variable del sistema
VARGRAPHIC o DBCLOB. Además, no puede principal LONG VARCHAR o LONG
tratarse de una variable de referencia de VARGRAPHIC
archivo BLOB. v Una sentencia SELECT de un operador de
v la longitud real de la expresión no puede conjunto (excepto UNION ALL)
superar los 4000 bytes. v La función escalar VARGRAPHIC.
No se puede utilizar un predicado LIKE ni una Usuarios del sistema federado: en una sesión de
función escalar POSSTR con DATE, TIME ni paso a través, este error puede deberse a una
TIMESTAMP. restricción específica de la fuente de datos.
Consulte la publicación Consulta de SQL para
No se puede procesar la sentencia. ver las fuentes de datos que fallan.
Respuesta del Usuario: Compruebe y corrija la
No se puede procesar la sentencia.
sintaxis de LIKE y POSSTR
Respuesta del Usuario: La operación solicitada
sqlcode: -132
en la serie no está soportada.
sqlstate: 42824
Nota: Si no queda clara la forma en que puede
excederse el límite de 255 bytes, considere
SQL0134N Se ha utilizado de forma indebida
que pueden precisarse operaciones de
una columna de serie, una
conversión de páginas de códigos para
variable del sistema principal o la
evaluar la expresión de la serie. Según las
función “<nombre>”.
páginas de código fuente y destino, la
Explicación: No se permite la utilización de la página de códigos destino puede tener un
serie “<nombre>”. atributo de longitud mayor que la página
de códigos fuente. Para obtener más
No se permite una expresión que dé como información, consulte la publicación
resultado un tipo de datos de serie con una Consulta de SQL para ver las
longitud superior a 255 bytes en: explicaciones de las restricciones de serie y
v Una sentencia SELECT DISTINCT conversiones de series.
v Una cláusula GROUP BY
v Una cláusula ORDER BY sqlcode: -134

v Una función de columna con DISTINCT


sqlstate: 42907
v Una sentencia SELECT o VALUES de un
operador de conjunto que no sea UNION ALL.
SQL0135N La entrada para una columna de
No se permite una expresión que dé como serie larga de una sentencia
resultado un tipo de datos LONG VARCHAR o INSERT o UPDATE debe ser de
LONG VARGRAPHIC en: una variable del sistema principal
v Un predicado que no sea EXISTS o NULL o la palabra clave NULL.
v Una función de columna Explicación: UPDATE o INSERT utiliza
v La cláusula SELECT de una subconsulta de un constantes, nombres de columna o subconsultas
predicado que no sea EXISTS o NULL cuando debería utilizar NULL o una variable del
v La cláusula SELECT de una subselección en sistema principal.
una sentencia INSERT Una columna de serie larga es LONG
VARCHAR, LONG VARGRAPHIC,

Capítulo 2. Mensajes SQL 25


VARCHAR(n) donde n es mayor que 254 pero v El tercer argumento de la función SUBSTR es
menor o igual a 32767, o bien VARGRAPHIC(n) una expresión con un valor menor que 0 o
donde n es mayor que 127 pero menor o igual a mayor que M−N+1.
16383.
M es la longitud del primer argumento, si es una
Respuesta del Usuario: Consulte el manual DB2 longitud fija, o la longitud máxima del primer
for VM Application Programming para obtener argumento, si es una longitud variable. N es el
información sobre la utilización de series largas. valor del segundo argumento.
Corrija la sentencia. Vuelva a intentarlo.
No se puede procesar la sentencia.
sqlcode: -135
Respuesta del Usuario: Asegúrese de que el
sqlstate: 56033
segundo y el tercer argumento de la función
SUBSTR tienen valores que cumplen las normas
SQL0137N La longitud resultante de anteriores.
″<operación>″ es mayor que
sqlcode: -138
″<valor máximo>″.
sqlstate: 22011
Explicación: El resultado de concatenar los
operandos dados supera la longitud máxima a la
que da soporte el tipo de resultado. SQL0139W Aparece una cláusula redundante
en la especificación para la
Los resultados de la serie de caracteres están
columna “<columna>”.
limitados a 32.700 bytes a no ser que alguno de
lo operandos sea un CLOB, con lo que el límite Explicación: La cláusula de la especificación de
sería de 2 gigabytes. columna es redundante.
Los resultados de la serie gráfica están limitados La sentencia se ha procesado satisfactoriamente,
a 16.350 caracteres a no ser que alguno de los pero se ha pasado por alto la cláusula
operandos sea un DBCLOB, con lo que el límite redundante.
sería de [Link] caracteres de doble byte (1
menos que un gigabyte). Respuesta del Usuario: Corrija la especificación
de columna.
Los resultados de series binarias (los operandos
son BLOB) se limitan a 2 gigabytes. sqlcode: +139

Respuesta del Usuario: Asegúrese de que la sqlstate: 01589


suma de longitudes de los operandos no supera
el máximo al que se da soporte y vuelva a SQL0142N No se da soporte a la sentencia de
intentar la operación. SQL.
sqlcode: -137 Explicación: El gestor de bases de datos no
sqlstate: 54006 soporta una sentencia de SQL incluida que
puede ser válida para otros productos de bases
de datos relacionales de IBM.
SQL0138N El segundo o el tercer argumento
de la función SUBSTR está fuera Usuarios del sistema federado: compruebe si la
del rango permitido. sentencia de SQL se ha dirigido a una fuente de
datos que no soporta la sentencia de SQL.
Explicación: Se ha producido una de las
condiciones siguientes: No se puede procesar la sentencia.

v El segundo argumento de la función SUBSTR Respuesta del Usuario: Cambie la sintaxis de la


es menor que 1 o mayor que M. sentencia de SQL o elimine dicha sentencia del
programa.

26 Consulta de mensajes, Volumen 2


Usuarios del sistema federado: si la razón es – Una vista de sólo lectura (la columna
desconocida, aísle el problema en la fuente de READONLY de [Link] se
datos que no puede procesar la petición (en la establece en ’Y’)
guía para la determinación de problemas hallará – Una tabla o vista también está definida en
los procedimientos que hay que seguir para la cláusula FROM de una subconsulta de la
identificar la fuente de datos que falla) y sentencia SELECT. (NOTA: sólo se aplica a
examine el lenguaje SQL para esa fuente de los releases anteriores a DB2 Versión 2.)
datos.
v Un operador de conjunto (que no sea UNION
ALL).
SQL0143W No se da soporte a la sentencia de v Usuarios del sistema federado: hay una
SQL; se ignora la sintaxis no limitación de la fuente de datos que impide
válida. actualizar la columna
Explicación: El gestor de bases de datos Tenga presente que estas condiciones no se
comprende pero no da soporte a una sentencia aplican a las subconsultas de la sentencia
de SQL incluida, que puede ser válida para otros SELECT.
productos de bases de datos relacionales de IBM.
La sentencia puede generar resultados No se pueden insertar filas directamente en una
incoherentes o no deseados. tabla de tipo definida en un tipo de estructura
del que no se puede crear una instancia. Puede
Respuesta del Usuario: Cambie la sintaxis de la que las subtablas de esta tabla permitan la
sentencia de SQL o elimine dicha sentencia del inserción.
programa.
Las tablas resumen no permiten operaciones de
SQL0150N La vista, la tabla de tipo o la tabla inserción, actualización ni supresión.
de resumen de la sentencia
INSERT, DELETE o UPDATE es No se puede procesar la sentencia.
una vista, una tabla de tipo o una
Respuesta del Usuario: No se puede realizar la
tabla de resumen para la cual no
función solicitada en la vista o la tabla resumen.
está permitida la operación
solicitada. Usuarios del sistema federado: si la razón es
desconocida, aísle el problema en la fuente de
Explicación: La vista, tabla de tipo o tabla de
datos que no puede procesar la petición (vea en
resumen nombrada en la sentencia INSERT,
la guía para la determinación de problemas los
UPDATE o DELETE está definida de modo que
procedimientos que se han de seguir para
la operación de inserción, actualización o
identificar la fuente de datos que falla) y
supresión solicitada no se puede realizar.
examine la definición del objeto y las
Una vista es de sólo lectura si la sentencia restricciones de actualización para esa fuente de
SELECT contiene cualquiera de los siguientes datos.
elementos:
sqlcode: -150
v Una palabra clave DISTINCT
sqlstate: 42807
v Una función de columna en la lista de
selección
v Una cláusula GROUP BY o HAVING SQL0151N La columna “<nombre>” no se
puede actualizar.
v Una cláusula FROM que identifica uno de los
elementos siguientes: Explicación: No se puede actualizar la columna
– Más de una tabla o vista especificada debido a uno de los siguientes
motivos.

Capítulo 2. Mensajes SQL 27


v la tabla de objetos es una vista y la columna nombres de columnas en la sentencia CREATE
especificada deriva de una función escalar, VIEW, en la expresión de tabla común o nombre
expresión, palabra clave, constante o columna las columnas de la lista SELECT de la selección
de una vista en la que no se puede actualiza completa mediante la cláusula AS.
esta columna.
sqlcode: -153
v la columna especificada es una columna que
no se puede actualizar de un catálogo del sqlstate: 42908
sistema.
Los Usuarios del sistema federado deben SQL0155N No se puede modificar una tabla
comprobar si alguna otra limitación específica de de transición del activador.
la fuente de datos impide la actualización de la Explicación: El activador incluye una cláusula
columna. REFERENCING con un OLD_TABLE o un
NEW_TABLE identificados. Una sentencia de
No se puede procesar la sentencia. SQL de DELETE, INSERT o UPDATE activada ha
Respuesta del Usuario: No se da soporte a la utilizado el mismo nombre como OLD_TABLE o
función solicitada. Para obtener una lista de los NEW_TABLE que la tabla que ha de modificarse.
catálogos que se pueden actualizar (y de las Respuesta del Usuario: Elimine de la acción
columnas que se pueden actualizar), consulte el activada la sentencia de SQL de DELETE,
manual Consulta de SQL. INSERT o UPDATE activada o bien cambie el
Usuarios del sistema federado: si la razón es nombre de la tabla de transición, de modo que
desconocida, aísle el problema en la fuente de no entre en conflicto con la tabla que está
datos que no puede procesar la petición (consulte tratando de modificar.
la guía para la determinación de problemas) y sqlcode: -155
examine la definición del objeto y las
restricciones de actualización para esa fuente de sqlstate: 42807
datos.
sqlcode: -151 SQL0156N El nombre que se ha utilizado
para esta operación no es una
sqlstate: 42808 tabla.
Explicación: Las sentencias ALTER TABLE,
SQL0153N La sentencia CREATE VIEW o DROP TABLE, SET CONSTRAINTS, CREATE
una expresión de tabla común no TRIGGER, CREATE INDEX, LOCK TABLE y
incluye una lista de columna. RENAME TABLE de SQL sólo se pueden aplicar
Explicación: Hay que especificar una lista de a las tablas, no a las vistas. Los programas de
columnas en una sentencia CREATE VIEW o en utilidad RUNSTATS y LOAD sólo se pueden
una expresión de tabla común cuando: aplicar también a las tablas, no a las vistas.
v algún elemento de la lista SELECT de la Usuarios del sistema federado: Algunos
selección completa no es un nombre de programas de utilidad y sentencias no están
columna y no se menciona en la cláusula AS soportados en un entorno federado. Consulte la
v hay dos elementos que son el mismo nombre publicación Administration Guide para obtener
de columna a los que no se cambió el nombre más información.
mediante la cláusula AS. No se puede procesar la sentencia o el programa
No se puede procesar la sentencia. No se creó la de utilidad.
vista para una sentencia CREATE VIEW. Respuesta del Usuario: Compruebe que en la
Respuesta del Usuario: Suministre una lista de sentencia se ha especificado el nombre de tabla
correcto. Si se ha suministrado un nombre de

28 Consulta de mensajes, Volumen 2


alias, asegúrese de que el alias se resuelve en una v una función nombrada en una sentencia
tabla. CREATE FUNCTION
Usuarios del sistema federado: Verifique que el v un método nombrado en una sentencia
objeto no sea un apodo. CREATE METHOD.

sqlcode: -156 El número de nombres de columna especificados


debe ser igual al número de columnas de la tabla
sqlstate: 42809 de resultados de la selección completa asociada.

SQL0157N “<nombre>” no está permitido en No se puede procesar la sentencia.


una cláusula FOREIGN KEY Respuesta del Usuario: Corrija la sintaxis para
porque no identifica una tabla que la lista de nombres de columnas definida
básica. para “<nombre>” especifique un nombre para
Explicación: Se ha identificado el objeto cada columna de la tabla de resultados de la
“<nombre>” en una cláusula FOREIGN KEY de selección completa asociada.
una sentencia CREATE o ALTER TABLE. Una sqlcode: -158
cláusula FOREIGN KEY debe identificar una
tabla básica. sqlstate: 42811

No se puede procesar la sentencia. No se crea ni


se modifica la tabla especificada. SQL0159N La sentencia hace referencia al
“<objeto>” que identifica un
Respuesta del Usuario: Corrija la sentencia de “<tipo-objeto>” en lugar de un
modo que especifique un nombre de tabla básica “<tipo-objeto-esperado>”.
en la cláusula FOREIGN KEY.
Explicación: El objeto “<objeto>” especificado
Si se ha suministrado un nombre de alias, como parte de la sentencia o mandato hace
asegúrese de que el alias se resuelve en una tabla referencia a un objeto de tipo “<tipo-objeto>” en
básica. lugar del tipo esperado “<tipo-objeto-
sqlcode: -157 esperado>”.

sqlstate: 42810 El tipo del objeto proporcionado con la sentencia


o mandato debe coincidir con el tipo identificado
por “<tipo-objeto-esperado>”. Por ejemplo, si la
SQL0158N El número de columnas sentencia es DROP ALIAS PBIRD.T1, PBIRD.T1
especificado para “<nombre>” no debe ser un nombre de alias.
es igual al número de columnas
de la tabla de resultados de la Respuesta del Usuario: Cambie la sentencia o
selección completa asociada. mandato de modo que coincida adecuadamente
con el tipo de objeto identificado por
Explicación: El identificador “<nombre>” ha “<tipo-objeto-especificado>”.
podido identificar:
sqlcode: -159
v una vista con nombre en una sentencia
CREATE VIEW sqlstate: 42809
v el nombre de tabla de una expresión de tabla
común
v un nombre de correlación de una expresión de
tabla anidada
v una tabla de resumen nombrada en una
sentencia CREATE TABLE o ALTER TABLE

Capítulo 2. Mensajes SQL 29


vista que constituye el objeto de la sentencia
SQL0160N La cláusula WITH CHECK
INSERT o UPDATE. Por lo tanto, se comprueba
OPTION no es válida para la vista
cualquier intento de insertar o actualizar filas de
especificada.
esta vista para asegurar que los resultados se
Explicación: La cláusula WITH CHECK ajustan a la definición de vista.
OPTION no se puede utilizar en una definición
No se puede procesar la sentencia. No se realiza
de vista si:
ninguna inserción ni actualización ni se modifica
v La vista está definida como de sólo lectura. La el contenido de la vista ni de la tabla base
vista es de sólo lectura si la sentencia SELECT implícita.
contiene uno de estos elementos. (Tenga en
cuenta que estas condiciones no se aplican a Respuesta del Usuario: Revise la definición de
las subconsultas de la sentencia SELECT.) vista para averiguar por qué se ha rechazado
INSERT o UPDATE. Tenga en cuenta que esta
– Una palabra clave DISTINCT
condición puede depender de los datos.
– Una función de columna en la lista
seleccionada La sentencia INSERT o UPDATE solicitada puede
intentar colocar valores fuera de rango en la
– Una cláusula GROUP BY o HAVING
columna o columnas destino. En las
– Una cláusula FROM que identifica: actualizaciones de catálogos del sistema, consulte
- Más de una tabla o vista el manual Consulta de SQL para ver los rangos
- Una vista de sólo lectura válidos de las diversas columnas actualizables de
los catálogos.
– Un operador de conjuntos (que no sea
UNION ALL). Usuarios del sistema federado: si la razón es
v La sentencia SELECT de la sentencia CREATE desconocida, aislar el problema en la fuente de
VIEW incluye una subconsulta (a excepción de datos que no puede procesar la petición (consulte
las columnas de estadística específica de la guía para la determinación de problemas) y
algunas tablas de catálogo). examine la definición del objeto y la definición
de la vista para esa fuente de datos.
Usuarios del sistema federado: la opción WITH
CHECK no está soportada en las vistas que sqlcode: -161
hacen referencia a apodos que se pueden sqlstate: 44000
actualizar.

No se puede procesar la sentencia. No se ha SQL0170N El número de argumentos para la


creado la vista especificada. función “<nombre>” es incorrecto.

Respuesta del Usuario: Elimine la cláusula Explicación: La función escalar especificada


WITH CHECK OPTION o cambie la definición “<nombre>” tiene demasiados o insuficientes
de la vista de modo que cumpla con las normas argumentos.
anteriores. No se puede procesar la sentencia.
sqlcode: -160 Respuesta del Usuario: Asegúrese de
sqlstate: 42813 especificar el número correcto de argumentos
para la función escalar.

SQL0161N La fila resultante de INSERT o de sqlcode: -170


UPDATE no cumple la definición sqlstate: 42605
de vista.
Explicación: Se ha especificado la cláusula
WITH CHECK OPTION en la definición de la

30 Consulta de mensajes, Volumen 2


v El cuarto argumento de la función de escalar
SQL0171N El tipo de datos, la longitud o el
de conversión debe ser un carácter de doble
valor del argumento “<n>” de la
byte correctamente formado si el primer
rutina “<nombre>” no son
argumento es GRAPHIC o VARGRAPHIC.
correctos.
No se puede procesar la sentencia.
Explicación: El tipo de datos, la longitud o el
valor del argumento “<n>” de la rutina Respuesta del Usuario: Asegúrese de que el
“<nombre>” no son correctos. segundo, tercer y cuarto argumento de la función
escalar TRANSLATE tienen valores correctos.
No se puede procesar la sentencia.
sqlcode: -176
Respuesta del Usuario: Asegúrese de que los
argumentos de la rutina cumplen las normas de sqlstate: 42815
la rutina.
sqlcode: -171 SQL0180N La sintaxis de la representación de
serie de un valor de fecha/hora no
sqlstate: 42815
es correcta.
Explicación: La representación de serie de un
SQL0172N “<nombre>” no es un nombre de
valor de fecha, hora o indicación de la hora
función válido.
cumple con la sintaxis del tipo de datos
Explicación: La sentencia de SQL contiene una especificado o implícito.
función escalar desconocida.
No se puede procesar la sentencia.
No se puede procesar la sentencia.
Respuesta del Usuario: Asegúrese de que la
Respuesta del Usuario: Asegúrese de que ha sintaxis del valor de fecha, hora o indicación de
escrito correctamente el nombre de función. la hora cumple con la sintaxis de su tipo de
datos. Si la serie no está destinada a ser un valor
sqlcode: -172
de fecha, hora o indicación de la hora, asegúrese
sqlstate: 42601 de que al utilizarla no implique estos tipos de
datos.

SQL0176N El segundo, tercer o cuarto Usuarios del sistema federado: el problema


argumento de la función escalar puede ser debido a un error en la representación
TRANSLATE es incorrecto. de la fecha/hora de la fuente de datos. Si la
razón es desconocida, aísle el problema en la
Explicación: La sentencia no es correcta por una fuente de datos que no puede procesar la
o varias de las razones siguientes: petición, consulte la publicación Problem
v La función escalar de conversión no permite la Determination Guide y examine las restricciones
sustitución de un carácter por otro que esté de la representación de la fecha/hora para esa
codificado con un número diferente de bytes. fuente de datos.
Por ejemplo, un carácter de un solo byte no
puede sustituirse por un carácter de doble sqlcode: -180
byte y viceversa. sqlstate: 22007
v El segundo y el tercer argumento de la función
escalar TRANSLATE deben terminar por
SQL0181N La representación de serie de un
caracteres correctamente formados.
valor de fecha/hora está fuera de
v El cuarto argumento de la función escalar de rango.
conversión debe ser un carácter de un solo
byte correctamente formado si el primer Explicación: La representación de serie de un
argumento es CHAR o VARCHAR. valor de fecha, hora o indicación de la hora

Capítulo 2. Mensajes SQL 31


contiene un valor que está fuera de rango. Respuesta del Usuario: Asegúrese de que el
valor esté dentro del rango válido y de que el
Este error podría deberse a que se ha tratado de
formato de fecha y hora de la aplicación sea el
acceder a un valor de fecha/hora desde una
mismo que el valor de la serie.
aplicación que utiliza un código de país cuyo
formato de fecha/hora es distinto al que emplea sqlcode: -181
la aplicación que creó dicho valor. Por ejemplo,
sqlstate: 22007
un valor de fecha y hora de serie almacenado en
el formato dd/mm/aaaa no será válido cuando
lo lea una aplicación que espera que su formato SQL0182N Una expresión con un valor de
sea mm/dd/aaaa. fecha/hora o una duración
asignada no es válida.
Los rangos correctos para los valores de fecha,
hora o indicación de la hora son los siguientes: Explicación: En la expresión especificada se ha
v 0001 a 9999 para los años. utilizado de forma incorrecta una fecha, hora,
indicación de la hora o una duración etiquetada.
v 1 a 12 para los meses.
v 1 a 31 para los días, cuando los meses son 1, 3, No se puede procesar la sentencia.
5, 7, 8, 10 y 12. Respuesta del Usuario: Revise la sentencia de
v 1 a 30 para los días, cuando los meses son 4, 6, SQL para determinar la causa del problema y
9, 11. corrija la sentencia.
v 1 a 28 para los días, cuando el mes 2 de un sqlcode: -182
año no bisiesto.
v 1 a 29 para los días, cuando el mes es 2 de un sqlstate: 42816
año bisiesto.
v 0 a 24 para las horas. Si la hora es 24, el resto SQL0183N El resultado de una operación
de la hora es 0. Si la hora está en formato de aritmética o función escalar de
[Link]., no puede ser mayor que 12. fecha/hora no se encuentra dentro
v 0 a 59 para los minutos. del rango válido de fechas.

v 0 a 59 para los segundos. Explicación: El resultado de una operación


v 0 a 999999 para los microsegundos. aritmética es una fecha o una duración de
indicación de la hora que está fuera del rango
v 001 a 365 para los días del calendario juliano que va de 0001-01-01 a 9999-12-31.
cuando el año no es bisiesto.
v 001 a 366 para los días del calendario juliano No se puede ejecutar la sentencia.
cuando es año es bisiesto. Respuesta del Usuario: Revise la sentencia de
Usuarios del sistema federado: el problema SQL para determinar la causa del problema. Si el
puede ser debido a un error en la representación problema depende de los datos, revise los datos
de fecha/hora en la fuente de datos. En la procesados en el momento en que se produjo el
documentación que acompaña a la fuente de error.
datos hallará los rangos válidos de fecha y de sqlcode: -183
hora de la fuente de datos. Si la razón es
desconocida, aísle el problema en la fuente de sqlstate: 22008
datos que no puede procesar la petición (consulte
la publicación Problem Determination Guide) y
examine las restricciones de representación de la
fecha/hora para esa fuente de datos.

No se puede procesar la sentencia.

32 Consulta de mensajes, Volumen 2


SQL0187N La referencia a un registro SQL0191N Se ha producido un error debido a
especial de fecha/hora actual no es un carácter MBCS fragmentado.
válida.
Explicación: Entre las causas posibles se
Explicación: Se ha detectado una indicación de incluyen:
error procedente del sistema operativo al 1. Los datos de usuario contenían un carácter de
recuperar información de fecha/hora. múltiples bytes formado incorrectamente. Por
Respuesta del Usuario: Asegúrese de que los ejemplo, se ha encontrado el primer byte de
valores de huso horario y de reloj TOD del un carácter DBCS, pero no el segundo
sistema son correctos. carácter.
2. Una función escalar como, por ejemplo,
sqlcode: -187
SUBSTR o POSSTR ha truncado
sqlstate: 22506 incorrectamente una serie multibyte. Para
estas funciones, los valores de inicio y
longitud deben ser correctos en lo referente a
SQL0190N ALTER TABLE “<nombre-tabla>” los bytes, en el contexto de la página de
especificó atributos para la códigos de la base de datos. Para una base de
columna “<nombre-columna>” datos Unicode, una causa normal de esto
que no son compatibles con la podría ser que el inicio o la longitud de una
columna existente. serie UTF-8 fuesen incorrectos.
Explicación: Los atributos especificados en la 3. Una función escalar como, por ejemplo,
cláusula ALTER COLUMN para la columna TRANSLATE puede haber cambiado la serie
“<nombre-columna>” de la tabla multibyte.
“<nombre-tabla>” en una sentencia ALTER
TABLE no son compatibles con los atributos de Usuarios del sistema federado: también la fuente
la columna existente. Se devolvió el error por de datos puede detectar esta situación.
una de las razones siguientes. Respuesta del Usuario:
v Si se especifica una cláusula SET DATA TYPE, 1. Corrija los datos de entrada y vuelva a
la columna existente: intentarlo.
– no es del tipo VARCHAR ni 2. Cambie los valores de inicio y longitud de tal
– tiene una longitud que es mayor que la manera que cuando se conviertan los
longitud especificada en la cláusula. caracteres a la página de códigos de la base
v Si se especifica una cláusula SET de datos, no se trunquen incorrectamente los
EXPRESSION, la columna existente no se caracteres multibyte.
define como generada mediante una expresión. 3. Corrija la función TRANSLATE errónea.

No se puede procesar la sentencia. Usuarios del sistema federado: si los datos son
correctos, aísle el problema en la fuente de datos
Respuesta del Usuario: Haga que el atributo que no puede procesar la petición (consulte la
especificado sea compatible con la columna publicación Problem Determination Guide) y
existente, elimine la especificación de atributo o examine las restricciones DBCS de esa fuente de
especifique un nombre de columna diferente. datos. Si los datos son aparentemente correctos,
sqlcode: -190 póngase en contacto con el servicio técnico de
IBM para obtener ayuda.
sqlstate: 42837
sqlcode: -191

sqlstate: 22504

Capítulo 2. Mensajes SQL 33


No se ha podido completar la sentencia
SQL0193N En una sentencia ALTER TABLE,
PREPARE o EXECUTE IMMEDIATE.
la columna “<nombre-columna>”
se ha especificado como NOT Respuesta del Usuario: Corrija la lógica del
NULL y no se ha especificado la programa para asegurarse de que se suministra
cláusula DEFAULT o se ha una sentencia de SQL válida en el operando de
especificado como DEFAULT la sentencia PREPARE o EXECUTE IMMEDIATE
NULL. antes de que se ejecute.
Explicación: Cuando se añaden nuevas sqlcode: -198
columnas a una tabla existente, se debe asignar
un valor a la nueva columna para todas las filas sqlstate: 42617
existentes. Por omisión, se asigna el valor nulo.
Sin embargo, puesto que la columna se ha SQL0199N La utilización de la palabra
definido como NOT NULL, debe definirse un reservada “<palabra clave>”
valor diferente de nulo. después de “<texto>” no es
Respuesta del Usuario: Elimine la restricción válida. Los símbolos esperados
NOT NULL de la columna o proporcione un son: “<lista-símbolos>”.
valor por omisión que no sea nulo para la Explicación: Se ha detectado un error de
columna. sintaxis en la sentencia de SQL en el punto en
sqlcode: -193 que aparece la palabra reservada “<palabra
clave>” después de “<texto>”. El campo
sqlstate: 42601 “<texto>” indica los 20 caracteres de la sentencia
de SQL que preceden a la palabra reservada.
Puede que las cláusulas de la sentencia estén en
SQL0197N No se permite un nombre de
un orden erróneo.
columna calificado en la cláusula
ORDER BY. Como ayuda al programador, se proporciona una
lista parcial de símbolos válidos en el campo
Explicación: La cláusula ORDER BY de una
SQLERRM del SQLCA como “<lista-símbolos>”.
selección completa que incluye un operador de
Esta lista da por supuesto que la sentencia es
conjunto (UNION, EXCEPT, INTERSECT) no
correcta hasta ese punto.
puede tener nombres de columna calificados.
No se puede procesar la sentencia.
Respuesta del Usuario: Asegúrese de que todos
los nombres de columnas de la cláusula ORDER Respuesta del Usuario: Revise la sentencia en el
BY son no calificados. área de la palabra clave. Añada dos puntos o un
delimitador de SQL, si falta. Compruebe que las
sqlcode: -197
cláusulas estén en el orden correcto. Si la palabra
sqlstate: 42877 reservada identificada en los mensajes se lista
como palabra reservada, conviértala en un
identificador delimitado.
SQL0198N La serie de sentencias de la
sentencia PREPARE o EXECUTE NOTA: Este error sólo afecta a los releases de
IMMEDIATE está en blanco o DB2 anteriores a la Versión 2.
vacía.
sqlcode: -199
Explicación: La variable del sistema principal
sqlstate: 42601
objeto de la sentencia PREPARE o EXECUTE
IMMEDIATE contiene todo blancos o es una
serie vacía.

SQL0200 - SQL0299

34 Consulta de mensajes, Volumen 2


– El tipo de datos no existe en la base de
SQL0203N La referencia a la columna
datos con una indicación horaria de
“<nombre>” es ambigua.
creación anterior a la hora en que se vinculó
Explicación: La columna “<nombre>” se utiliza el paquete (se aplica a las sentencias
en la sentencia y hay más de una posible estáticas).
columna a la que podría hacer referencia. Este – Si el tipo de datos está en la cláusula
podría ser el resultado de: UNDER de la sentencia CREATE TYPE, el
v dos tablas especificadas en la cláusula FROM nombre del tipo puede ser el mismo que el
que tienen columna con el mismo nombre tipo que se está definiendo, el cual no es
v la cláusula ORDER BY hace referencia a un válido.
nombre que se aplica a más de una columna v Se hace referencia a una función en una de las
en la lista de selección siguientes sentencias o cláusulas:
v una referencia a una columna de la tabla – una sentencia DROP FUNCTION
sujeto de una sentencia CREATE TRIGGER no – una sentencia COMMENT ON FUNCTION
utiliza el nombre de correlación para indicar si
– la cláusula SOURCE de una sentencia
hace referencia a la variable de transición
CREATE FUNCTION
nueva o antigua.
Si ″<nombre>″ está calificado, entonces la
El nombre de la columna necesita información función no existe. Si ″<nombre>″ no está
adicional para determinar cuál de las columnas calificado entonces una función de este
de la tabla es. nombre no existe en ningún esquema de la
vía de acceso a la función actual. Tenga en
No se puede procesar la sentencia. cuenta que en las funciones incorporadas
Respuesta del Usuario: Añada un calificador al COALESCE, NULLIF o VALUE no puede
nombre de la columna. El calificador es el haber una función con SOURCE.
nombre de la tabla o el nombre de la correlación. Este código de retorno se puede generar para
Tal vez sea necesario renombrar una columna en cualquier tipo de objeto de base de datos.
la lista de selección.
sqlcode: -203 Usuarios del sistema federado: el objeto
identificado por “<nombre>” no está definido en
sqlstate: 42702 la base de datos o “<nombre>” no es un apodo
de una sentencia DROP NICKNAME.
SQL0204N “<nombre>” es un nombre no
definido. Algunas fuentes de datos no proporcionan los
valores adecuados para “<nombre>”. En estos
Explicación: La causa del error es una de las casos, el distintivo del mensaje tendrá el
siguientes: siguiente formato: “OBJECT:<fuente de datos>
v El objeto identificado por “<nombre>” no está TABLE/VIEW”, que indica que el valor real de la
definido en la base de datos. fuente de datos especificada no es conocido.
v Se utiliza un tipo de datos. Este error se puede
producir por las siguientes razones: No se puede procesar la sentencia.
– Si ″<nombre>″ está calificado, entonces en Respuesta del Usuario: Asegúrese de que el
la base de datos no existe un tipo de datos nombre de objeto (incluido cualquier calificador
con este nombre. necesario) está correctamente especificado en la
– Si ″<nombre>″ no está calificado, entonces sentencia de SQL y de que existe. Si falta el tipo
la vía de acceso de la función del usuario de datos o la función en la cláusula SOURCE, tal
no contiene el esquema al que pertenece el vez sea que el objeto no existe O tal vez, el
tipo de datos deseado. objeto existe en algún esquema, pero el esquema

Capítulo 2. Mensajes SQL 35


no está presente en la vía de acceso de la función
SQL0206N “<nombre>” no es válida en el
correspondiente.
contexto donde se usa.
Usuarios del sistema federado: si la sentencia es
Explicación: Este error se puede producir en los
DROP NICKNAME, asegúrese de que el objeto
siguientes casos:
sea realmente un apodo. Es posible que el objeto
no exista en la base de datos federada o en la v Para una sentencia INSERT o UPDATE, la
fuente de datos. Compruebe la existencia de columna especificada no es una columna de la
objetos de la base de datos federada (si existen) y tabla o la vista que se ha especificado como el
objetos de la fuente de datos (caso de haberlos). objeto de la inserción o la actualización.
v Para una sentencia SELECT o DELETE, la
sqlcode: -204
columna especificada no es una columna de
sqlstate: 42704 ninguna de las tablas o vistas identificadas en
una cláusula FROM de la sentencia.

SQL0205N La columna o el atributo v Para una cláusula ORDER BY, la columna


“<nombre>” no está definido en especificada es una referencia correlacionada a
“<nombre-objeto>”. una columna de una subselección, lo que no
está permitido.
Explicación: Si “<nombre-objeto>” es una tabla v Para una sentencia CREATE TRIGGER:
o una vista, entonces “<nombre>” es una
columna que no está definida en – Se hace referencia a una columna de la tabla
“<nombre-objeto>”. Si “<nombre-objeto>” es un sujeto sin emplear un nombre de
tipo estructurado, entonces “<nombre>” es un correlación OLD o NEW.
atributo que no está definido en – La parte izquierda de una asignación de
“<nombre-objeto>”. una sentencia de variable de transición SET
en la acción activada, especifica una
Usuarios del sistema federado: variable de transición en la que solamente
“<nombre-objeto>” podría hacer referencia a un se da soporte a una variable de transición
apodo. nueva.
No se puede procesar la sentencia. v Para una sentencia CREATE FUNCTION:
Respuesta del Usuario: Si “<nombre-objeto>” – La sentencia RETURN de la función SQL
es una tabla o vista, compruebe que los nombres hace referencia a una variable que no es un
de columna y de tabla o de vista (incluyendo los parámetro o a otra variable que está en el
calificadores necesarios) están especificados ámbito de la sentencia RETURN.
correctamente en la sentencia de SQL. Si – La cláusula FILTER USING hace referencia
“<nombre-objeto>” es un tipo estructurado, a una variable que no es un nombre de
compruebe que los nombres de atributo y de tipo parámetro o a un nombre de expresión en
(incluidos los calificadores necesarios) están la cláusula WHEN.
especificados correctamente en la sentencia de – El destino de búsqueda en una regla de
SQL. explotación de índices no coincide con
Además, si recibe este error durante un REORG algún nombre de parámetro de la función
o IMPORT, tal vez los nombres de columna del que se está creando.
índice vulneren las normas de nomenclatura del – Un argumento de búsqueda en una regla de
gestor de bases de datos, tal como están explotación de índices no coincide con un
definidas en el manual Administration Guide. nombre de expresión en la cláusula
EXPRESSION AS o con un nombre de
sqlcode: -205
parámetro de la función que se está
sqlstate: 42703 creando.

36 Consulta de mensajes, Volumen 2


v Para una sentencia CREATE INDEX sistemas principales a los que se accede mediante
EXTENSION, la cláusula RANGE THROUGH DB2 Connect.
o la cláusula FILTER USING hace referencia a
sqlcode: -207
una variable que no es un nombre de
parámetro que se puede usar en la cláusula. sqlstate: 42706
No se puede procesar la sentencia.
SQL0208N La cláusula ORDER BY no es
Respuesta del Usuario: Verifique que los
válida porque la columna
nombres estén correctamente especificados en la
“<nombre>” no forma parte de la
sentencia de SQL. Para una sentencia SELECT,
tabla de resultados.
asegúrese de que todas las tablas necesarias están
nombradas en la cláusula FROM. Para una Explicación: La sentencia no es válida porque
subselección de una cláusula ORDER BY, una columna “<nombre>” especificada en la lista
asegúrese de que no hay ninguna referencia a ORDER BY no está especificada en la lista
columnas correlacionadas. Si se utiliza un SELECT y no está en la tabla de resultados. Sólo
nombre de correlación para una tabla, se pueden utilizar columnas de la tabla de
compruebe que las referencias posteriores resultados para ordenar ese resultado cuando la
utilizan el nombre de correlación y no el nombre selección completa de la sentencia de selección
de la tabla. no es una subselección.
Para una sentencia CREATE TRIGGER, asegúrese No se puede procesar la sentencia.
de que solamente se especifican las nuevas
variables de transición en la parte izquierda de Respuesta del Usuario: Para corregir la sintaxis
las asignaciones de la sentencia de la variable de de la sentencia, añada la columna especificada a
transición SET y de que las referencias a la tabla de resultados o suprímala de la cláusula
columnas de la tabla sujeto tengan especificado ORDER BY.
un nombre de correlación. sqlcode: -208
sqlcode: -206 sqlstate: 42707
sqlstate: 42703
SQL0212N “<nombre>” es un designador de
SQL0207N No se permite un nombre de tabla duplicado o se ha
columna en la cláusula ORDER especificado más de una vez en la
BY de una sentencia SELECT que cláusula REFERENCING de una
se utiliza con un operador de definición de activador.
conjunto. Explicación: El nombre de tabla, vista, alias o
Explicación: Una sentencia SELECT con un correlación expuesto especificado por
operador de conjunto contiene una cláusula “<nombre>” es idéntico a otro nombre de tabla,
ORDER BY, la cual especifica nombres de vista, alias o correlación expuesto en la misma
columnas. En este caso, la lista de columnas de la cláusula FROM.
cláusula ORDER BY debe contener únicamente Si la sentencia es CREATE TRIGGER, la cláusula
enteros. REFERENCING puede tener especificado el
No se puede procesar la sentencia. mismo nombre que la tabla sujeto, el mismo
nombre para diversos nombres de correlación
Respuesta del Usuario: Especifique únicamente OLD o NEW o bien los identificadores
números enteros en la lista de columnas en la NEW_TABLE o OLD_TABLE.
cláusula ORDER BY.
No se puede procesar la sentencia.
NOTA: Este error sólo se puede aplicar a los
releases de DB2 anteriores a la Versión 2 y a los Respuesta del Usuario: Vuelva a escribir la

Capítulo 2. Mensajes SQL 37


cláusula FROM de la sentencia SELECT. Asocie escalar. Este código de razón sólo se
los nombres de correlación con los nombres de produce cuando “<tipo-cláusula>” es
tabla, vista o alias de modo que ningún nombre GROUP BY.
de tabla, vista, alias o correlación expuesto sea
5 El lado izquierdo de un operador no
idéntico a ningún otro nombre de tabla, vista,
referenciado en una cláusula GROUP BY
alias o correlación expuesto en la cláusula
no puede ser una función de variante.
FROM.
Este código de razón sólo se produce
Para una sentencia CREATE TRIGGER, cambie cuando “<tipo-cláusula>” es GROUP
los nombres de la cláusula REFERENCING de BY.
modo que no hayan duplicados.
No se puede procesar la sentencia.
sqlcode: -212
Respuesta del Usuario: Modifique la sentencia
sqlstate: 42712
de selección basada en la razón especificada por
el “<código-razón>” tal como se indica a
SQL0214N Una expresión que empieza por continuación:
“<inicio-expresión>” de la
1 Elimine la expresión de la cláusula
cláusula “<tipo-cláusula>” no es
ORDER BY. Si intenta hacer referencia a
válida. Código de razón =
una columna del resultado, cambie la
“<código-razón>”.
clave de clasificación por la forma de
Explicación: La expresión identificada por la entero simple o de nombre de columna
primera parte de la expresión simple.
“<inicio-expresión>” de la cláusula
2 Elimine DISTINCT de la cláusula de
“<tipo-cláusula>” no es válida por la razón
selección o cambie la clave de
especificada por el “<código-razón>” que se
clasificación por la forma de entero
indica a continuación:
simple o de nombre de columna simple.
1 La selección completa de la sentencia
3 Añada una cláusula GROUP BY o
select no es una subselección. No se
elimine la función de columna de la
permiten las expresiones en la cláusula
cláusula ORDER BY.
ORDER BY para este tipo de sentencia
select. Este código de razón sólo se 4 Elimine todas las selecciones completas
produce cuando “<tipo-cláusula>” es escalares de la cláusula GROUP BY. Si
ORDER BY. desea la agrupación en una columna del
resultado que esté basada en una
2 En la cláusula de selección se ha
selección completa escalar, utilice una
especificado DISTINCT y la expresión
expresión de tabla anidada o una
no coincide exactamente con ninguna
expresión de tabla común para
expresión de la lista de selección. Este
proporcionar primero una tabla de
código de razón sólo se produce cuando
resultados con la expresión como
“<tipo-cláusula>” es ORDER BY.
columna del resultado.
3 La presencia de una función de columna
5 Elimine cualquier función variante del
en la cláusula ORDER BY ha ocasionado
lado izquierdo de los operadores no
la agrupación. Este código de razón sólo
referenciados en la cláusula GROUP BY.
se produce cuando “<tipo-cláusula>” es
ORDER BY.
sqlcode: -214
4 La expresión de una cláusula GROUP
BY no puede ser una selección completa sqlstate: 42822

38 Consulta de mensajes, Volumen 2


Explain antes de invocar el recurso Explain.
SQL0216N El número de elementos a cada
lado de un operador de predicado Respuesta del Usuario: Cree las tablas Explain
no coincide. El operador de necesarias. Las sentencias del Lenguaje de
predicado es “<operador- definición de datos de SQL necesarias para crear
predicado>”. las tablas Explain están disponibles en el archivo
[Link] del directorio misc que hay bajo
Explicación: Un predicado incluye una lista de
sqllib.
elementos a la derecha o a la izquierda (o a
ambos lados) del operador de predicado. El sqlcode: -219
número de elementos debe ser el mismo en
ambos lados. Estos elementos pueden aparecer sqlstate: 42704
en una lista de expresiones delimitadas entre
paréntesis o bien como elementos de una lista de SQL0220N La tabla Explain “<nombre>”,
selección en una selección completa. columna “<nombre2>” no tiene la
No se puede procesar la sentencia. definición adecuada o bien falta
esta definición.
Respuesta del Usuario: Corrija el predicado
cuyo número de elementos no coincida a ambos Explicación: Se ha invocado el recurso Explain,
lados del operador de predicado. pero la tabla Explain “<nombre>” no tenía la
definición esperada. La definición puede ser
sqlcode: -216 incorrecta debido a:
sqlstate: 428C4 v El número de columnas definidas no es
correcto (si “<nombre2>” es numérico)
v El tipo de datos asignado a las columnas no es
SQL0217W La sentencia no se ha ejecutado ya
correcto (si “<nombre2>” es un nombre de
que sólo se están procesando las
columna).
peticiones de información de
Explain. Respuesta del Usuario: Corrija las definiciones
de la tabla Explain especificada. Las sentencias
Explicación: El valor actual de uno de los
del Lenguaje de definición de datos de SQL
registros especiales de explicación se ha
necesarias para crear las tablas Explain están
establecido en EXPLAIN. Este valor permite que
disponibles en el archivo [Link] del
se preparen y expliquen sentencias de SQL
directorio misc que hay bajo sqllib.
dinámicas, pero no permite que se ejecute
ninguna sentencia dinámica. sqlcode: -220
Respuesta del Usuario: Modifique el valor del sqlstate: 55002
registro especial de explicación apropiado a un
valor que no sea EXPLAIN emitiendo la
sentencia SET apropiada desde la interfaz o SQL0236W SQLDA sólo ha proporcionado
desde la aplicación que encuentra esta condición. “<entero1>” entradas de SQLVAR.
Se precisan “<entero2>” entradas
sqlcode: +217 de SQLVAR para “<entero3>”
columnas. No se ha establecido
sqlstate: 01604
ninguna entrada SQLVAR.
Explicación: El valor del campo SQLN del
SQL0219N La tabla Explain “<nombre>”
SQLDA debe ser mayor o igual al número de
solicitada no existe.
columnas del conjunto de resultados.
Explicación: Se ha invocado el recurso Explain,
El gestor de bases de datos no ha definido
pero éste no ha podido encontrar la tabla Explain
ninguna entrada de SQLVAR (y se ha establecido
“<nombre>” necesaria. Se deben crear las tablas

Capítulo 2. Mensajes SQL 39


el distintivo SQLDOUBLED en ″off″ ([Link]., en el
SQL0238W SQLDA sólo ha proporcionado
carácter espacio)).
“<entero1>” entradas de SQLVAR.
Respuesta del Usuario: Aumente el valor del Dado que al menos una de las
campo SQLN del SQLDA al valor indicado en el columnas que se están
mensaje (asegurándose de que el SQLDA es lo describiendo es un LOB o un tipo
suficientemente grande como para dar soporte a estructurado, se requieren
ese valor) y vuelva a emitir la sentencia. entradas SQLVAR “<entero2>”
para columnas “<entero3>”. No se
sqlcode: +236 ha establecido ninguna entrada
sqlstate: 01005 SQLVAR.
Explicación: Puesto que por lo menos una de
SQL0237W SQLDA sólo ha proporcionado las columnas del conjunto de resultados es un
“<entero1>” entradas de SQLVAR. LOB o un tipo estructurado, se debe suministrar
Dado que al menos una de las un espacio para un número de entradas de
columnas que se están SQLVAR que sea el doble del número de
describiendo tiene un tipo columnas del conjunto de resultados. Tenga
diferenciado, deberían haberse también en cuenta que una o más de las
especificado “<entero2>” entradas columnas del conjunto de resultados puede ser
de SQLVAR. No se han un tipo diferenciado.
establecido ninguna de las El gestor de bases de datos no ha definido
entradas SQLVAR secundarias. ninguna entrada de SQLVAR (y el distintivo
Explicación: Puesto que por lo menos una de SQLDOUBLED se ha establecido en ″off″ ([Link].,
las columnas del conjunto de resultados tiene un en el carácter espacio)).
tipo diferenciado, se debe suministrar espacio Respuesta del Usuario: Aumente el valor del
para un número de entradas de SQLVAR que sea campo SQLN en el SQLDA hasta el valor
el doble del número de columnas del conjunto indicado en el mensaje (tras cerciorarse de que el
de resultados. El gestor de bases de datos solo ha SQLDA es suficientemente grande para dar
definido las entradas de SQLVAR base (y se ha soporte a esta cantidad) y vuelva a someter la
establecido el distintivo SQLDOUBLED en ″off″ sentencia.
([Link]., en el carácter espacio)).
sqlcode: +238
Respuesta del Usuario: Si no se necesita la
información adicional sobre el tipo o tipos sqlstate: 01005
diferenciados del conjunto de resultados, no es
necesario tomar ninguna acción. Si se necesita
SQL0239W SQLDA sólo ha proporcionado
información sobre el tipo diferenciado, se debe
“<entero1>” entradas de SQLVAR.
aumentar el valor del campo SQLN en el SQLDA
Dado que al menos una de las
hasta el valor indicado en el mensaje (después de
columnas que se están
cerciorarse de que el SQLDA es suficientemente
describiendo es un tipo
grande para dar soporte a esa cantidad) y se
diferenciado o un tipo
debe volver a someter la sentencia.
estructurado, se requieren
sqlcode: +237 entradas SQLVAR “<entero2>”
para columnas “<entero3>”. No se
sqlstate: 01594 ha establecido ninguna entrada
SQLVAR.
Explicación: Si alguna de las columnas del
conjunto de resultados es un tipo diferenciado o
un tipo referencia, se debe suministrar espacio

40 Consulta de mensajes, Volumen 2


para un número de entradas de DQLVAR que
SQL0257N Actualmente, esta plataforma no
sea el doble que el número de columnas del
da soporte a contenedores
conjunto de resultados.
DEVICE puros.
El gestor de bases de datos no ha definido
Explicación: Se ha intentado utilizar
ninguna entrada de SQLVAR (y el distintivo
contenedores DEVICE; actualmente no se da
SQLDOUBLED se ha establecido en ″off″ ([Link].,
soporte en esta plataforma al uso de
en el carácter espacio)).
contenedores DEVICE.
Respuesta del Usuario: Si se necesita
Respuesta del Usuario: Utilice contenedores
información sobre el tipo diferenciado o el tipo
FILE o espacios de tablas gestionados por el
referencia, se ha de aumentar el valor del campo
sistema en lugar de contenedores DEVICE.
SQLN del SQLDA hasta el valor indicado en el
mensaje (tras cerciorarse de que el SLDA es sqlcode: -257
suficientemente grande para dar soporte a esa
sqlstate: 42994
cantidad) y se ha de volver a someter la
sentencia. Si no se necesita información adicional
sobre el o los tipo(s) diferenciado(s) o referencia SQL0258N No es posible añadir contenedores
del conjunto de resultados, entonces se puede mientras está pendiente o en
volver a someter la sentencia simplemente curso un reequilibrio del espacio
proporcionando suficientes entradas de SQLVAR de tabla.
para dar cabida al número de columnas del
conjunto de resultados. Explicación: Se ha producido una de las
siguientes condiciones:
sqlcode: +239 1. En la misma unidad de trabajo se ha emitido
sqlstate: 01005 previamente un ALTER TABLESPACE para
añadir contenedores al mismo espacio de
tabla (del mismo nodo). Los contenedores de
SQL0242N El objeto denominado un espacio de tabla sólo pueden añadirse a
“<nombre-objeto>” de tipo un nodo de una sentencia ALTER
“<tipo-objeto>” se ha especificado TABLESPACE de una unidad de trabajo.
más de una vez en la lista de
2. El espacio de tabla al que se están añadiendo
objetos.
contenedores se está sometiendo en este
Explicación: En una lista de nombres de objeto momento a un reequilibrio. Si desea ver los
de tipo “<tipo-objeto>”, el objeto denominado detalles, consulte la anotación cronológica de
“<nombre-objeto>” se ha especificado más de errores del sistema y/o la anotación
una vez. La operación de la sentencia no se cronológica de errores del gestor de bases de
puede realizar en el objeto más de una vez. datos.
Respuesta del Usuario: Corrija el objeto Respuesta del Usuario:
duplicado de la lista, eliminado las ocurrencias 1. Si es posible, retrotraiga la unidad de trabajo
duplicadas. y envíe un solo ALTER TABLE para añadir
sqlcode: -242 todos los contenedores. De lo contrario,
espere a que se complete el proceso y vuelva
sqlstate: 42713 a intentar la operación.
2. Espere a que se complete el proceso y vuelva
a intentar la operación.
sqlcode: -258

sqlstate: 55041

Capítulo 2. Mensajes SQL 41


que se la clave de partición pueda usar o bien
SQL0259N El mapa de contenedores para el
defina la tabla sin clave de partición en un grupo
espacio de tabla es demasiado
mononodo.
complicado.
sqlcode: -260
Explicación: La estructura de correlación
conserva un registro de cómo se correlaciona el sqlstate: 42962
espacio de direcciones del espacio de tabla a
varios contenedores. Si esta operación se
complica, no cabe en el archivo de espacios de SQL0262N La tabla “<nombre-tabla>” no se
tablas. puede crear en el grupo de nodos
multinodo “<nombre-grupo-
Si desea ver los detalles, consulte la anotación nodos>” porque sólo contiene
cronológica de errores del sistema y/o la columnas de tipo LONG. No
anotación cronológica de errores del gestor de puede crearse ninguna clave de
bases de datos. partición.
Respuesta del Usuario: Es posible que el Explicación: La tabla “<nombre-tabla>”
espacio de tabla deba volverse a equilibrar para formada sólo por columnas de tipo LONG no se
distribuir equitativamente los datos en los puede crear en un grupo de nodos multinodo.
contenedores. Esto puede simplificar la Para utilizarla en una clave de partición, la tabla
correlación. debe tener al menos una columna que no sea de
tipo LONG.
Si esto no funciona, intente que tantos
contenedores como sea posible tengan el mismo No se puede procesar la sentencia.
tamaño. Se puede modificar el tamaño de los
contenedores existente haciendo una copia de Respuesta del Usuario: Cree la tabla con una o
seguridad del espacio de tabla y utilizando el varias columnas que no sean de tipo LONG, o
programa de utilidad de administración de la bien en un grupo mononodo.
base de datos para modificar los contenedores. sqlcode: -262
Restaure el espacio de tabla en los nuevos
contenedores. sqlstate: 428A2

sqlcode: -259
SQL0263N El rango de nodos del
sqlstate: 54037 “<número-nodo-1>” al
“<número-nodo-2>” no es válido.
SQL0260N La columna “<nombre-columna>” El segundo número de nodo debe
no puede pertenecer a la clave de ser mayor o igual que el primer
partición porque es una columna número de nodo.
de tipo LONG, DATALINK o Explicación: El rango de nodos especificado no
estructurado. es válido.
Explicación: Una clave de partición no puede No se puede procesar la sentencia.
tener una columna de tipo LONG, DATALINK o
estructurado. Respuesta del Usuario: Corrija el rango de
nodos de la sentencia y vuelva a intentarlo.
No se puede procesar la sentencia.
sqlcode: -263
Respuesta del Usuario: No use columnas de
tipo LONG, DATALINK o estructurado para la sqlstate: 428A9
clave de partición.
Si la tabla sólo tiene de tipo columnas LONG,
DATALINK o estructurado, añada una columna

42 Consulta de mensajes, Volumen 2


de que el nodo no aparece más que en una
SQL0264N La clave de partición no se puede
cláusula ON NODES.
añadir ni eliminar porque la tabla
reside en un espacio de tabla Además, para la sentencia ALTER NODEGROUP
definido en el grupo de nodos o el mandato REDISTRIBUTE NODEGROUP:
multinodo “<nombre>”. v No especifique el mismo nodo en la cláusula
Explicación: La clave de partición sólo puede ADD NODES y en la cláusula DROP NODES.
añadirse o eliminarse en una tabla que se v Elimine el nodo de la cláusula ADD NODES si
encuentre en un grupo mononodo. éste ya está definido en el grupo de nodos.
No se puede procesar la sentencia. sqlcode: -265
Respuesta del Usuario: Tras realizar una de las
siguientes acciones, vuelva a intentar la petición: sqlstate: 42728
v Defina una tabla idéntica con una clave de
partición. SQL0266N El nodo “<número-nodo>” no está
v Redistribuya el grupo de nodos en un grupo definido.
mononodo. Explicación: El nodo “<número-nodo>” no es
sqlcode: -264 válido por una de las siguientes razones:
v el número de nodo no está en el rango válido
sqlstate: 55037 de 0-999
v el nodo no está en el archivo de configuración
de nodos
SQL0265N El nodo “<número-nodo>” es un
nodo duplicado. v el nodo no forma parte del grupo de nodos, lo
que impide procesar la operación solicitada
Explicación: Para la sentencia CREATE
NODEGROUP, un nodo sólo puede aparecer una No se puede procesar la sentencia.
vez en la cláusula ON NODES. Respuesta del Usuario: Según sea el caso:
Para las sentencias CREATE TABLESPACE y v emita la sentencia, mandato o API con
ALTER TABLESPACE, un nodo puede aparecer números de nodos que estén comprendidos en
solamente una vez y en una sola cláusula ON el rango válido.
NODES. v siga el procedimiento para añadir un nodo al
Para la sentencia ALTER NODEGROUP o el sistema.
mandato REDISTRIBUTE NODEGROUP, se ha v elimine el nodo de los nodos especificados en
producido una de las siguientes acciones: la sentencia, el mandato o la API.
v El nodo aparecía más de una vez en las sqlcode: -266
cláusulas ADD NODES o DROP NODES.
v El nodo aparecía tanto en la cláusula ADD sqlstate: 42729
NODES como en la cláusula DROP NODES.
v El nodo que ha de añadirse ya forma parte del
SQL0268N La “<operación>” no puede
grupo de nodos.
llevarse a cabo mientras se está
No se puede procesar la sentencia. redistribuyendo el grupo de
nodos.
Respuesta del Usuario: Compruebe que los
nombres o números de los nodos en las cláusulas Explicación: Causas posibles:
ON NODES, ADD NODES o DROP NODES sean
exclusivos. Para las sentencias CREATE
TABLESPACE y ALTER TABLESPACE, asegúrese

Capítulo 2. Mensajes SQL 43


v El grupo de nodos se está redistribuyendo. No 2 La actualización del valor de la columna
puede alterarse, eliminarse ni redistribuirse de de claves de partición no está soportada.
nuevo hasta que haya finalizado la operación
3 Una clave externa no puede incluir
actual.
ninguna columna de claves de partición
v La tecla de partición de una tabla no puede con nulos cuando se define con ON
eliminarse mientras el grupo de nodos de la DELETE SET NULL. Este es un caso
tabla se esté redistribuyendo. especial del código de razón 2, ya que
No se puede procesar la sentencia. definir una restricción de este tipo daría
como resultado intentar actualizar una
Respuesta del Usuario: Espere a que concluya columna de claves de partición.
la redistribución y vuelva a intentarlo.
4 Una tabla definida utilizando un grupo
sqlcode: -268 de nodos de varias particiones o un
sqlstate: 55038 grupo de nodos de una sola partición en
una partición distinta a la partición del
catálogo, no soporta DATA CAPTURE
SQL0269N La base de datos contiene el CHANGES.
número máximo de correlaciones
de partición. 5 La vista creada con la cláusula WITH
CHECK OPTION no debe utilizar
Explicación: Dado que la base de datos contiene funciones (o vistas de referencia que
el número máximo de correlaciones de partición utilizan funciones) que:
(32.768), el usuario no puede crear, alterar ni v no sean determinantes
redistribuir un grupo de nodos.
v tengan efectos complementarios
No se puede procesar la sentencia. v estén relacionadas con la ubicación de
Respuesta del Usuario: Descarte uno o varios datos (por ejemplo funciones de
grupos de nodos de la base de datos. partición o número de nodo).

Nota: Descartando un grupo de nodos se Estas funciones tampoco deben estar


descartan todos los objetos de la base de datos, presentes en vistas referenciadas si la
como son los espacios de tabla, las tablas y las nueva vista se crea con la opción de
vistas que se encuentran en dicho grupo de comprobación CASCADED.
nodos. 6 No puede definirse una transformación
sqlcode: -269 para un tipo diferenciado definido por
el usuario.
sqlstate: 54033
7 Los campos largos sólo pueden definirse
utilizando un espacio de tabla con un
SQL0270N Función no soportada (Código de tamaño de página de 4K. Sólo puede
razón = “<código-razón>”). crearse un LONG TABLESPACE
Explicación: La sentencia no puede procesarse utilizando un tamaño de página de 4K.
porque vulnera una restricción tal como se indica 8 Los tipos estructurados no están
en el código de razón siguiente: soportados como columnas de una tabla
1 La clave principal, cada una de las o tipos de datos de atributo de tipo
restricciones exclusivas y cada uno de estructurado anteriores a la versión 7.1
los índices exclusivos deben contener de DB2.
todas las columnas de partición de la 9 Los activadores no están soportados en
tabla (las columnas pueden aparecer en las tablas con tipo.
cualquier orden).

44 Consulta de mensajes, Volumen 2


10 No se puede seleccionar un solo espacio UPDATE y REFERENCES a nivel de
de tabla por omisión ya que la tabla columna en una tabla con tipo o una
tiene una o más columnas LOB que se vista con tipo.
han de colocar en un espacio de tabla
19 Se ha de especificar un valor por
con un tamaño de página de 4K y el
omisión específico cuando se defina un
tamaño de fila o el número de columnas
valor por omisión para una columna de
de la tabla necesita un espacio de tabla
una tabla con tipo.
cuyo tamaño de página sea de 8K.
20 ALTER TABLE no está soportado para
11 No se puede crear una tabla con tipo o
una tabla de resumen.
una vista con tipo utilizando un tipo
estructurado que no tenga atributos. 21 La longitud de columna no se puede
alterar en una tabla que sea una tabla
12 El tipo de un parámetro clave fuente
base para una tabla de resumen.
debe ser un tipo estructurado definido
por el usuario o un tipo diferenciado 22 Las tablas de resumen no se pueden
que no se haya originado en LOB, definir en una sentencia CREATE
DATALINK, LONG VARCHAR, or SCHEMA.
LONG VARGRAPHIC.
23 REPLICATED sólo se puede especificar
13 Las restricciones de comprobación no se para una tabla de resumen definida con
pueden definir en una tabla con tipo o REFRESH DEFERRED.
la cláusula WITH CHECK OPTION no
se puede especificar en un vista con 24 La acción activada en un activador
tipo. BEFORE no puede hacer referencia a
una tabla de resumen definida con
14 Las restricciones de referencia no se REFRESH IMMEDIATE.
pueden definir en una tabla con tipo o
en una tabla padre que sea una tabla 25 Sólo se puede especificar una tabla de
con tipo. resumen para una sentencia SET
CONSTRAINTS.
15 No se puede definir un valor por
omisión para columnas de tipo de 26 El grupo de nodos que se está
referencia. redistribuyendo contiene como mínimo
una tabla de resumen duplicada.
16 Un tipo de datos de referencia o un tipo
de datos estructurados no se puede 27 Las tablas de resumen duplicadas no se
utilizar como un tipo de datos de pueden definir en una tabla que no
parámetro o un tipo de datos de retorno tenga un índice exclusivo existente en
de una función definida por el usuario una o más columnas que forman la
anterior a la versión 7.1 de DB2. De lo tabla de resumen duplicada.
contrario, un tipo de datos de referencia 28 No se puede renombrar una tabla con
de ámbito no se puede utilizar como un tipo o una tabla de resumen.
tipo de datos de parámetro o un tipo de
datos de retorno de una rutina. Un tipo 29 La cláusula FOR EXCEPTION no se
estructurado no se puede utilizar como puede especificar con una tabla de
una columna de retorno o como una resumen en la sentencia SET
función de fila. CONSTRAINTS.

17 La sentencia SET CONSTRAINTS no se 30 Las tablas y vistas de tipo no se pueden


puede utilizar para una tabla con tipo. definir en una sentencia CREATE
SCHEMA.
18 No se pueden otorgar privilegios

Capítulo 2. Mensajes SQL 45


31 Una clave de partición no se puede 3 Convierta la columna de claves de
definir con más de 500 columnas. partición en columnas sin nulos,
especifique una acción ON DELETE
32 Una tabla que se ha definido mediante
diferente, o cambie la clave de partición
el uso de un grupo de nodos de varias
de la tabla de modo que la clave externa
particiones o un grupo de nodos de una
no incluya ninguna columna de la tabla
sola partición en una partición distinta a
de partición.
la partición del catálogo, no soporta
columnas DATALINK definidas con 4 Especifique DATA CAPTURE NONE o
FILE LINK CONTROL. asegúrese de que la tabla esté colocada
en un espacio de tabla de un grupo de
33 La tabla subyacente de una tabla de
nodos de una sola partición que
resumen definida con REFRESH
especifique la partición del catálogo.
IMMEDIATE no puede ser hija de una
restricción de referencia con efecto de 5 No utilice la cláusula WITH CHECK
cascada (es decir, con la opción ON OPTION ni elimine la función o la vista
DELETE CASCADE o la opción ON de la definición de vista.
DELETE SET NULL).
6 Las transformaciones son automáticas
34 La característica de referencia a objetos para los tipos diferenciados definidos
subyacente no está soportada en el por el usuario. Utilice la sentencia
release actual. CREATE TRANSFORM sólo para los
tipos estructurados definidos por el
35 No se puede crear una columna de
usuario.
identidad en un entorno de base de
datos multinodo. 7 Utilice un espacio de tabla con un
tamaño de página de 4K para cualquier
36 No se permite la activación de una base
tabla que incluya campos largos. Si se
de datos de una base de datos
utilizan espacios de tablas de DMS, los
multinodo si existen columnas de
campos largos pueden colocarse en un
identidad.
espacio de tabla con un tamaño de
38 No se soporta un índice utilizando una página de 4K con otra tabla o datos de
extensión de índice en un grupo de índice en espacios de tablas con un
nodos de partición múltiple. tamaño de página diferente. Al definir
LONG TABLESPACE, utilice PAGESIZE
39 No se puede hacer referencia a apodos o 4K.
a funciones de tabla OLE DB directa o
indirectamente en el cuerpo de una 8 Para servidores anteriores a la versión
función o de un método SQL. 7.1 de DB2, asegúrese de que ningún
tipo de datos de columna es un tipo
Respuesta del Usuario: La acción estructurado en la sentencia CREATE
correspondiente al código de razón es: TABLE o ALTER TYPE ADD COLUMN.
1 Corrija la sentencia CREATE TABLE, Asegúrese de que ningún tipo de datos
ALTER TABLE o CREATE UNIQUE de atributo es un tipo estructurado en la
INDEX. sentencia CREATE TYPE o ALTER TYPE
ADD ATTRIBUTE.
2 No intente actualizar las columnas de
claves de partición para una tabla de 9 No defina activadores en las tablas con
multipartición ni suprimir y a tipo.
continuación insertar la fila con los 10 Reduzca el tamaño de la fila o el
nuevos valores en las columnas de número de columnas de la tabla o
partición. especifique 2 espacios de tablas de tal

46 Consulta de mensajes, Volumen 2


modo que los datos largos estén en un REFERENCES o UPDATE en una tabla
espacio de tabla cuyo tamaño de página o una vista con tipo.
sea de 4K y los datos de la base estén
19 Incluya un valor específico cuando
en un espacio de tabla cuyo tamaño de
especifique la cláusula DEFAULT en una
página sea de 8K.
columna de tabla con tipo.
11 Cuando cree una tabla o una vista con
20 Descarte la tabla de resumen y vuélvala
tipo, especifique un tipo estructurado
a crear con los atributos deseados.
que tenga como mínimo un atributo
definido. 21 Descarte la(s) tabla(s) de resumen, altere
la longitud de columna de la tabla base
12 Para el tipo de un parámetro clave
y luego vuelva a crear la(s) tabla(s) de
fuente, use únicamente un tipo
resumen.
estructurado definido por el usuario o
un tipo diferenciado que no se haya 22 Emita la sentencia CREATE SUMMARY
originado en LOB, DATALINK, LONG TABLE fuera de la sentencia CREATE
VARCHAR o LONG VARGRAPHIC. SCHEMA.
13 En una sentencia CREATE TABLE o 23 Elimine la especificación REPLICATED
ALTER TABLE para una tabla con tipo, o asegúrese de que se haya especificado
no especifique restricciones de REFRESH DEFERRED para la definición
comprobación. En una sentencia de la tabla de resumen.
CREATE VIEW de una vista con tipo,
no especifique la cláusula WITH 24 Elimine la referencia a la tabla de
CHECK OPTION. resumen de la acción activada en el
activador BEFORE.
14 No especifique restricciones de
referencia que afectan a tablas con tipos 25 Emita sentencias SET CONSTRAINTS
en una sentencia CREATE TABLE o IMMEDIATE CHECKED separadas para
ALTER TABLE. cada tabla de resumen.

15 No especifique una cláusula DEFAULT 26 Descarte todas las tablas de resumen


para una columna con un tipo de datos duplicadas en el grupo de nodos y a
de referencia en una sentencia CREATE continuación, emita de nuevo el
TABLE o ALTER TABLE. mandato REDISTRIBUTE
NODEGROUP. Vuelva a crear la(s)
16 Para servidores anteriores a la versión tabla(s) de resumen duplicada(s).
7.1 de DB2, no especifique un un
parámetro de tipo estructurado o tipo 27 Asegúrese de que un subconjunto de las
de retorno cuando cree una función columnas definidas para la tabla de
definida por el usuario. De lo contrario, resumen también son el conjunto de
no especifique un tipo de referencia de columnas que forman un índice
ámbito como un parámetro o tipo de exclusivo en la tabla de base.
retorno. No especifique un tipo 28 Sólo se puede modificar un nombre de
estructurado como una columna de tabla de resumen o de tabla con tipo
retorno de una tabla o de una función descartando la tabla y volviéndola a
de fila. crear de nuevo con el nuevo nombre.
17 No especifique una tabla con tipo en la Descartar la tabla puede traer
sentencia SET CONSTRAINTS. implicaciones en otros objetos que
dependen de la tabla y los privilegios de
18 No incluya nombres de columnas la tabla se pierden.
específicos cuando otorgue privilegios

Capítulo 2. Mensajes SQL 47


29 Elimine la cláusula FOR EXCEPTION de una extensión de índice en una tabla de
la sentencia SET CONSTRAINTS. un grupo de nodos de partición
múltiple. Un grupo de nodos no se
30 Emita la sentencia CREATE para la tabla
puede convertir en un grupo de nodos
o vista de tipo fuera de la sentencia
de partición múltiple mientras que
CREATE SCHEMA.
exista un índice que esté utilizando una
31 Reduzca el número de columnas de la extensión de índice en una tabla del
clave de partición. grupo de nodos. Descarte alguno de los
índices y añada la partición al grupo de
32 Especifique NO LINK CONTROL para nodos, con lo que los índices no se
la columna DATALINK o asegúrese de podrán volver a crear, o deje el grupo
que la tabla esté colocada en un espacio de nodos sin modificar.
de tabla de un grupo de nodos de una
sola partición que especifique la 39 Elimine la referencia a un apodo o a una
partición del catálogo. Si se efectúa una función de tabla OLE DB o elimine la
redistribución hacia un grupo de nodos referencia al objeto que hace referencia
de varias particiones, debe eliminarse la indirectamente a uno de ellos.
tabla para poder continuar con la
redistribución. sqlcode: -270
33
sqlstate: 42997
v No defina una restricción de
referencia con efecto de cascada (es
decir, con la opción ON DELETE SQL0271N Falta el archivo de índices de la
CASCADE o la opción ON DELETE tabla con fid ″<fid>″ o bien no es
SET NULL) con la tabla subyacente válido.
de una tabla de resumen definida con Explicación: Se necesita el archivo de índices de
REFRESH IMMEDIATE como hija, la tabla con fid ″<fid>″ durante el proceso. Dicho
v ni defina una tabla de resumen archivo no existe o bien el que hay no es válido.
REFRESH IMMEDIATE cuya tabla
subyacente sea hija de una restricción La sentencia no puede procesarse y la aplicación
de referencia con efecto de cascada (es sigue estando conectada a la base de datos. Esta
decir, con la opción ON DELETE situación no afecta a otras sentencias que no
CASCADE o la opción ON DELETE utilicen ese índice en esta tabla.
SET NULL). Respuesta del Usuario: Asegúrese de que todos
34 El error se puede corregir eliminando el los usuarios estén desconectados de la base de
uso de cualquier característica de datos y luego emita el mandato RESTART
relación de objetos no soportada. DATABASE en todos los nodos. A continuación,
intente de nuevo la petición.
35 Elimine el atributo “GENERATED
[ALWAYS | BY DEFAULT] AS El índice o índices se vuelven a crear al reiniciar
IDENTITY ...” de la columna. la base de datos.

36 Descarte el(los) nuevo(s) nodo(s) para sqlcode: -271


volver a una configuración de un solo sqlstate: 58004
nodo. Si se necesitan más nodos, las
tablas con columnas de identidad se
tienen que eliminar antes de que se
añadan los nuevos nodos.
38 No se puede crear un índice utilizando

48 Consulta de mensajes, Volumen 2


SQL0276N La conexión con la base de datos SQL0280W Una vista, un activador o una
″<nombre>″ no se puede tabla de resumen “<nombre>” ha
establecer porque está en estado sustituido a una vista, un
pendiente de restauración. activador o una tabla de resumen
no operativa.
Explicación: Para poder establecer la conexión
es preciso restaurar la base de datos. Explicación: Se ha sustituido una vista, un
activador o una tabla de resumen “<nombre>”
La conexión no se ha establecido.
por:
Respuesta del Usuario: Restaure la base de v la definición nueva de vista como resultado de
dato y luego vuelva a emitir la sentencia una sentencia CREATE VIEW
CONNECT.
v la definición nueva de activador como
sqlcode: -276 resultado de una sentencia CREATE TRIGGER

sqlstate: 08004 v la definición nueva de tabla de resumen como


resultado de una sentencia CREATE
SUMMARY TABLE.
SQL0279N La conexión de la base de datos
ha terminado durante el proceso Respuesta del Usuario: No se requiere ninguna
de COMMIT. La transacción acción.
podría estar en duda. Código de sqlcode: +280
razón = “<código-razón>”.
sqlstate: 01595
Explicación: El proceso de confirmación ha
detectado un error. La transacción ha quedado en
estado de confirmación, pero el proceso de SQL0281N No se puede alterar el espacio de
confirmación no ha podido finalizar tabla ″<nombre-espacio-tabla>″
satisfactoriamente. La conexión de la base de con contenedores adicionales
datos de la aplicación se ha perdido. porque se trata de un espacio de
tabla gestionado por el sistema.
La causa del error vienen indicada en el
″<código-razón>″: Explicación: No se puede añadir contenedores
adicionales a un espacio de tabla gestionado por
1 Ha fallado un nodo implicado en la el sistema. La excepción a esto es cuando se ha
transacción. modificado un grupo de nodos para añadir un
2 Se rechazó la confirmación en uno de nodo sin espacios de tablas, entonces una vez se
los nodos. Compruebe los detalles en el está en el nodo nuevo se pueden añadir los
archivo [Link]. contenedores utilizando el mandato ALTER
TABLESPACE. En general, para poder añadir
Respuesta del Usuario: Determine la causa del contenedores adicionales el espacio de tabla debe
error. Puede que sea preciso solicitar ayuda al estar gestionado por la base de datos.
administrador del sistema, ya que la causa más
probable del error es una anomalía del nodo o No se puede procesar la sentencia.
bien de la conexión. El mandato RESTART Respuesta del Usuario: Para añadir más
DATABASE completará el proceso de contenedores a un espacio de tabla gestionado
confirmación de esta transacción. por el sistema, descarte y vuelva a crear el
sqlcode: -279 espacio de tabla con más contenedores,
asegurándose de que todos los contenedores
sqlstate: 08007 tengan el mismo tamaño y no superen el límite
de tamaño para contenedores, o cambie a un
espacio de tabla DMS.

Capítulo 2. Mensajes SQL 49


sqlcode: -281 tamaño de página del espacio de tabla del
catálogo. Si se descarta el espacio de tabla
sqlstate: 42921
“<nombre-espaciotabla>” se eliminaría de la base
de datos el último espacio de tabla temporal del
SQL0282N El espacio de tabla sistema con un tamaño de página
″<nombre-espaciotabla>″ no “<tamaño-página>”.
puede eliminarse porque al menos
Respuesta del Usuario: Compruebe que habrá
una de las tablas que contiene,
otro espacio de tabla temporal del sistema con
″<nombre-tabla>″, tiene una o
un tamaño de página “<tamaño-página>” en la
más de sus partes en otro espacio
base de datos antes de intentar eliminar este
de tabla.
espacio de tabla.
Explicación: Una tabla del espacio de tabla
sqlcode: -283
especificado no contiene todas las partes de ese
espacio de tabla. Si se especifica más de un sqlstate: 55026
espacio de tabla, entonces una tabla de uno de
los espacios de tablas especificado no contiene
SQL0284N La tabla no se creó porque el
todas las partes de la lista. Tal vez la tabla base,
espacio de tabla
los índices o los datos largos estén en otro
“<nombre-espaciotabla>” a
espacio de tabla, por lo que si se descartan los
continuación de la cláusula
espacios de tabla, la tabla no se eliminará por
“<cláusula>” es un espacio de
completo. Ello dejaría la tabla en un estado no
tabla “<tipo-espaciotabla>”.
coherente y por consiguiente, el espacio de tabla
no se puede eliminar. Explicación: La sentencia CREATE TABLE o
DECLARE GLOBAL TEMPORARY TABLE ha
Respuesta del Usuario: Asegúrese de que todos
especificado un espacio de tabla denominado
los objetos del espacio de tabla
“<nombre-espaciotabla>” a continuación de la
″<nombre-espaciotabla>″ contengan todas las
cláusula “<cláusula>” que no es un tipo de
partes en ese espacio de tabla antes de intentar
espacio de tabla válido para esta cláusula.
eliminarla o incluya esos espacios de tablas que
contienen las partes de la lista que se van a Esto puede producirse en las siguientes
eliminar. situaciones:
Puede que ello implique eliminar la tabla v para tablas regulares, se ha especificado
″<nombre-tabla>″ antes de eliminar el espacio de “<nombre-espaciotabla>” en la cláusula IN y
tabla. el espacio de tabla no es un espacio de tabla
REGULAR.
sqlcode: -282
v para tablas temporales declaradas, se ha
sqlstate: 55024 especificado “<nombre-espaciotabla>” en la
cláusula IN y el espacio de tabla no es un
espacio de tabla USER TEMPORARY.
SQL0283N El espacio de tabla temporal del
sistema ″<nombre-espaciotabla>″ v Se ha especificado “<nombre-espaciotabla>” en
no se puede eliminar porque es el la cláusula LONG IN y el espacio de tabla no
único espacio de tabla temporal es LONG, gestionado por el espacio de tabla
del sistema con un tamaño de de la base de datos.
página “<tamaño-página>” en la v Se ha especificado “<nombre-espaciotabla>” en
base de datos. la cláusula INDEX IN y el espacio de tabla no
es REGULAR, gestionado por el espacio de
Explicación: Una base de datos ha de contener
tabla de la base de datos, .
como mínimo un espacio de tabla temporal del
sistema con el mismo tamaño de página que el Respuesta del Usuario: Corrija la sentencia

50 Consulta de mensajes, Volumen 2


CREATE TABLE para especificar un espacio de El tamaño de página suficiente de una tabla se
tabla con el tipo correcto para la cláusula determina por el número total de bytes de la fila
“<cláusula>”. o el número de columnas.
sqlcode: -284 Respuesta del Usuario: Asegúrese de la
existencia de un espacio de tabla de un tipo
sqlstate: 42838
correcto (REGULAR o USER TEMPORARY) con
un tamaño de página de al menos
SQL0285N Los índices y/o columnas largas “<tamañopágina>” y que el ID de autorización
de la tabla ″<nombre-tabla>″ no “<nombre-usario>” tenga el privilegio USE en
se pueden asignar a espacios de este espacio de tabla.
tablas separados porque el espacio
sqlcode: -286
de tabla principal
″<nombre-espaciotabla>″ es un sqlstate: 42727
espacio de tabla gestionado por el
sistema.
SQL0287N Para los objetos de usuario no se
Explicación: Si el espacio de tabla primario está puede utilizar SYSCATSPACE.
gestionado por el sistema, todas las partes de la
Explicación: La sentencia CREATE TABLE o
tabla deben estar contenidas en dicho espacio de
GRANT USE OF TABLESPACE especifica un
tabla. Un tabla puede tener partes en espacios de
espacio de tabla llamado SYSCATSPACE que está
tablas separados solo si el espacio de tabla
reservado para tablas de catálogos.
primario, el espacio de tabla de índice y el
espacio de tabla larga son espacios de tablas Respuesta del Usuario: Especifique otro
gestionados por la base de datos. nombre de espacio de tabla.
Respuesta del Usuario: Especifique un espacio sqlcode: -287
de tabla gestionado por la base de datos para el
espacio de tabla primario o no asigne partes de sqlstate: 42838
la tabla a otro espacio de tabla.
sqlcode: -285 SQL0288N Los espacios de tablas largos no
se pueden utilizar mediante
sqlstate: 42839 MANAGED BY SYSTEM.
Explicación: El espacio de tabla que se define es
SQL0286N No se ha podido encontrar un para utilizarlo con objetos grandes y series
espacio de tabla por omisión con largas. Estos elementos solo se pueden almacenar
un tamaño de página de como en espacios de tablas definidas en el espacio
mínimo “<tamaño-página>” que gestionado por la base de datos. Por lo tanto no
el ID de autorización se puede definir un espacio de tabla larga para
“<nombre-usuario>” está que utilice espacio gestionado por el sistema.
autorizado a utilizar.
Respuesta del Usuario: Elimine la palabra clave
Explicación: La sentencia CREATE TABLE o LONG o cámbiela por MANAGED BY
DECLARE GLOBAL TEMPORARY TABLE no DATABASE en la sentencia CREATE
especificó un espacio de tabla y no se encontró TABLESPACE.
un espacio de tabla de un tipo correcto (USER
TEMPORARY para tablas temporales declaradas) sqlcode: -288
con el espacio de página suficiente (como sqlstate: 42613
mínimo “<tamañopágina>”), sobre el que el ID
de autorización “<nombre-usuario>” tenga el
privilegio USE.

Capítulo 2. Mensajes SQL 51


4. espere a que el proceso de reequilibrio avance
SQL0289N No es posible asignar nuevas
más.
páginas en el espacio de tabla
″<nombre-espaciotabla>″. 5. realice otra vez la restauración redirigiéndola
a contenedores más grandes.
Explicación: Se ha producido una de las
6. realice otra vez la restauración redirigiéndola
siguientes condiciones:
a contenedores más grandes.
1. Uno de los contenedores asignados a esta
7. vuelva a efectuar la recuperación en avance
tabla SMS ha alcanzado el tamaño de archivo
permitiendo la adición de contenedores, o
máximo. Probablemente ésta sea la causa del
bien redirigiendo la restauración a
error.
contenedores más grandes.
2. Todos los contenedores asignados a este
espacio de tabla DMS están llenos. sqlcode: -289
Probablemente ésta sea la causa del error.
3. La tabla de objetos de este espacio de tabla sqlstate: 57011
DMS está llena.
4. Hay un proceso de reequilibrio, pero no ha SQL0290N No se permite el acceso de espacio
progresado lo suficiente como para permitir de tabla.
utilizar el espacio recientemente añadido.
Explicación: Un proceso ha intentado acceder a
5. Se está redireccionando una restauración a un espacio de tabla que se encuentra en un
contenedores que son demasiado pequeños. estado no válido.
6. Tras una restauración redireccionada se está v Si el espacio de tabla se encuentra en un
llevando a cabo una recuperación en avance y estado de inmovilidad, sólo los procesos que
todos los contenedores asignados a este también mantienen el espacio de tabla en un
espacio de tabla están llenos. estado de inmovilidad pueden acceder al
7. Se está realizando una recuperación en espacio de tabla.
avance sin añadir contenedores y todos los v Si el espacio de tabla se encuentra en cualquier
contenedores asignados a este espacio de otro estado, sólo el proceso que realiza la
tabla están llenos. acción especificada puede acceder al espacio
Si desea ver los detalles, consulte la anotación de tabla.
cronológica de errores del sistema y/o la v Un espacio de tabla temporal de usuario o de
anotación cronológica de errores del gestor de sistema que contiene tablas temporales
bases de datos. declaradas o del sistema activas no se puede
eliminar.
Respuesta del Usuario: Realice la acción
correspondiente según la causa del error: v La API SET CONTAINER no se puede utilizar
para definir la lista de contenedores a no ser
1. vaya a un DMS TABLESPACE o vuelva a que el espacio de tabla se encuentre en un
crear SMS TABLESPACE con más directorios estado ″pendiente de restauración″.
(PATH) de modo que: (número de directorios)
>= (máx tamañotabla / máxtamañoarchivo). Si desea ver los detalles, consulte la anotación
Tenga en cuenta que el tamaño máximo de cronológica de errores del sistema y/o la
archivo depende del sistema operativo. anotación cronológica de errores del gestor de
2. añada nuevos contenedores al espacio de bases de datos.
tabla DMS y repita la operación una vez que Respuesta del Usuario: Acciones posibles:
el proceso de reequilibrio haya dejado
v Si el espacio de tabla se encuentra en un
disponibles nuevas páginas.
estado de inmovilidad, intente obtener una
3. descarte de este espacio de tabla DMS las inmovilidad compartida o bien un estado de
tablas que no sean necesarias. actualización de inmovilidad en el espacio de

52 Consulta de mensajes, Volumen 2


tabla. O bien intente una restauración de Respuesta del Usuario: Compruebe que el
inmovilidad en el espacio de tabla. directorio que debe contener el archivo está
v Si el espacio de tabla se encuentra en cualquier accesible ([Link]., montado) y que el propietario de
otro estado, espere a que el espacio de tabla la instancia de la base de datos puede escribir en
haya vuelto a su estado normal antes de él.
intentar acceder al espacio de tabla. sqlcode: -292
Consulte la Guía de administración para obtener sqlstate: 57047
información adicional sobre los estados de los
espacios de tablas.
SQL0293N Error al acceder el contenedor de
sqlcode: -290 espacio de tabla.
Explicación: Este error se debe a una de las
sqlstate: 55039 siguientes condiciones:
v No se ha encontrado un contenedor
SQL0291N En el espacio de tabla no se (directorio, archivo o dispositivo).
permite la transición de estado. v Un contenedor no está identificado como
Explicación: Se ha intentado modificar el estado propiedad del espacio de tabla adecuado.
del espacio de tabla. El nuevo estado no es v El identificador del contenedor está dañado.
compatible con el estado actual del espacio de
Este error se puede generar durante el arranque
tabla o se ha intentado desactivar un estado
de la base de datos y durante el proceso de la
específico y el espacio de tabla no estaba en
sentencia ALTER TABLESPACE SQL.
dicho estado.
Si desea ver los detalles, consulte la anotación Si desea ver los detalles, consulte la anotación
cronológica de errores del sistema y/o la cronológica de errores del sistema y/o la
anotación cronológica de errores del gestor de anotación cronológica de errores del gestor de
bases de datos. bases de datos.
Respuesta del Usuario: Los estados del espacio Respuesta del Usuario: Intente realizar las
de tabla cambian cuando se efectúa una copia de siguientes acciones:
seguridad o cuando la carga o la recuperación en 1. Compruebe que el directorio, el archivo o el
avance finaliza, etc., en función del estado actual dispositivo existe y que el sistema de
de los espacios de tabla. Consulte la guía de archivos está montado (si está en otro sistema
administración del sistema para obtener de archivos). El propietario de la instancia de
información adicional sobre los estados de los bases de datos debe tener acceso de lectura y
espacios de tablas. escritura sobre el contenedor.
sqlcode: -291 2. Si hace poco hizo una copia de seguridad,
intente restaurar el espacio de tabla o las
sqlstate: 55039
bases de datos. Si no puede restaurarlas por
culpa del contenedor dañado y el contenedor
SQL0292N No se ha podido crear un archivo no es del tipo DEVICE, intente primero
de bases de datos interno. eliminar manualmente el contenedor.

Explicación: No se ha podido crear un archivo Si el error lo ha generado el proceso de una


de bases de datos interno. Si desea ver los sentencia ALTER TABLESPACE SQL con la
detalles, consulte la anotación cronológica de opción SWITCH ONLINE, vuelva a emitir la
errores del sistema y/o la anotación cronológica sentencia después de corregir el problema tal
de errores del gestor de bases de datos. como se describe más arriba.

Capítulo 2. Mensajes SQL 53


Si el error sigue produciéndose, póngase en identificación. Sin embargo, es muy importante
contacto con el representante de servicio de IBM. que la misma base de datos u otra base de
datos verifique que el contenedor no se está
sqlcode: -293 usando cuando se elimine la identificación. Si
al eliminar la identificación el contenedor se
sqlstate: 57048 está usando, la(s) base(s) de datos implicada(s)
se corromperá.

SQL0294N El contenedor ya se está Si desea ver los detalles, consulte la anotación


utilizando. cronológica de errores del sistema y/o la
anotación cronológica de errores del gestor de
Explicación: Los contenedores para el espacio bases de datos.
de tabla no puede compartirse. Las causas
posibles de este error pueden ser las siguientes: Respuesta del Usuario: Asegúrese de que los
contenedores sean exclusivos.
v Una sentencia CREATE TABLESPACE o
ALTER TABLESPACE incluía un contenedor v Para la sentencia CREATE o ALTER
que ya se estaba utilizando para otro espacio TABLESPACE, especifique un contenedor
de tabla. distinto para el espacio de tabla.
v Una sentencia CREATE TABLESPACE o v Para la sentencia CREATE o ALTER
ALTER TABLESPACE incluía un contenedor TABLESPACE que incluye un contenedor de
de un espacio de tabla que se había descartado un espacio de tabla descartado, vuelva a
pero la sentencia de descarte no se ha intentarlo después de que se haya confirmado
confirmado. la sentencia de descarte, o especifique un
contenedor diferente.
v Una sentencia ALTER NODEGROUP utilizada
para añadir un nodo ha empleado los v Para la sentencia ALTER NODEGROUP,
contenedores de un nodo LIKE que se vuelva a emitir la sentencia utilizando la
encuentra en el mismo nodo físico. Es posible, cláusula WITHOUT TABLESPACES, y luego,
por tanto, que estos contenedores ya se con la sentencia ALTER TABLESPACE, cree
estuvieran utilizando para otro proceso. contenedores exclusivos para el nuevo nodo.
v Una sentencia CREATE TABLESPACE o v Para aquellas sentencias CREATE o ALTER
ALTER TABLESPACE está tratando de utilizar TABLESPACE donde el entorno incluya más
el mismo contenedor en más de un nodo de un nodo lógico en un nodo físico, asegúrese
lógico de un solo nodo físico. Los mismos de que para esos nodos lógicos no se han
contenedores no pueden utilizarse para más de especificado los mismos contenedores.
un nodo en el mismo nodo físico. v Para un mandato ADD NODE o una API,
v Un mandato ADD NODE o una API ha vuelva a emitir la sentencia utilizando la
utilizado los contenedores procedentes de cláusula WITHOUT TABLESPACES, y luego
espacios de tablas temporales del sistema de utilice la sentencia ALTER TABLESPACE para
un nodo LIKE que se halla en el mismo nodo crear contenedores exclusivos en el nuevo
físico. Es posible, por tanto, que estos nodo para los espacios de tablas temporales
contenedores ya se estuvieran utilizando para del sistema.
otro proceso. v Si está intentando utilizar un contenedor DMS
v Una sentencia CREATE TABLESPACE o que pertenecía a una base de datos que ya no
ALTER TABLESPACE incluía un contenedor existe pero que no se descartó de forma
DMS de otra base de datos que ya no existe correcta, entonces se puede usar el programa
pero que no se descartó de forma correcta. El de utilidad db2untag para eliminar el
contenedor ya no se usa pero está identificado identificador del contenedor de DB2. Al
como si estuviera en uso. Por lo tanto, DB2 no eliminar este identificador, DB2 considera que
permitirá su uso hasta que no se elimine esa

54 Consulta de mensajes, Volumen 2


el contenedor está libre y se puede utilizar en puede crear ninguno más.
una sentencia CREATE TABLESPACE o
Si desea ver los detalles, consulte la anotación
ALTER TABLESPACE.
cronológica de errores del sistema y/o la
AVISO: Tenga mucho cuidado al usar anotación cronológica de errores del gestor de
db2untag. Si emite un mandato db2untag en bases de datos.
un contenedor que una base de datos todavía
está usando, tanto la base de datos que estaba Respuesta del Usuario: Suprima los espacios de
usando el contenedor como la base de datos tablas que ya no necesite. Combine espacios de
que ahora está utilizando el contenedor se tablas pequeños moviendo todos los datos a uno
corromperán. de ellos y suprimiendo el otro.

sqlcode: -294 sqlcode: -296


sqlstate: 54035
sqlstate: 42730

SQL0297N El nombre de la vía de acceso del


SQL0295N La longitud combinada de todos contenedor es demasiado largo.
los nombres de contenedores para
el espacio de tabla es demasiado Explicación: La vía de acceso completa que
larga. especifica el nombre del contenedor supera la
longitud máxima permitida. Si se especificó el
Explicación: El espacio total necesario para contenedor como una vía de acceso relativa al
almacenar la lista de contenedores supera el directorio de la base de datos, la concatenación
espacio permitido para este espacio de tabla en el de estos dos valores no debe superar la longitud
archivo de espacios de tabla. máxima.
Si desea ver los detalles, consulte la anotación Si desea ver los detalles, consulte la anotación
cronológica de errores del sistema y/o la cronológica de errores del sistema y/o la
anotación cronológica de errores del gestor de anotación cronológica de errores del gestor de
bases de datos. bases de datos.
Respuesta del Usuario: Intente realizar una de Respuesta del Usuario: Reduzca la longitud de
las siguientes acciones: la vía de acceso.
v Utilice enlaces simbólicos, sistemas de archivos
sqlcode: -297
montados, etc. para reducir los nombres de los
nuevos contenedores. sqlstate: 54036
v Haga una copia de seguridad y utilice el
programa de utilidad de administración de SQL0298N Vía de acceso del contenedor
bases de datos para reducir la cantidad y/o errónea.
longitudes de nombre de los contenedores.
Restaure el espacio de tabla en los nuevos Explicación: La vía de acceso del contenedor
contenedores. vulnera uno de los siguientes requisitos:
sqlcode: -295 v Las vías de acceso de los contenedores deben
ser absolutas y completamente calificadas o
bien vías de acceso relativas válidas. Éstas
sqlstate: 54034
últimas se consideran relativas con respecto al
directorio de bases de datos.
SQL0296N Se ha sobrepasado el límite del v Para operaciones EXTEND o RESIZE, debe
espacio de tabla. existir la vía de acceso del contenedor
Explicación: Esta base de datos ya contiene el especificado.
número máximo de espacios de tablas. No se

Capítulo 2. Mensajes SQL 55


v La vía de acceso debe tener acceso de el tipo de contenedor (FILE o DEVICE) que se
lectura/escritura al ID de instancia especificó al crear el contenedor.
(comprobación de los permisos de archivo en
Este mensaje también se devuelve si se produce
sistemas basados en UNIX).
cualquier otro error inesperado que impida a
v Los contenedores deben ser del tipo DB2 acceder al contenedor.
especificado en el mandato (directorio, archivo
o dispositivo). Si desea ver los detalles, consulte la anotación
v Los contenedores (directorios) de los espacios cronológica de errores del sistema y/o la
de tablas gestionados por el sistema deben anotación cronológica de errores del gestor de
estar vacíos cuando se designan como bases de datos.
contenedores y no deben estar anidados bajo
otros contenedores. Respuesta del Usuario: Especifique otra
ubicación de contenedor o cambie el contenedor
v Los contenedores de una base de datos no para que DB2 pueda aceptarlo (cambie el
deben estar ubicados bajo el directorio de otra permiso de archivo, por ejemplo) y vuelva a
base de datos ni deben estar bajo ningún intentarlo.
directorio que tenga aspecto de ser de otra
base de datos. Esto deja fuera de la norma sqlcode: -298
cualquier directorio del tipo SQLnnnnn, donde
sqlstate: 428B2
’n’ sea un dígito.
v El contenedor debe respetar el límite de
tamaño de archivo del sistema operativo. SQL0299N El contenedor ya se ha asignado al
espacio de tabla.
v Los contenedores (archivos) de espacios de
tablas gestionados por bases de datos Explicación: El contenedor que intenta añadir
descartadas sólo se pueden volver a utilizar ya se ha asignado al espacio de tabla.
como contenedores (directorios) para espacios
Si desea ver los detalles, consulte la anotación
de tablas gestionados por el sistema, después
cronológica de errores del sistema y/o la
de que todos los agentes finalicen y viceversa.
anotación cronológica de errores del gestor de
v Durante una restauración redirigida, se ha bases de datos.
especificado un contenedor SMS para un
espacio de tabla DMS o se ha especificado un Respuesta del Usuario: Elija otro contenedor y
contenedor DMS para un espacio de tabla vuelva a intentarlo.
SMS. sqlcode: -299
v El tipo especificado de contenedor para una
operación EXTEND o RESIZE no coincide con sqlstate: 42731

SQL0300 - SQL0399
valor SQLTYPE incorrecto en un SQLDA en una
SQL0301N El valor de una variable del
sentencia EXECUTE o OPEN.
sistema principal de las sentencias
EXECUTE u OPEN no puede No se puede procesar la sentencia.
usarse debido a su tipo de datos.
Respuesta del Usuario: Compruebe que los
Explicación: No se puede utilizar una variable tipos de datos de todas las variables del sistema
del sistema principal tal como está especificada principal de la sentencia son compatibles con la
en la sentencia porque su tipo de datos es forma en que se utilizan.
incompatible en el contexto en que se utiliza.
sqlcode: -301
Este error puede ser el resultado de especificar
una variable del sistema principal incorrecta o un sqlstate: 07006

56 Consulta de mensajes, Volumen 2


determinación de problemas para saber qué
SQL0302N El valor de la variable del sistema
procedimientos hay que seguir a fin de
principal de las sentencias
identificar la fuente de datos anómala). Examine
EXECUTE u OPEN es demasiado
el dialecto de SQL correspondiente a esa fuente
grande para la utilización que le
de datos para determinar cuál es la restricción
corresponde.
específica que se ha violado y ajuste, si procede,
Explicación: Se ha encontrado que el valor de la sentencia anómala.
una variable del sistema principal de entrada es
sqlcode: -302
demasiado largo para utilizarlo en la sentencia
SELECT, VALUES, o con una sentencia sqlstate: 22001, 22003
preparada. Se ha producido una de las siguientes
situaciones:
SQL0303N No puede asignarse ningún valor
v La variable del sistema principal a una variable del sistema
correspondiente o el marcador de parámetro principal en la sentencia SELECT,
que se ha utilizado en la sentencia de SQL está VALUES o FETCH porque los
definido como una serie, pero la variable del tipos de datos no son compatibles.
sistema principal de entrada contiene una serie
demasiado larga. Explicación: Una sentencia SELECT o VALUES
v La variable del sistema principal selecciona una variable del sistema principal,
correspondiente o el marcador de parámetro pero el tipo de datos de la variable no es
que se ha utilizado en la sentencia de SQL está compatible con el tipo de datos del elemento
definido como numérico, pero la variable del correspondiente de la lista SELECT o de la lista
sistema principal de entrada contiene un valor VALUES. Los dos han de ser numéricos, de tipo
numérico demasiado grande. carácter o gráficos. Por ejemplo, si el tipo de
datos de la columna es fecha y hora, el tipo de
v Falta el carácter de terminación NUL en la datos de la variable debe ser un carácter con una
variable del sistema principal de la serie de longitud mínima adecuada.
caracteres de terminación NUL del lenguaje C.
v Usuarios del sistema federado: en una sesión No se puede procesar la sentencia.
de paso a través, podría haberse violado una Respuesta del Usuario: Compruebe que las
restricción específica de la fuente de datos. definiciones de tabla sean las actuales y que la
Este error es el resultado de especificar una variable del sistema principal tenga el tipo de
variable del sistema principal incorrecta o un datos correcto.
valor de SQLLEN incorrecto en el SQLDA de sqlcode: -303
una sentencia EXECUTE u OPEN.
sqlstate: 42806
No se puede procesar la sentencia.
Respuesta del Usuario: Asegúrese de que el SQL0304N No puede asignarse ningún valor
valor de entrada de la variable del sistema a una variable del sistema
principal es de la longitud y del tipo correctos. Si principal porque el valor no está
las variables del sistema principal de entrada dentro del rango permitido del
suministran valores a marcadores de parámetros, tipo de datos de la variable del
haga corresponder los valores con el tipo de sistema principal.
datos implícito y la longitud del marcador de Explicación: La sentencia FETCH, VALUES o
parámetros. SELECT de una lista de variables del sistema
Usuarios del sistema federado: en una sesión de principal ha fallado porque la variable del
paso a través, determine cuál es la fuente de sistema principal no es lo suficientemente grande
datos causante del error (consulte la guía de como para mantener el valor que se ha
recuperado.

Capítulo 2. Mensajes SQL 57


No se puede procesar la sentencia. No se ha cláusula DECLARE SECTION.
recuperado ningún dato.
No se puede procesar la sentencia.
Respuesta del Usuario: Compruebe que las
Respuesta del Usuario: Asegúrese de que la
definiciones de tabla sean las actuales y que la
variable del sistema principal está declarada y su
variable del sistema principal tenga el tipo de
nombre correctamente escrito.
datos correcto. Para ver los rangos de tipos de
datos SQL, consulte el manual Consulta de SQL.
SQL0307N La variable del sistema principal
Usuarios del sistema federado: en el caso de los
“<nombre>” ya está definida.
rangos de tipos de datos procedentes de una
fuente de datos, consulte la documentación Explicación: La variable del sistema principal
correspondiente a esta fuente de datos. “<nombre>” ya se ha declarado en DECLARE
SECTION.
sqlcode: -304
Se ignora la definición. Se utiliza la definición
sqlstate: 22001, 22003
anterior.
Respuesta del Usuario: Asegúrese de que el
SQL0305N El valor NULL no se puede
nombre de la variable del sistema principal está
asignar a una variable del sistema
correctamente escrito y de que está definido solo
principal en la sentencia SELECT
una vez en cada programa.
o FETCH porque no se ha
especificado ninguna variable
indicadora. SQL0308N Se ha llegado al límite del
número de variables del sistema
Explicación: Una operación FETCH o bien una
principal.
operación incluida SELECT o VALUES ha dado
como resultado la recuperación de un valor Explicación: El número máximo de variables
NULL que se va a insertar en una variable del del sistema principal depende de cuántas quepan
sistema principal para la cual no se ha en la columna HOST_VARS de SYSPLAN. Se ha
proporcionado ninguna variable indicadora. Si alcanzado dicho límite.
una columna puede devolver un valor NULL,
hay que suministrar una variable de indicador. Se ignoran las restantes declaraciones de
variables.
No se puede procesar la sentencia. No se ha
recuperado ningún dato. Respuesta del Usuario: Simplifique el
programa, divida el programa en programas
Respuesta del Usuario: Examine la definición menores separados o ambos.
de la tabla de objetos FETCH o SELECT o bien
los elementos de la lista VALUES. Corrija el
programa de modo que proporcione variables SQL0309N El valor de una variable del
indicadoras para todas las variables del sistema sistema principal en la sentencia
principal donde se puedan recuperar los valores OPEN es NULL, pero la
NULL procedentes de esas columnas. utilización que le corresponde no
puede ser NULL.
sqlcode: -305
Explicación: Se ha encontrado un valor NULL
sqlstate: 22002 de una variable del sistema principal de entrada,
pero su correspondiente utilización en la
sentencia SELECT, VALUES o en la sentencia
SQL0306N La variable del sistema principal
preparada no ha especificado una variable
“<nombre>” no está definida.
indicadora.
Explicación: La variable del sistema principal
No se puede procesar la sentencia.
“<nombre>” no está declarada en ninguna

58 Consulta de mensajes, Volumen 2


Respuesta del Usuario: Asegúrese de que
SQL0312N La variable del sistema principal
realmente necesita una cláusula USING. Si no,
“<nombre-sistema-principal>” se
asegúrese de que se especifica una variable de
utiliza en una sentencia de SQL
indicador únicamente si es necesario.
dinámica, una definición de vista
sqlcode: -309 o una definición de activador.

sqlstate: 07002 Explicación: La variable del sistema principal


“<nombre-sistema-principal>” aparece en la
sentencia de SQL, pero no se permiten variables
SQL0310N La sentencia de SQL contiene del sistema principal en las sentencias de SQL
demasiadas variables del sistema dinámicas, en la sentencia SELECT de una
principal. definición de vista o en la acción activada de una
Explicación: En la sentencia se ha superado el definición de activador.
número máximo permitido de variables del No se puede procesar la sentencia.
sistema principal.
Respuesta del Usuario: Utilice marcadores de
No se puede procesar la sentencia. parámetros (?) en lugar de variables del sistema
Respuesta del Usuario: Asegúrese de que la principal para sentencias de SQL dinámicas. No
sentencia contenga menos variables del sistema utilice variables del sistema principal ni
principal o que sea menos compleja. marcadores de parámetros en definiciones de
vista o de activador.

SQL0311N La longitud del número de sqlcode: -312


variable ″<número-var>″ del sqlstate: 42618
sistema principal de la serie es
negativa o mayor que el valor
máximo. SQL0313N El número de variables del
sistema principal de las sentencias
Explicación: Cuando se evaluó, la especificación EXECUTE u OPEN no es igual al
de longitud de la variable del sistema principal número de valores de entrada
de la serie, cuya entrada en el SQLDA está necesarios.
indicada mediante <número-var> (basado en 1),
era negativo o mayor que el número máximo Explicación: El número de variables del sistema
definido para esa variable del sistema principal. principal especificado en la sentencia EXECUTE
o OPEN no es el mismo que el número de
No se puede procesar la sentencia. variables del sistema principal o los marcadores
Respuesta del Usuario: Corrija el programa de parámetros (?) que aparecen en la sentencia
para asegurarse de que las longitudes de todas de SQL.
las variables del sistema principal de la serie no No se puede procesar la sentencia.
son negativas ni son mayores que la longitud
máxima permitida. Respuesta del Usuario: Corrija el programa de
aplicación de modo que el número de variables
sqlcode: -311 del sistema principal especificadas en la
sqlstate: 22501 sentencia EXECUTE o OPEN y el número de
variables del sistema principal o de marcadores
de parámetros de la sentencia de SQL coincidan.
sqlcode: -313
sqlstate: 07001, 07004

Capítulo 2. Mensajes SQL 59


END DECLARE SECTION para finalizar un
SQL0314N La variable de sistema principal
DECLARE SECTION.
“<nombre>” no se ha declarado
correctamente.
SQL0318N Se ha encontrado END DECLARE
Explicación: La variable del sistema principal
SECTION sin BEGIN DECLARE
“<nombre>” no está correctamente declarada por
SECTION previa.
una de las siguientes razones:
v El tipo especificado no es uno de los tipos a Explicación: Se ha encontrado una sentencia
los que se da soporte. END DECLARE SECTION, pero antes no había
ninguna BEGIN DECLARE SECTION.
v La especificación de longitud es 0, negativa o
demasiado grande. No se puede procesar la sentencia.
v Se utiliza un inicializador. Respuesta del Usuario: Entre un BEGIN
v Se ha especificado una sintaxis incorrecta. DECLARE SECTION antes de END DECLARE
SECTION.
La variable sigue sin estar definida.
Respuesta del Usuario: Asegúrese de que
SQL0324N El “<uso>” de la variable
especifica correctamente sólo las declaraciones a
“<nombre>” es de tipo erróneo.
las que el gestor de bases de datos da soporte.
Explicación: La variable INDICATOR
“<nombre>” no es un entero pequeño o la
SQL0315N Se ha declarado de forma
variable STATEMENT “<nombre>” no es de tipo
incorrecta la variable del sistema
de datos de carácter.
principal.
No se puede procesar la sentencia.
Explicación: La variable del sistema principal
no está correctamente declarada por una de las Respuesta del Usuario: Asegúrese de que la
razones siguientes: variable es del tipo correcto y de que está
v El tipo especificado no es uno de los tipos a correctamente especificada.
los que se da soporte.
v La especificación de longitud es 0, negativa o SQL0332N No hay ninguna conversión
demasiado grande. disponible de la página de
v Se ha especificado una sintaxis incorrecta. códigos fuente “<página
códigos>” a la página de códigos
La variable sigue sin estar definida. destino “<página códigos>”.
Respuesta del Usuario: Asegúrese de que Código de razón
especifica correctamente sólo las declaraciones a “<código-razón>”.
las que el gestor de bases de datos da soporte. Explicación: No se da soporte a ningún tipo de
conversión de datos de la página de códigos
SQL0317N No se ha encontrado ninguna fuente a la página de códigos destino. Se puede
END DECLARE SECTION producir este error bajo las siguientes
después de una BEGIN DECLARE condiciones:
SECTION. v Se ha producido un error al ejecutar una
sentencia de SQL. El gestor de bases de datos
Explicación: Se ha alcanzado el final de la
no puede procesar los datos.
entrada durante el proceso de un DECLARE
SECTION. v Se ha producido un error al intentar importar
o exportar un archivo WSF o IXF. Fallará la
Se termina la precompilación. importación o la exportación.
Respuesta del Usuario: Añada una sentencia

60 Consulta de mensajes, Volumen 2


v Usuarios del sistema federado: la fuente de v Es posible ofrecer soporte a la conversión de
datos no da soporte a la conversión de página datos de algunas combinaciones de páginas de
de códigos especificada. códigos a través de un programa de utilidad
v Usuarios de DB2 : ″página de códigos fuente″ de conversión de caracteres facilitado por el
y ″página de códigos destino″ pueden referirse sistema operativo, según el grupo de idiomas
a un CCSID en el sistema principal o el de la página de códigos fuente o destino.
sistema AS/400. Consulte la documentación del sistema
operativo para obtener una lista de
Los códigos de razón son los siguientes: conversiones a las que se da soporte y
1 el gestor de bases de datos no admite la asegúrese de que las correctas están instaladas
combinación de las páginas de códigos y accesibles para el gestor de bases de datos y
de origen y de destino. para la aplicación cliente, tal como se indica en
el código de razón que se ha devuelto. Para
2 el gestor de bases de datos, o bien el obtener una lista de los programas de utilidad
programa de utilidad de conversión de de conversión del sistema operativo utilizados,
caracteres del sistema operativo, no da consulte la Guía rápida de iniciación o DB2
soporte a la combinación de páginas de Connect Guía rápida de iniciación.
códigos fuente y destino en el nodo de v Cambie la página de códigos no soportada por
cliente. una de las parejas documentadas.
3 el gestor de bases de datos, o bien el Los usuarios de AS/400 han de tener presente
programa de utilidad de conversión de que no se da soporte a AS/400 CCSID 65535. Los
caracteres del sistema operativo, no da datos de AS/400 codificados mediante CCSID
soporte a la combinación de páginas de 65535 se han de convertir a un CCSID soportado
códigos fuente y destino en el nodo de para poder a los mismos utilizando DB2
servidor. Connect.
Respuesta del Usuario: Las soluciones posibles
son: Usuarios del sistema federado: Para conocer el
v Verifique si el gestor de bases de datos da soporte de páginas de códigos de fuente de
soporte a la conversión de datos entre la datos, consulte la publicación Installation and
página de códigos fuente y destino. Para Configuration Supplement.
obtener soporte de la página de códigos del
gestor de bases de datos, consulte la sqlcode: -332
publicación Guía rápida de iniciación. Si se
utiliza DB2 Connect, consulte la publicación sqlstate: 57017
DB2 Connect Guía rápida de iniciación.
v Es posible ofrecer soporte a la conversión de SQL0334N Se ha producido un
datos de algunas combinaciones de páginas de desbordamiento mientras se
códigos a través de las opciones de instalación convertía de una página de
del gestor de bases de datos, según el grupo códigos ″<fuente>″ a la página de
de idiomas de la página de códigos fuente o códigos ″<destino>″. El tamaño
destino. Asegúrese de haber instalado las que máximo del área de destino era
sean apropiadas y que el gestor de bases de ″<long-máx>″. La longitud de la
datos y la aplicación cliente puedan acceder a serie fuente era ″<long-fuente>″ y
ellas, tal como lo indica el código de razón que la representación hexadecimal era
se ha devuelto. Para obtener una lista de las ″<serie>″.
opciones de instalación, consulte la publicación
Guía rápida de iniciación o la publicación DB2 Explicación: Durante la ejecución de la
Connect Guía rápida de iniciación. sentencia de SQL, la conversión de una página
de códigos ha dado como resultado una serie

Capítulo 2. Mensajes SQL 61


que es más larga que el tamaño de longitud v Una función a la que se hace referencia en una
máxima del objeto destino. cláusula ON de un enlace exterior completo
debe ser determinante y no ha de tener una
Respuesta del Usuario: Modifique de la
acción externa.
siguiente forma los datos para evitar la condición
de desbordamiento, según las circunstancias: v No puede utilizarse una operación no
referenciada (->).
v reduzca la longitud de la serie fuente o
aumente el tamaño del objeto destino (vea la v No se puede usar una función SQL o un
nota que se incluye a continuación), método SQL.
v altere la operación o No se puede procesar la sentencia.
v asegúrese de que la página de códigos de la Respuesta del Usuario: Corrija la cláusula ON
aplicación y de base de datos sean las mismas. para que haga referencia a las columnas
Así se evitan conversiones de página de adecuadas o bien suprima las subconsultas o
códigos en la mayoría de conexiones. selecciones completas escalares. Elimine
cualquier operación de no referencia, funciones
Nota: No se producirá la promoción automática SQL o métodos SQL de la cláusula ON.
de los tipos de datos de series de
caracteres o de gráficos como parte de la Si se utiliza el enlace exterior completo,
conversión de caracteres. Si la longitud de asegúrese de que todas las funciones de la
la serie resultante sobrepasa el límite cláusula ON sean determinantes y no tengan
máximo del tipo de datos de la serie ninguna acción externa.
fuente, significa que se ha producido un sqlcode: -338
desbordamiento. Para corregir esta
situación, modifique el tipo de datos de la sqlstate: 42972
serie fuente o bien utilice otro tipo de
datos de forma que se permita el SQL0340N La expresión de tabla común
incremento de la longitud de la serie “<nombre>” tiene el mismo
debido a la conversión. identificador que otra aparición
de una definición de expresión de
sqlcode: -334 tabla común dentro de la misma
sentencia.
sqlstate: 22524
Explicación: El nombre de expresión de tabla
común “<nombre>” se utiliza en la definición de
SQL0338N Una cláusula ON asociada con el más de una expresión de tabla común en la
operador JOIN no es válida. sentencia. El nombre que se emplea para
Explicación: Hay una cláusula ON asociada con describir una expresión de tabla común debe ser
un operador JOIN que no es válida por una de único dentro de la misma sentencia.
las razones siguientes. No se puede procesar la sentencia.
v La condición de unión no puede incluir
Respuesta del Usuario: Cambie el nombre de
ninguna subconsulta.
una de las expresiones de tabla común.
v Las referencias a las columnas en una cláusula
ON sólo deben hacer referencia a columnas de sqlcode: -340
tablas que se encuentren en el ámbito de la sqlstate: 42726
cláusula ON (incluidas en la misma cláusula
de la tabla unida como la cláusula ON).
v Las selecciones completas escalares no se
permiten en las expresiones de una cláusula
ON.

62 Consulta de mensajes, Volumen 2


SQL0341N Existe una referencia cíclica entre SQL0343N Los nombres de columna son
las expresiones de tablas comunes necesarios para la expresión de
“<nombre1>” y “<nombre2>”. tabla común repetitiva
“<nombre>”.
Explicación: La expresión de tabla común
“<nombre1>” hace referencia a “<nombre2>” en Explicación: La expresión de tabla común
una cláusula FROM dentro de su selección repetitiva “<nombre>” ha de incluir la
completa y “<nombre2>” hace referencia a especificación de los nombres de columna
“<nombre1>” en una cláusula FROM dentro de después del identificador de la expresión de
sus selecciones completas. No se permite este tabla común.
tipo de referencias cíclicas.
No se puede procesar la sentencia.
No se puede procesar la sentencia.
Respuesta del Usuario: Añada los nombres de
Respuesta del Usuario: Elimine la referencia columnas después del identificador de la
cíclica de una de las expresiones de tabla común. expresión de tabla común.
sqlcode: -341 sqlcode: -343
sqlstate: 42835 sqlstate: 42908

SQL0342N La expresión de tabla común SQL0344N La expresión de tabla común


“<nombre>” no se puede utilizar repetitiva “<nombre>” presenta
SELECT DISTINCT y debe discrepancia en los tipos de datos,
utilizar UNION ALL porque es longitudes o páginas de códigos
repetitiva. para la columna
“<nombre-columna>”.
Explicación: Hay dos explicaciones posibles:
v Una selección completa dentro de la expresión Explicación: La expresión de tabla común
de tabla común “<nombre>” no puede repetitiva “<nombre>” presenta una columna
empezar por SELECT DISTINCT porque la “<nombre-columna>” a la que se hace referencia
expresión de tabla común es repetitiva. en la selección completa iterativa de la expresión
de tabla común. El tipo de datos, la longitud y la
v Una selección completa dentro de la expresión
página de código se definen en función de la
de tabla común “<nombre>” ha especificado
selección completa de inicialización para esta
UNION en lugar de UNION ALL tal como se
columna. El resultado de la expresión para la
requería para las expresiones de tabla común
columna “<nombre-columna>” de la selección
repetitivas.
completa iterativa presenta un tipo de datos,
No se puede procesar la sentencia. longitud o página de códigos diferente que
puede dar como resultado un error al asignar el
Respuesta del Usuario: Elimine la palabra clave valor para la columna.
DISTINCT de la expresión de tabla común,
añada la palabra clave ALL después de UNION No se puede procesar la sentencia.
o elimine la referencia repetitiva dentro de la
Respuesta del Usuario: Corrija la columna que
expresión de tabla común.
se utiliza en las selecciones completas de la
sqlcode: -342 expresión de tabla común repetitiva de modo
que la columna de inicialización coincida con las
sqlstate: 42925 columnas iterativas.
sqlcode: -344
sqlstate: 42825

Capítulo 2. Mensajes SQL 63


v Una referencia repetitiva en la primera
SQL0345N La selección completa de la
selección completa antes del operador de
expresión de tabla común
conjunto UNION ALL. La primera selección
repetitiva “<nombre>” ha de ser
completa debe ser una inicialización y no
la unión (UNION) de dos o más
puede incluir una referencia repetitiva.
selecciones completas y no puede
incluir funciones de columna, la v Más de una referencia a la misma expresión de
cláusula GROUP BY, la cláusula tabla común en la misma cláusula FROM. No
HAVING o una unión explícita se permiten dichas referencias en la expresión
que incluya una cláusula ON. de tabla común repetitiva.
v Una referencia repetitiva en la cláusula FROM
Explicación: La expresión de tabla común
de una subconsulta. No se puede definir un
“<nombre>” incluye una referencia a si misma y
ciclo repetitivo mediante una subconsulta.
por consiguiente:
v debe ser la unión de dos o más selecciones No se puede procesar la sentencia.
completas Respuesta del Usuario: Cambie uno de los
v no puede incluir una cláusula GROUP BY siguientes elementos:
v no puede tener funciones de columna v la selección completa anterior al operador de
v no puede incluir una cláusula HAVING unión, de modo que no incluya una referencia
repetitiva
v y no puede incluir una unión explícita con una
cláusula ON. v la cláusula FROM que contiene más referencias
a la misma expresión de tabla común para que
No se puede procesar la sentencia. solo contenga una
Respuesta del Usuario: Modifique la expresión v la cláusula FROM de la subconsulta de modo
de tabla común de una de las siguientes formas: que no haga referencia a la expresión de tabla
v conviértala en la unión de dos o más común.
selecciones completas sqlcode: -346
v elimine las funciones de columna, la cláusula
GROUP BY, la cláusula HAVING o una unión sqlstate: 42836
explícita (JOIN) que incluya una cláusula ON.
v elimine la referencia repetitiva. SQL0347W La expresión de tabla común
sqlcode: -345 repetitiva “<nombre>” puede
contener un bucle infinito.
sqlstate: 42836 Explicación: Tal vez la expresión de tabla
común repetitiva llamada “<nombre>” no esté
SQL0346N Se produce una referencia no completa. Este aviso aparece porque no se
válida a una expresión de tabla encuentra una sintaxis específica como parte de
común “<nombre>” en la primera la porción repetitiva de la expresión de tabla
selección completa, a modo de común repetitiva. La sintaxis esperada incluye:
segunda aparición en la misma v el aumento en 1 de la columna INTEGER en la
cláusula FROM o en la cláusula lista de selección iterativa.
FROM de una subconsulta. v un predicado en la cláusula where de la parte
Explicación: La expresión de tabla común iterativa de la forma ″counter_col < constant″
“<nombre>” incluye una referencia no válida a si o ″counter_col < :hostvar″.
misma tal como se describe en una de las La ausencia de esta sintaxis en la expresión de
siguientes situaciones: tabla común repetitiva puede dar como resultado
un bucle infinito. De todas formas, los datos u

64 Consulta de mensajes, Volumen 2


otras características de la expresión de tabla
SQL0351N Se ha encontrado un SQLTYPE no
común repetitiva pueden hacer que la sentencia
soportado en la posición
se complete de forma satisfactoria.
“<número-posición>” del SQLDA
Respuesta del Usuario: Para evitar un bucle de salida (lista de selección).
infinito, incluya la sintaxis esperada tal como se
Explicación: El elemento de SQLDA en la
ha descrito.
posición “<número-posición>” es para un tipo de
sqlcode: +347 datos al cual el peticionario de la aplicación o el
servidor de la aplicación no da soporte. Si la
sqlstate: 01605 aplicación no utiliza directamente SQLDA,
“<número-posición>” podría representar la
SQL0350N LOB, DATALINK o una columna posición de un elemento de la lista de selección o
de tipo estructurado un parámetro de una sentencia CALL.
“<nombre-columna>” no se puede No se puede procesar la sentencia.
utilizar en un índice, en una
clave, en una restricción de Respuesta del Usuario: Cambie la sentencia de
unicidad, en una columna forma que se excluya el tipo de datos no
generada o en una tabla temporal soportado. En una sentencia de selección,
declarada. suprima los nombres de las columnas en la lista
de selección con el tipo de datos no soportado o
Explicación: Incluso en los casos en que no bien utilice una función de difusión en la
violara el tamaño máximo de un índice, una consulta para difundir la columna a un tipo de
clave o una restricción de unicidad, no se puede datos no soportado.
utilizar una columna de LOB, una columna de
DATALINK o una columna de tipo estructurado sqlcode: -351
en un índice, en una clave o en una restricción
sqlstate: 56084
de unicidad. Estos tipos de datos tampoco se
soportan como tipos de columna de una columna
generado o de una tabla temporal declarada. Esta SQL0352N Se ha encontrado un SQLTYPE no
restricción incluye el uso de una columna de tipo soportado en la posición
diferenciado basada en LOB o DATALINK. “<número-posición>” de la lista
de entrada (SQLDA).
No se puede procesar la sentencia.
Explicación: El elemento de SQLDA en la
Respuesta del Usuario: Elimine la columna de
posición “<número-posición>” es para un tipo de
tipo estructurado, LOB o DATALINK de la
datos al cual el peticionario de la aplicación o el
especificación del índice, la clave, la restricción
servidor de la aplicación no da soporte. Si la
de unicidad, la columna generada o la tabla
aplicación no utiliza directamente el SQLDA,
temporal declarada. Puede definirse un índice
“<número-posición>” podría representar la
definido en una columna de tipo estructurado
posición de una variable del sistema principal de
utilizando una extensión de índices.
entrada, un marcador de parámetro o un
sqlcode: -350 parámetro de una sentencia CALL.
sqlstate: 42962 No se puede procesar la sentencia.
Respuesta del Usuario: Cambie la sentencia de
forma que se excluya el tipo de datos no
soportado.
sqlcode: -352
sqlstate: 56084

Capítulo 2. Mensajes SQL 65


05 Se ha producido un error durante la
SQL0355N La columna ″<nombre-columna>″,
comunicación con DB2 Data Links
tal como está definida, es
Manager.
demasiado larga para poderse
registrar. 06 El tipo de instalación de DB2 Data Links
Manager no es compatible con el
Explicación: Se pueden crear tipos de datos de
registrado en la base de datos.
objetos grandes (LOB) (BLOB, CLOB y DBCLOB)
en tamaños de hasta 2 gigabytes (2147483647
bytes). Se permite la anotación cronológica de No se puede procesar la sentencia.
valores de datos sólo sobre objetos de tamaño Respuesta del Usuario: La acción depende del
menor o igual a 1 gigabyte (1073741823 bytes). código de razón como se indica a continuación.
Por lo tanto, no se puede anotar
cronológicamente objetos de tamaño superior a 1 01 Es posible que DB2 Data Links Manager
gigabyte. o un enlace de comunicaciones esté
inactivo. Espere un poco y vuélvalo a
Respuesta del Usuario: Indique explícitamente intentar o bien consulte al administrador
que no es necesario anotar cronológicamente los de DB2 Data Links Manager. Si el
datos, especificando la frase NOT LOGGED problema sigue produciéndose,
durante la creación de columna, o reduzca el desconecte la aplicación de la base de
tamaño máximo de la columna a 1 gigabyte o datos y vuélvalo a intentar tras conectar
menos. de nuevo.
sqlcode: -355 02 Registre el servidor de la base de datos,
sqlstate: 42993 instancia o base de datos con DB2 Data
Links Manager.

SQL0357N DB2 Data Links Manager 03 El acceso a DB2 Data Links Manager no
“<nombre>” no está disponible está permitido hasta que DB2 pueda
actualmente. Código de razón = asegurar que está en un estado
“<código-razón>”. coherente. Espere hasta que DB2 lo
realice de modo asíncrono. Es posible
Explicación: que DB2 no pueda hacerlo debido a las
condiciones en otros códigos de razón.
La sentencia necesita procesarse en DB2 Data
Por lo tanto, si el problema persiste,
Links Manager “<nombre>”. Actualmente, DB2
compruebe el archivo [Link] de la
Data Links Manager no está disponible tal como
instancia para averiguar la condición y
se indica en el código de razón.
corregirla. Para obtener más
01 DB2 Data Links Manager no está información, consulte el manual
disponible. Administration Guide para informarse
sobre la recuperación de errores para los
02 El servidor de la base de datos,
DB2 Data Links Manager.
instancia o base de datos desde la cual
se intentó la operación no está 04 Compruebe si DB2 Data Links Manager
registrado con DB2 Data Links Manager configurado en la base de datos está
apropiado. disponible en la red.
03 Actualmente, el acceso a DB2 Data 05 Compruebe si DB2 Data Links Manager
Links Manager no está permitido. y el enlace de comunicaciones están
activos. Si el problema sigue
04 DB2 Data Links Manager está registrado
produciéndose, desconecte la aplicación
con la base de datos, pero es un
de la base de datos y vuélvalo a intentar
servidor desconocido.
tras conectar de nuevo.

66 Consulta de mensajes, Volumen 2


06 Si se instaló DB2 Data Links Manager Manager no permite enlazar este
para DFS, se debe añadir como una archivo (no coincide ningún prefijo en
CELL a la base de datos. Si se instaló DLFM).
para sistemas de archivo nativos, se
29 DB2 Data Links Manager no autoriza al
debe añadir como un NODE. Vea la
usuario de DB2 a enlazar este archivo.
Consulta de mandatos para obtener
detalles sobre el mandato ADD 30 Otra aplicación ya está realizando un
DATALINKS MANAGER. enlace para el archivo.
31 La copia de archivo efectuada por DB2
sqlcode: -0357
Data Links Manager no ha finalizado
para que el archivo se desenlace. No se
sqlstate: 57050
puede procesar la sentencia.
Respuesta del Usuario: La acción se basa en el
SQL0358N No se puede acceder a un archivo
código de razón de la manera siguiente.
al que hace referencia un valor de
DATALINK. Código de razón = 21 Corregir el formato de ubicación de los
“<código-razón>”. datos. Si no se ha especificado el
nombre de sistema principal, DB2 puede
Explicación: No se ha podido asignar un valor
utilizar el nombre de sistema principal
de DATALINK. Los códigos de razón posibles
local únicamente como valor por
son los siguientes:
omisión, si el parámetro de
21 El formato de ubicación de los datos del configuración del gestor de bases de
valor de DATALINK no es válido. datos Datalinks está establecido en YES
(Sí).
22 El valor de DATALINK de DB2 Data
Links Manager no está registrado con la 22 Asegurarse de que se ha especificado
base de datos. DB2 Data Links Manager correcto y, si
es así, registrarlo en la base de datos. Se
23 El valor de tipo de enlace de hace caso omiso de los DB2 Data Links
DATALINK no es válido. Manager registrados, a menos que el
24 Un DB2 Data Links Manager no puede parámetro de configuración del gestor
encontrar el archivo referenciado del de bases de datos Datalinks esté
valor de DATALINK. establecido en YES (Sí).

25 El archivo referenciado del valor de 23 Corregir el valor de tipo de enlace.


DATALINK ya está enlazado a una base 24 Compruebe si se ha especificado el
de datos. archivo correcto y, si el archivo existe.
26 No se ha podido acceder para enlazar al 25 Deshacer el enlace de la referencia
archivo referenciado del valor de existente con el archivo o no especifique
DATALINK. Tal vez se trate de un el archivo en esta sentencia.
directorio, un enlace simbólico o un
archivo con bit de permiso para activar 26 No se permite enlazar directorios.
el ID de usuario (SUID) o bien el ID de Utilizar el nombre de archivo real, no el
grupo (SGID). enlace simbólico. Si SUID o SGID están
activados, este archivo no puede
27 El comentario o la ubicación de los enlazarse utilizando un tipo de
datos del valor de DATALINK es DATALINK.
demasiado largo.
27 Reducir la longitud del valor de
28 El registro existente en DB2 Data Links ubicación de los datos o el comentario.

Capítulo 2. Mensajes SQL 67


28 Póngase en contacto con el
SQL0360W Tal vez los valores de DATALINK
administrador de DB2 Data Links
no sean válidos porque la tabla
Manager para añadir el registro
“<nombre-tabla>” está en estado
necesario para enlazar este archivo.
Pendiente de Reconciliación de
29 Póngase en contacto con el Datalink (DRP) o Reconciliación
administrador de DB2 Data Links de Datalink no posible (DRNP).
Manager para conseguir la autorización
Explicación: Tal vez los valores de DATALINK
necesaria.
de la tabla “<nombre-tabla>” no sean válidos
30 No enlace este archivo o volverlo a porque la tabla está en estado Pendiente de
intentar más tarde. reconciliación de Datalink (DRP) o Reconciliación
de Datalink no posible (DRNP). Mientras está en
31 Espere un poco hasta que finalice la cualquiera de estos estados, no se garantiza el
copia de archivo y volverlo a intentar control de los archivos en DB2 Data Links
más tarde. Manager.

sqlcode: -0358 Continúa el proceso de la sentencia.


Respuesta del Usuario: Consulte la publicación
sqlstate: 428D1 Administration Guide para obtener información
sobre los estados Pendiente de conciliación de
SQL0359N El rango de los valores para la Datalink (DRP) y Conciliación de Datalink no
columna de identidad está posible (DRNP) para realizar la acción adecuada.
agotado. sqlcode: +360
Explicación: DB2 intentó generar un valor para sqlstate: 01627
una columna de identidad, sin embargo, todos
los valores permitidos para la columna de
identidad ya se han asignado. SQL0368N DB2 Data Links Manager
“<nombre>” no está registrado en
No se puede procesar la sentencia. la base de datos.
Respuesta del Usuario: Redefina la tabla con Explicación: Existe un valor de DATALINK que
un rango de valores mayor para la columna de hace referencia al DB2 Data Links Manager
identidad. Para poder hacerlo, descarte la tabla “<nombre>” que no está registrado en la base de
existente. Vuelva a crear la tabla con un tipo de datos.
datos diferente para la columna de identidad y
especifique un tipo de datos que tenga un rango No se puede procesar la sentencia.
de valores mayor que el tipo de datos actual Respuesta del Usuario: Póngase en contacto
para la columna de identidad. con el administrador de la base de datos para
sqlcode: -359 determinar por qué DB2 Data Links Manager ya
no está registrado.
sqlstate: 23522
sqlcode: -0368
sqlstate: 55022

68 Consulta de mensajes, Volumen 2


SQL0370N El parámetro de la posición “<n>” SQL0373N La cláusula DEFAULT no se
debe renombrarse en la sentencia puede especificar para la columna
CREATE FUNCTION para la GENERATED
función LANGUAGE SQL “<nombre-columna>”.
“<nombre>”.
Explicación: Puede que no se especifique una
Explicación: Todos los parámetros de las cláusula DEFAULT para una columna que se ha
funciones que se definen con LANGUAGE SQL identificado como una columna GENERATED.
han de tener un nombre-parámetro para cada
No se puede procesar la sentencia.
parámetro.
Respuesta del Usuario: Elimine la cláusula
No se puede procesar la sentencia.
DEFAULT y vuelva a someter la sentencia.
Respuesta del Usuario: Incluya un nombre de
sqlcode: -373
parámetro para cada parámetro de la función.
sqlstate: 42623
sqlcode: -370
sqlstate: 42601
SQL0374N La cláusula “<cláusula>” no se ha
especificado en la sentencia
SQL0372N Sólo se permite una columna CREATE FUNCTION para la
IDENTITY o ROWID en una función LANGUAGE SQL
tabla. “<nombre función>”, pero un
examen del cuerpo de la función
Explicación: Se ha intentado hacer alguna de las
revela que debería especificarse.
acciones siguientes:
v Crear una tabla con más de una columna Explicación: Es posible que las siguientes
IDENTITY. situaciones sean la causa de este error.
v Añadir una columna IDENTITY a una tabla Debe especificarse NOT DETERMINISTIC si se
que ya tiene una. aplica cualquiera de las siguientes condiciones
v Crear una tabla con más de una columna dentro del cuerpo de la función:
ROWID. v se llama a una función que tiene la propiedad
v Añadir una columna ROWID a una tabla que NOT DETERMINISTIC,
ya tiene una. v se accede a un registro especial.
No se puede procesar la sentencia. Debe especificarse READS SQL DATA si el
cuerpo de la función definida con LANGUAGE
Respuesta del Usuario: Para una sentencia
SQL contiene una subselección o si llama a una
CREATE TABLE, seleccione solamente una
función que puede leer datos de sql.
columna para tener el tipo de datos ROWID o el
atributo IDENTITY. Para una sentencia ALTER
Debe especificarse EXTERNAL ACTION si el
TABLE, una columna ROWID o una columna
cuerpo de la función definida con LANGUAGE
IDENTITY que ya exista en la tabla. No intente
SQL llama a una función que tiene la propiedad
añadir otra columna con tipos de datos ROWID
EXTERNAL ACTION.
o con el atributo IDENTITY a la tabla.
sqlcode: -372 No se puede procesar la sentencia.
sqlstate: 428C1 Respuesta del Usuario: Especifique la cláusula
o cambie el cuerpo de la función.
sqlcode: -374

Capítulo 2. Mensajes SQL 69


sqlstate: 428C2
SQL0389N La instancia de función específica
“<nombre específico>”
SQL0385W La asignación a una variable identificada en una sentencia
SQLSTATE o SQLCODE en una CREATE CAST tiene más de un
rutina SQL puede que sea parámetro, tiene un parámetro
sobregrabada y que no active que no coincide con el tipo de
ningún manejador. datos fuente o devuelve un tipo
de datos que no coincide con el
Explicación: La rutina SQL incluye como destino.
mínimo una sentencia que asigna un valor a las
variables especiales SQLSTATE o SQLCODE. Explicación: Una función de difusión:
Estas variables tienen valores asignados por el v tiene exactamente un parámetro,
proceso de sentencias de SQL en la rutina SQL.
v el tipo de datos del parámetro debe ser el
El valor asignado puede, por lo tanto, estar
mismo que el tipo de datos fuente,
sobregrabado como resultado del proceso de la
sentencia de SQL. Asimismo, la asignación de un v el tipo de datos de resultado debe ser el
valor a la variable especial SQLSTATE no activa mismo que el tipo de datos destino,
ningún manejador. No se puede procesar la sentencia.
La definición de la rutina se ha procesado Respuesta del Usuario: Elija una instancia de
satisfactoriamente. función diferente, cambie el tipo de datos fuente
Respuesta del Usuario: No se requiere ninguna o cambie el tipo de datos destino.
acción. Elimine cualquier asignación a la variable sqlcode: -389
especial SQLSTATE o SQLCODE para evitar el
aviso. sqlstate: 428DG

sqlcode: +385
SQL0390N La función ″<nombre-función>″ se
sqlstate: 01643 resolvió en la función específica
″<nombre-específico>″ que no es
SQL0388N En una sentencia CREATE CAST válida en el contexto en que se
para la función utiliza.
“<nombre-función>”, tanto la Explicación: Una función se resolvió en una
fuente “<nombre-tipo-datos- función específica que no es válida en el contexto
fuente>” como el destino en que se utiliza. Si ″<nombre-específico>″ es
“<nombre-tipo-datos-destino>” una serie vacía, entonces la función se resolvió
son tipos que están incorporados en la función incorporada identificada por
o son del mismo tipo. ″<nombre-función>″. Algunas de las posibles
Explicación: Uno de los tipos de datos debe ser situaciones incluyen:
un tipo definido por el usuario. El tipo de fuente v la función específica es una función de tabla
y el tipo de destino no pueden ser el mismo tipo en la que únicamente se prevé una función de
de datos. fila, de columna o escalar (como por ejemplo,
crear una función escalar originada).
No se puede procesar la sentencia.
v la función específica es una función de fila, de
Respuesta del Usuario: Cambie el tipo de datos columna o escalar en la que únicamente se
de la fuente o del destino. prevé una función de tabla (como por ejemplo,
sqlcode: -388 la cláusula FROM de una consulta).

sqlstate: 428DF

70 Consulta de mensajes, Volumen 2


v la función específica es una función de fila en v La función dispone de un argumento que no
la que únicamente se prevé una función de se resuelve en una fila o tabla base. Esto
columna o escalar. incluiría la situación que afecta una columna
de resultados de una unión externa donde son
No se puede procesar la sentencia.
posibles las filas que generan NULL.
Respuesta del Usuario: Compruebe que se han v No se puede utilizar la función en filas a partir
especificado el nombre de función y los de una tabla de resumen duplicada.
argumentos correctos y que la vía de acceso
actual incluye el esquema donde está definida la No se puede procesar la sentencia.
función correcta. Tal vez necesite cambiar el Respuesta del Usuario: Elimine
nombre de función, la vía de acceso actual ″<nombre-función>″ del contexto en el que no
(utilizando SET CURRENT FUNCTION PATH o está permitido.
la opción de vinculación FUNCPATH), o cambie
el contexto en el que se utiliza la función. sqlcode: -391

sqlcode: -390 sqlstate: 42881

sqlstate: 42887
SQL0392N El valor de SQLDA proporcionado
para el cursor ″<cursor>″ se ha
SQL0391N Uso no válido de la función modificado respecto a la
″<nombre_función>″ basada en la recuperación anterior.
fila.
Explicación: La aplicación se ejecuta con
Explicación: La sentencia utiliza una función normas de DB2 y ha solicitado que se devuelvan
″<nombre_función>″ basada en la fila que no se los datos LOB en una sentencia FETCH y como
puede emplear por una de las razones siguientes: localizador de otra sentencia FETCH. Esto no
v Se utiliza la función en una cláusula GROUP está permitido.
BY o HAVING, pero tampoco se incluye en la
Respuesta del Usuario: No se puede ejecutar la
lista de selección.
sentencia.
v No se puede utilizar la función en este
contexto debido a la naturaleza repetitiva de la No utilice las normas de DB2 o bien realice un
sentencia. cambio en la aplicación de manera que el código
de tipo de datos no pase de LOB a localizador (o
v No se puede utilizar La función en una
viceversa) en el SQLDA entre las recuperaciones
restricción de comprobación.
sucesivas.
v No se puede utilizar la función en una
columna generada. sqlcode: -392
v No se puede utilizar la función en una sqlstate: 42855
definición de vista donde se especifique la
cláusula WITH CHECK OPTION o cualquier
vista dependiente de dicha vista que tenga
especificada la cláusula WITH CHECK
OPTION.

SQL0400 - SQL0499

Capítulo 2. Mensajes SQL 71


No se puede procesar la sentencia.
SQL0401N Los tipos de datos de los
operandos de la operación Respuesta del Usuario: Corrija la sintaxis de la
“<operador>” no son compatibles. sentencia de SQL de manera que todos los
operandos de función y de operador sean
Explicación: La operación “<operador>” que
numéricos.
aparece en la sentencia de SQL contiene una
combinación de operandos numéricos y no Usuarios del sistema federado: si la razón es
numéricos o los operandos de la operación no desconocida, aísle el problema para la fuente de
son compatibles. datos que no puede procesar la petición (consulte
en la guía para la determinación de problemas
Usuarios del sistema federado: esta violación del
los procedimientos que se han de seguir para
tipo de datos puede radicar en la fuente de datos
identificar la fuente de datos que falla) y
o en el servidor federado.
examine los operadores que se han aplicado a
Algunas fuentes de datos no proporcionan los esa fuente de datos.
valores adecuados para “<operador>”. En estos
sqlcode: -402
casos, el símbolo del mensaje tendrá el siguiente
formato: “<fuente de datos>:UNKNOWN”, que sqlstate: 42819
indica que el valor real de la fuente de datos
especificada es desconocido.
SQL0403W El alias definido recientemente
No se puede procesar la sentencia. ″<nombre>″ se ha resuelto en el
objeto ″<nombre2>″ que no está
Respuesta del Usuario: Compruebe todos los
definido actualmente.
tipos de datos de los operandos para asegurarse
de que son comparables y compatibles con el uso Explicación: El alias <nombre> se ha definido
de la sentencia. en función de:
Si todos los operandos de la sentencia de SQL v una tabla o vista que no está definida
son correctos y acceden a una vista, compruebe actualmente en la base de datos
los tipos de datos de todos los operandos de la v otro alias que pertenece a una tabla o vista que
vista. no está definida actualmente en la base de
datos.
Usuarios del sistema federado: si la razón del
error es desconocida, aísle el problema en el El objeto <nombre2> es el objeto no definido.
fuente de datos que no puede procesar la Dicho objeto debe existir antes de que cualquier
petición (en la publicación Problem Determination sentencia de SQL (que no sea CREATE ALIAS)
Guide encontrará los procedimientos que se han pueda utilizar satisfactoriamente el alias recién
de seguir para identificar la fuente de datos que creado. Se crea el alias <nombre> especificado.
falla) y examine las restricciones de los tipos de
datos para esa fuente de datos. Una vista no operativa se considera no definida
sqlcode: -401 a efectos de creación de un alias.

sqlstate: 42818 Respuesta del Usuario: Asegúrese de que el


objeto no definido <nombre2> se define con
anterioridad a la utilización del alias recién
SQL0402N El tipo de datos de un operando creado en una sentencia de SQL (otra distinta a
de la función u operación CREATE ALIAS).
aritmética “<operador>” no es
numérico. sqlcode: +403

Explicación: Se ha especificado un operando no sqlstate: 01522


numérico para la función aritmética u operador
“<operador>”.

72 Consulta de mensajes, Volumen 2


error. Para obtener más información, consulte la
SQL0404N Una serie de la sentencia
sentencia o cláusula en el manual Consulta de
UPDATE o INSERT es demasiado
SQL.
larga para la columna
“<nombre>”.
Usuarios del sistema federado: esta violación del
Explicación: Una sentencia INSERT o UPDATE rango puede radicar en la fuente de datos o en el
especifica un valor que es más largo que la serie servidor federado. Los rangos adecuados para
de longitud máxima que se puede almacenar en los valores SQL ubicados en las tablas de la
la columna indicada. fuente de datos dependen de la fuente de datos.
Para determinar el rango correcto, consulte la
No se puede procesar la sentencia.
documentación adecuada para la fuente de datos.
Algunas fuentes de datos no proporcionas los
Nota: Es posible que “<nombre>” se devuelva
valores adecuados para “<literal>”. En estos
en el SQLCA o no, dependiendo de la
casos, el símbolo del mensaje tendrá el siguiente
sintaxis de la sentencia INSERT o
formato: “<fuente de datos>:UNKNOWN”, que
UPDATE.
indica que el valor real de la fuente de datos
Respuesta del Usuario: Compruebe la longitud especificada es desconocido.
de la columna del objeto y corrija el programa o
la sentencia de SQL de modo que la serie que se No se puede procesar la sentencia.
inserte o actualice no supere la longitud máxima.
Respuesta del Usuario: Reduzca el valor del
sqlcode: -404 literal hasta el tamaño adecuado.
sqlstate: 22001 Usuarios del sistema federado: si la razón es
desconocida, aísle el problema en la fuente de
datos que no puede procesar la petición (consulte
SQL0405N El literal numérico “<literal>” no
en la guía para la determinación de problemas
es válido porque su valor está
los procedimientos que se han de seguir para
fuera de rango.
identificar la fuente de datos que falla) y
Explicación: El literal numérico especificado no examine las restricciones de rango de datos para
está dentro del rango aceptable. esa fuente de datos.

Los rangos adecuados para los valores SQL son sqlcode: -405
los siguientes:
sqlstate: 42820
v Para valores FLOAT:
– 0
SQL0406N Un valor numérico de la sentencia
– En el rango positivo comprendido entre UPDATE o de la sentencia
+2,225E-307 y +1,79769E+308 INSERT no está dentro del rango
– En el rango negativo comprendido entre permitido para su columna de
-1,79769E+308 y -2,225E-307. destino.
v De -9999999999999999999999999999999. a Explicación: El valor de una variable del
9999999999999999999999999999999. para sistema principal o un valor numérico que se ha
valores DECIMAL calculado durante el proceso de la sentencia
v De -2147483647 a 2147483647 para valores UPDATE o INSERT SQL está fuera del rango
INTEGER permitido de la columna de destino. La causa de
v De -32768 a +32767 para los valores de enteros este problema puede estar en los valores de
pequeños (SMALLINT). aparecen en la columna del objeto, en la
operación de SQL que se realiza sobre dichos
En determinados contextos, el literal puede tener valores o en ambos.
ciertas restricciones que den como resultado este

Capítulo 2. Mensajes SQL 73


No se puede procesar la sentencia. v La vista de la sentencia INSERT omite una
columna declarada NOT NULL sin WITH
Respuesta del Usuario: Consulte la explicación
DEFAULT en la definición de tabla base.
del mensaje SQL0405 para ver los rangos
permitidos para los tipos de datos numéricos. Si el valor de “<nombre>” tiene el formato
“TBSPACEID=n1, TABLEID=n2, COLNO=n3”,
NOTA: En las actualizaciones de catálogos del
entonces, el nombre de la columna de la
sistema, consulte el manual Consulta de SQL para
sentencia de SQL no estaba disponible cuando se
ver los rangos válidos de las diversas columnas
emitió el error. Los valores proporcionados
de los catálogos actualizables.
identifican el espacio de tabla, la tabla y el
sqlcode: -406 número de columna de la tabla base que no
permite el valor NULL.
sqlstate: 22003
Usuarios del sistema federado: Esta situación
SQL0407N La asignación de un valor NULL a puede detectarla el servidor federado o la fuente
una columna NOT NULL de datos. Algunas fuentes de datos no
“<nombre>” no está permitida. proporcionan los valores adecuados para
“<nombre>”. En estos casos, el símbolo del
Explicación: Se ha producido una de las mensaje tendrá el siguiente formato: “<fuente de
siguientes condiciones: datos>:UNKNOWN”, que indica que el valor
v El valor de actualización o inserción era real de la fuente de datos especificada es
NULL, pero el objeto de columna estaba desconocido.
declarado como NOT NULL en la definición
de tabla. Por lo tanto: No se puede procesar la sentencia.
– No se pueden insertar valores NULL es
dicha columna. Nota: Bajo algunas circunstancias, el símbolo
– Una actualización no puede establecer “<nombre>” no se rellenará (el campo
valores NULL en esa columna. sqlerrmc de SQLCA no se rellena).
– Una sentencia de variable de transición SET Respuesta del Usuario: Corrija la sentencia de
de un activador no puede establecer en una SQL después de examinar la definición de la
columna los valores en NULL. tabla de objetos para determinar qué columnas
v El valor de actualización o inserción era de la tabla tienen el atributo NOT NULL y no
DEFAULT, pero la columna de objeto estaba tienen el atributo WITH DEFAULT.
declarada como NOT NULL sin WITH Si el valor de “<nombre>” tiene el formato
DEFAULT en la definición de tabla. Por lo “TBSPACEID=n1, TABLEID=n2, COLNO=n3”, se
tanto: puede determinar el nombre de la tabla y el
– Un valor por omisión NULL no se puede nombre de la columna usando la consulta
insertar en esa columna. siguiente:
– Una actualización no puede establecer SELECT [Link], [Link], [Link]
valores en NULL en dicha columna. FROM [Link] AS T, [Link] AS C
WHERE [Link] = n1
– Una sentencia de variable de transición SET
AND [Link] = n2
de un activador no puede establecer en una AND [Link] = n3
columna los valores por omisión de NULL. AND [Link] = [Link]
v La lista de nombres de columna de la AND [Link] = [Link]
sentencia INSERT omite una columna
declarada NOT NULL sin WITH DEFAULT en La tabla y la columna identificada mediante esta
la definición de tabla. consulta puede ser la tabla base de una vista en
la que la sentencia de SQL falló.

74 Consulta de mensajes, Volumen 2


Usuarios del sistema federado: si la razón es el tipo de datos adecuado para el destino de
desconocida, aísle el problema en el fuente de asignación.
datos que no puede procesar la petición (consulte
sqlcode: -408
en la guía para la determinación de problemas
los procedimientos que se han de seguir para sqlstate: 42821
identificar la fuente de datos que falla) y
examine la definición del objeto para esa fuente
de datos. Recuerde que los valores por omisión SQL0409N El operando de una función
(NULL y NOT NULL) no son necesariamente los COUNT no es válido.
mismos entre las fuentes de datos. Explicación: Tal como está especificado en la
sentencia de SQL, el operando de la función
sqlcode: -407 COUNT no cumple las normas de sintaxis de
SQL. Sólo se permiten COUNT(*) y
sqlstate: 23502 COUNT(DISTINCT columna).
No se puede procesar la sentencia.
SQL0408N Un valor no es compatible con el
Respuesta del Usuario: Especifique COUNT(*)
tipo de datos de su asignación
o COUNT(DISTINCT columnas).
destino. El nombre del destino es
“<nombre>”. NOTA: Este mensaje sólo se aplica a las
versiones de DB2 anteriores a la Versión 2.
Explicación: El tipo de datos del valor que se
va a asignar a la columna, parámetro, variable sqlcode: -409
SQL o variable de transición por una sentencia
de SQL es incompatible con el tipo de datos sqlstate: 42607
declarado del destino de asignación. Ambos
deben ser: SQL0410N El literal de coma flotante
v Numéricos “<literal>” contiene más de 30
v Carácter caracteres.
v Gráfico Explicación: El literal de coma flotante
v Fechas o carácter especificado tiene una longitud superior a los 30
caracteres, excluyendo los ceros iniciales. Un
v Horas o carácter literal de coma flotante debe tener una longitud
v Indicaciones horarias o carácter máxima de 30 caracteres.
v Enlaces de datos No se puede procesar la sentencia.
v Los mismos de tipo diferenciado
Respuesta del Usuario: Reduzca el literal
v Tipos de referencia donde el tipo de destino especificado.
del valor es un subtipo del tipo de destino de
la columna. sqlcode: -410
v Los mismos tipos estructurados definidos por sqlstate: 42820
el usuario. O, el tipo estático del valor debe
ser un subtipo del tipo estático (tipo
declarado) del destino. SQL0412N Se devuelven columnas múltiples
desde una subconsulta que sólo
No se puede procesar la sentencia. permite una columna.
Respuesta del Usuario: Examine la sentencia y Explicación: En el contexto de la sentencia de
si es posible la vista o tabla destino para SQL, se especifica una selección completa que
determinar el tipo de datos destino. Asegúrese sólo puede tener una columna como resultado.
de que el valor literal, expresión o variable tiene

Capítulo 2. Mensajes SQL 75


No se puede procesar la sentencia.
SQL0415N Los tipos de datos de las
Respuesta del Usuario: Especifique sólo una columnas correspondientes no son
columna cuando sólo se permite una selección compatibles en una selección
completa escalar. completa que incluya un operador
de conjunto, o bien en las
sqlcode: -412 diversas filas de una cláusula
sqlstate: 42823 VALUES de un INSERT o de una
selección completa.

SQL0413N Se ha producido un Explicación: Hay varias sentencias donde puede


desbordamiento durante la producirse este error.
conversión de tipo de datos v En una sentencia SELECT o VALUES que
numéricos. incluya operaciones de conjunto (UNION,
INTERSECT o EXCEPT). Las columnas
Explicación: Durante el proceso de la sentencia
correspondientes de las subselecciones o de las
de SQL, se ha alcanzado una condición de
selecciones completas que conforman las
desbordamiento al convertir de un tipo numérico
sentencias SELECT o VALUES no son
a otro. La conversión numérica se realiza
compatibles.
atendiendo a las normas estándares de SQL.
v En una sentencia INSERT que inserte varias
Usuarios del sistema federado: la conversión filas. En este caso, las columnas
numérica se puede producir en el servidor correspondientes de las filas especificadas en
federado, en las fuentes de datos, o en ambos. la cláusula VALUES no son compatibles.
No se puede procesar la sentencia. No se ha v En una sentencia SELECT o VALUES donde la
recuperado, actualizado ni suprimido ningún cláusula VALUES se utilice con varias filas. En
dato. este caso, las columnas correspondientes de las
filas especificadas en la cláusula VALUES no
Respuesta del Usuario: Revise la sintaxis de la
son compatibles.
sentencia de SQL para averiguar la causa del
error. Si el problema depende de los datos, Las columnas son incompatibles por una de las
puede ser necesario examinar los datos razones siguientes:
procesados en el momento de producirse el error. v No son caracteres las dos columnas
Usuarios del sistema federado: si la razón es v No son números las dos columnas
desconocida, aísle el problema en la fuente de v No son fechas las dos columnas
datos que no puede procesar la petición (consulte
v No son horas las dos columnas
en la guía para la determinación de problemas
los procedimientos que se han de seguir para v No son indicaciones horarias las dos columnas
identificar la fuente de datos que falla) y v No son gráficos las dos columnas
examine las restricciones de rango de datos para v Las dos columnas no son del mismo tipo
esa fuente de datos. diferenciado definido por el usuario.
sqlcode: -413 Si los datos de una columna son de tipo carácter,
sqlstate: 22003 fecha, hora o indicación de la hora, la columna
correspondiente puede ser una serie constante de
caracteres.

No se puede procesar la sentencia.


Respuesta del Usuario: Corrija los nombres de
columna utilizados en la sentencias SELECT o las
expresiones de la cláusula VALUES, de forma

76 Consulta de mensajes, Volumen 2


que todas las columnas correspondientes sean de sqlcode: -417
tipos compatibles.
sqlstate: 42609
sqlcode: -415
sqlstate: 42825 SQL0418N Una sentencia contiene un
marcador de parámetros que no es
válido.
SQL0416N No puede especificar una columna
de resultado de más de 254 bytes Explicación: Los marcadores de parámetros que
en las sentencias SELECT o carecen de tipo no se pueden utilizar:
VALUES concatenadas mediante v en una lista SELECT
un operador de conjunto que no
v como el único argumento de una operación
sea UNION ALL.
aritmética de fecha y hora
Explicación: Una de las sentencias SELECT o v en ciertos casos como el único argumento de
VALUES concatenadas por un operador de una función escalar
conjunto especifica una columna de resultado
mayor de 254 bytes. Sólo se pueden utilizar las Los marcadores de parámetros nunca se pueden
columnas de resultado VARCHAR o utilizar:
VARGRAPHIC de más de 254 bytes con el v en una sentencia que no sea una sentencia
operador de conjunto UNION ALL. preparada
No se puede procesar la sentencia. v en una selección completa de una sentencia
CREATE VIEW
Respuesta del Usuario: Utilice UNION ALL en
v en la acción activada de una sentencia
lugar de UNION o elimine las columnas de
CREATE TRIGGER
resultado de más de 254 bytes de las sentencias
SELECT o VALUES. v en una consulta capturada por DB2 Query
Patroller
sqlcode: -416
No se puede procesar la sentencia.
sqlstate: 42907
Respuesta del Usuario: Corrija la sintaxis de la
sentencia. Si los marcadores de parámetros sin
SQL0417N Una serie de sentencias que va a tipo no están permitidos, utilice la especificación
prepararse contiene marcadores de CAST para proporcionar un tipo de datos al
parámetros como operandos del marcador de parámetros.
mismo operador.
sqlcode: -418
Explicación: La serie de sentencia especificada
como objeto de una sentencia PREPARE o sqlstate: 42610
EXECUTE IMMEDIATE contiene un predicado o
expresión en la que los marcadores de SQL0419N Una operación de división
parámetros se han utilizado como operandos del decimal no es válida porque el
mismo operador sin una especificación CAST. resultado tendría una escala
Por ejemplo: negativa.
? > ?
Explicación: Una división decimal especificada
no es válida porque daría un resultado incluido
No se puede procesar la sentencia.
en una escala negativa.
Respuesta del Usuario: No se da soporte a la
La fórmula utilizada internamente para calcular
sintaxis. Utilice la especificación CAST para
la escala del resultado de una división decimal
proporcionar un tipo de datos a uno de los
es:
marcadores de parámetros como mínimo.

Capítulo 2. Mensajes SQL 77


Escala de resultado = 31 - pn + en - ed lugar del carácter decimal por omisión.
Respuesta del Usuario: Asegúrese de que las
donde pn es la precisión del numerador, en la
series de caracteres que se están convirtiendo a
escala del numerador y ed la escala del
tipos numéricos contienen únicamente caracteres
denominador.
válidos en constantes de SQL numéricas que
utilizan el carácter decimal, en caso de
Usuarios del sistema federado: La división especificarse.
decimal puede producirse en el servidor
federado, en las fuentes de datos o en ambos. La sqlcode: -420
división decimal especificada da lugar a una
sqlstate: 22018
escala incorrecta para esta fuente de datos.

No se puede procesar la sentencia. SQL0421N Los operandos de un operador de


conjunto o de una cláusula
Respuesta del Usuario: Revise y compruebe la VALUES no tienen el mismo
precisión y la escala de todas las columnas que número de columnas.
participan en una división decimal. Tenga en
cuenta que un valor de entero o de entero Explicación: Los operandos de un operador de
pequeño puede convertirse en un decimal para conjunto como UNION, EXCEPT o INTERSECT
este cálculo. deben tener el mismo número de columnas. Las
filas de una cláusula VALUES deben tener el
Usuarios del sistema federado: si la razón es mismo número de columnas.
desconocida, aísle el problema en la fuente de
datos que no puede procesar la petición (consulte No se puede procesar la sentencia.
en la guía para la determinación de problemas
Respuesta del Usuario: Modifique la sentencia
los procedimientos que se han de seguir para
de SQL de modo que cada operando o cada fila
identificar la fuente de datos que falla) y
de una cláusula VALUES tenga exactamente el
examine las restricciones de rango de datos para
mismo número de columnas.
esa fuente de datos.
sqlcode: -421
sqlcode: -419
sqlstate: 42826
sqlstate: 42911

SQL0423N La variable de localizador


SQL0420N Se ha encontrado un carácter no
“<posición-variable>” no
válido en un argumento de serie
representa ningún valor
de caracteres de la función
actualmente.
“<nombre-función>”.
Explicación: Hay una variable de localizador
Explicación: La función “<nombre-función>”
errónea. Es posible que no se le haya asignado
incluye un argumento de serie de caracteres que
un valor de LOB o que el localizador asociado
contiene un carácter que no es válido en una
con la variable haya sido liberado.
constante de SQL numérica. Es posible que se
haya llamado a la función como resultado de Si se proporciona ″<posición-variable>″, ésta
utilizar la especificación CAST con facilita la posición ordinal de la variable errónea
“<nombre-función>” como el tipo de datos de del grupo de variables especificado.
destino. La función o el tipo de datos que se han Dependiendo de cuándo se detecte el error, es
utilizado en la sentencia de SQL pueden ser un posible que el gestor de bases de datos no pueda
sinónimo de “<nombre-función>”. determinar la <posición-variable>″.
Si se especifica un carácter decimal en la función En lugar de una posición ordinal,
DECIMAL, debe utilizarse dicho carácter en ″<posición-variable>″ puede tener el valor

78 Consulta de mensajes, Volumen 2


″nombre-función RETURNS″, que significa que el
SQL0427N Retrotracción dinámica no válida
valor de localizador devuelto de la función
para el entorno de ejecución de la
definida por el usuario que se ha identificado
aplicación.
por el nombre-función es erróneo.
Explicación: Una aplicación que se ejecuta en
Respuesta del Usuario: Corrija el programa de
un entorno de Proceso de transacción distribuida
forma que las variables de localizador de LOB
(DTP) CONNECT TYPE 2, como pueda ser CICS,
que se utilizan en la sentencia de SQL tengan
ha intentado ejecutar una sentencia dinámica
valores de LOB válidos antes de que se ejecute la
ROLLBACK del SQL. No se puede ejecutar la
sentencia. Puede asignarse un valor de LOB a
sentencia ROLLBACK dinámica de SQL en este
una variable de localizador mediante las
entorno.
sentencias SELECT INTO, VALUES INTO o
FETCH. Usuarios del sistema federado: Las sentencias
ROLLBACK dinámicas de SQL no se pueden
sqlcode: -423
ejecutar durante una sesión de paso a través.
sqlstate: 0F001
Respuesta del Usuario:
v Utilice al sentencia ROLLBACK que
SQL0426N Confirmación dinámica no válida proporciona el entorno DTP para realizar la
para el entorno de ejecución de la retrotracción. Por ejemplo, en un entorno CICS
aplicación. dicha sentencia sería el mandato CICS
Explicación: Una aplicación que se ejecuta en SYNCPOINT ROLLBACK.
un entorno de Proceso de transacción distribuida v Si la sentencia se ha ejecutado en un
(DTP) CONNECT TYPE 2, como pueda ser CICS, procedimiento almacenado, elimine la
ha intentado ejecutar una sentencia dinámica sentencia entera.
COMMIT del SQL. No se puede ejecutar la
Usuarios del sistema federado: Elimine el
sentencia COMMIT dinámica de SQL en este
comentario de la sentencia ROLLBACK o
entorno.
codifíquela como una sentencia estática. A
Usuarios del sistema federado: Las sentencias continuación, vuelva a someter el programa.
COMMIT dinámicas de SQL no se pueden
ejecutar durante una sesión de paso a través. sqlcode: -427
Respuesta del Usuario:
sqlstate: 2D529
v Utilice la sentencia de confirmación que
proporciona el entorno DTP para realizar la
confirmación. Por ejemplo, en un entorno SQL0428N La sentencia de SQL sólo se
CICS, ésta podría ser el mandato CICS admite como primera sentencia de
SYNCPOINT. una unidad de trabajo.
v Si la sentencia se ha ejecutado en un Explicación: La sentencia de SQL que se emitió
procedimiento almacenado, elimine la se tiene que ejecutar antes que ninguna otra
sentencia entera. sentencia de SQL que inicie una unidad de
trabajo. Lo que sigue son posibles situaciones:
Usuarios del sistema federado: Elimine el
comentario de la sentencia COMMIT o v La sentencia de SQL debe ser la primera en la
codifíquela como una sentencia estática. A unidad de trabajo y se ha emitido SQL para la
continuación, vuelva a someter el programa. conexión en la unidad de trabajo.
v La sentencia de SQL debe ser la primera en la
sqlcode: -426 unidad de trabajo y un cursor WITH HOLD
está ahora abierto para la conexión.
sqlstate: 2D528

Capítulo 2. Mensajes SQL 79


Tenga presente que cuando la sentencia es
SQL0431N El usuario ha interrumpido la
DISCONNECT ALL provoca que DISCONNECT
función definida por el usuario
se dirija contra todas las conexiones para que la
“<nombre-función>” (con el
solicitud falle si alguna conexión vulnera las
nombre específico
restricciones que se acaban de mencionar.
“<nombre-específico>”).
Respuesta del Usuario: Emita COMMIT o
Explicación: Se ha producido una interrupción
ROLLBACK antes de procesar la sentencia de
de usuario/cliente mientras la función definida
SQL. Si hay algún cursor WITH HOLD se tendrá
por el usuario mencionada tenía el control.
que cerrar. Si la sentencia es SET INTEGRITY,
elimine la cláusula COMMIT THRESHOLD. Respuesta del Usuario: Esto podría indicar
algún problema en la función definida por el
sqlcode: -428
usuario, como por ejemplo un bucle o una espera
sqlstate: 25001 indefinida. Si el problema persiste, (p.e., la
necesidad de interrupción da como resultado la
misma condición de error), póngase en contacto
SQL0429N Se ha sobrepasado el número con el autor de la función definida por el usuario
máximo de localizadores de LOB o con el administrador de la base de datos. No se
simultáneos. debe utilizar esta función definida por el usuario
Explicación: DB2 da soporte a un máximo de hasta que se solucione el problema.
32.000 localizadores de LOB simultáneamente. sqlcode: -431
Respuesta del Usuario: Modifique el programa sqlstate: 38504
de modo que necesite menos localizadores de
LOB simultáneos y vuelva a intentarlo.
SQL0432N Un marcador de parámetros no
sqlcode: -429 puede un nombre del tipo
sqlstate: 54028 definido por el usuario ni del tipo
de destino de referencia
“<nombre-tdu>”.
SQL0430N La función definida por el usuario
“<nombre-función>” (con el Explicación: Se ha determinado que un
nombre específico marcador de parámetros tiene el tipo definido
“<nombre-específico>”) ha por el usuario “<nombre-tdu>” o un tipo de
terminado anormalmente. referencia con el tipo de destino “<nombre-tdu>”
basado en el contexto en el se utiliza. Un
Explicación: Se ha producido una terminación marcador de parámetros no puede tener un tipo
anormal mientras la función definida por el definido por el usuario ni un tipo de referencia
usuario mencionada tenía el control. como su tipo de datos a menos que forme parte
Respuesta del Usuario: Hay que arreglar la de una asignación (cláusula VALUES de INSERT
función definida por el usuario. Póngase en o la cláusula SET de UPDATE) o se difunda
contacto con el autor de la función o con el explícitamente a un tipo de datos diferenciado
administrador de la base de datos. No se debe definido por el usuario o un tipo de datos de
utilizar la función definida por el usuario hasta referencia que utilice la especificación CAST.
que no se solucione el problema. No se puede procesar la sentencia.
sqlcode: -430 Respuesta del Usuario: Utilice una conversión
sqlstate: 38503 (cast) explícita para un tipo de datos diferenciado
definido por el usuario o para el tipo de datos de
referencia para el marcador de parámetros. Una
alternativa es convertir (cast) las columnas que

80 Consulta de mensajes, Volumen 2


sean tipos de datos diferenciados definidos por el
SQL0434W Se ha sustituido un valor no
usuario en sus tipos de datos fuente
soportado para la cláusula
correspondientes o convertir las columnas que
“<cláusula>” por el valor
son tipos de datos de referencia en sus tipos de
“<valor>”.
representación correspondiente.
Explicación: El valor que se ha especificado
sqlcode: -432
para la cláusula “<cláusula>” no está soportado
sqlstate: 42841 y se ha sustituido por el valor identificado
soportado “<valor>”.

SQL0433N El valor “<valor>” es demasiado Respuesta del Usuario: No es necesario ningún


largo. cambio si el valor seleccionado es aceptable. De
lo contrario, especifique un valor que sea válido
Explicación: Ha sido necesario que una función para la “<cláusula>”.
de conversión (incorporada) o de ajuste del
sistema truncase el valor “<valor>”, que se ha sqlcode: +434
llamado para transformar de alguna manera el
sqlstate: 01608
valor. No se permite un truncamiento en el lugar
en el que se utiliza este valor.
SQL0435N Se ha especificado SQLSTATE
El valor que se transforma es uno de los
“<sqlstate>” en la función
siguientes:
RAISE_ERROR.
v un argumento para una función definida por
el usuario (UDF) Explicación: El SQLSTATE especificado en la
función RAISE_ERROR no cumple las normas
v una entrada de la cláusula SET de una
para un SQLSTATE definido por una aplicación.
sentencia UPDATE
v un valor del que se realiza un INSERT en una Respuesta del Usuario: Corrija el SQLSTATE
tabla especificado en la función RAISE_ERROR.
SQLSTATE debe ser una serie de caracteres que
v una entrada para una función de conversión o
contenga exactamente 5 caracteres. Debe ser del
de ajuste en algún otro texto.
tipo CHAR definido con la longitud 5, o del tipo
v una columna de referencia repetitiva cuyo tipo VARCHAR definido con la longitud 5 o superior.
de datos y longitud quedan determinados por El valor SQLSTATE debe respetar las reglas de
la parte de inicialización de la repetición y los SQLSTATE definidos por la aplicación de la
pueden aumentar en la parte de la repetición. siguiente manera:
La sentencia ha fallado. v Cada carácter debe formar parte de un grupo
de dígitos (de ’0’ a ’9’) o de un grupo de letras
Respuesta del Usuario: Si “<valor>” es una en mayúsculas no acentuadas (de ’A’ a ’Z’)
serie literal de la sentencia de SQL, es demasiado
largo para su utilización. v La clase SQLSTATE (dos primeros caracteres)
no pueden ser ’00’, ’01’ ni ’02’ ya que no son
Si “<valor>” no es una serie literal, examine la clases de error.
sentencia de SQL para determinar dónde tiene v Si la clase del SQLSTATE (dos primeros
lugar la transformación. La entrada para la caracteres) empieza por los caracteres de ’0’ a
transformación es demasiada larga o el destino ’6’ o de ’A’ a ’H’, la subclase (tres últimos
es demasiado corto. caracteres) debe empezar por un carácter
Corrija el problema y vuelva a ejecutar la perteneciente al rango que va de ’I’ a ’Z’.
sentencia. v Si la clase del SQLSTATE (dos primeros
caracteres) empieza por los caracteres ’7’, ’8’,
sqlcode: -433
sqlstate: 22001

Capítulo 2. Mensajes SQL 81


’9’ o de ’I’ a ’Z’, la subclase (tres últimos 4 Se ha producido un desbordamiento del
caracteres) puede ser cualquier carácter de ’0’ coste del optimizador
a ’9’ o de ’A’ a ’Z’.
5 La clase de optimización de consulta era
sqlcode: -435 demasiado bajo
6 El optimizador ha pasado por alto una
sqlstate: 428B3
estadística no válida

SQL0436N Falta el carácter de terminación Se procesará la sentencia.


NULL de la variable del sistema
Respuesta del Usuario: Una o más de las
principal de serie de caracteres de
siguientes:
terminación NULL.
v Aumente el tamaño de la pila de sentencias
Explicación: El valor de un código de variable (stmtheap) en el archivo de configuración de la
de sistema principal de entrada del lenguaje de base de datos. (Código de razón 1)
programación C necesita un carácter de
v Divida la sentencia en sentencias de SQL
terminación NULL al final de la serie.
menos complejas. (Códigos de razón 1,2,3,4)
No se puede procesar la sentencia. v Asegúrese de que los predicados no
Respuesta del Usuario: Asegúrese de que el sobreespecifican el conjunto de respuestas
valor de la variable del sistema principal de (Código de razón 3)
entrada termina en un carácter de terminación v Cambie la clase de optimización de la consulta
NULL. actual por un valor inferior (Códigos de razón
1,2,4)
sqlcode: -436
v Emita Runstats para las tablas que intervienen
sqlstate: 22024 en la consulta (Códigos de razón 3,4)
v Cambie la clase de optimización de consulta
SQL0437W Es posible que el rendimiento de actual por un valor superior (Código de razón
esta consulta compleja no sea el 5)
óptimo. Código de razón: v Vuelva a emitir RUNSTATS para las dos tablas
“<código-razón>”. implicadas en la consulta y sus índices
Explicación: El posible que la sentencia tenga correspondientes, por ejemplo, utilice la
un rendimiento por debajo del óptimo debido a cláusula AND INDEXES ALL de modo que las
que la complejidad de la consulta necesita estadísticas de tabla y de índice sean
recursos que no están disponibles o a que se han coherentes (Código de razón 6)
encontrado condiciones que limitan la sqlcode: +437
optimización. La siguiente lista muestra los
códigos de razón: sqlstate: 01602
1 Se ha alterado el método de
enumeración de unión debido a SQL0438N La aplicación ha originado un
restricciones de memoria error con el texto de diagnóstico:
2 Se ha alterado el método de “<texto>”.
enumeración de unión debido a la Explicación: Este error se ha producido como
complejidad de la consulta resultado de la ejecución de la función
3 Se ha producido un subdesbordamiento RAISE_ERROR o de la sentencia SIGNAL
del coste del optimizador SQLSTATE en un activador.
Respuesta del Usuario: Consulte la

82 Consulta de mensajes, Volumen 2


documentación de la aplicación.
SQL0440N No se ha encontrado ninguna
sqlcode: -438 función con el nombre
“<nombre-función>” que tenga
sqlstate: definido por la aplicación argumentos compatibles en la vía
de acceso de función.
SQL0439N La función definida por el usuario Explicación: Esto sucede en una referencia a la
“<nombre-función>” está función “<nombre-función>”, donde
implantada indirectamente por la “<nombre-función>” puede hacer referencia a un
función “<función-origen>” lo método, cuando el gestor de bases de datos no
que ha provocado el error puede encontrar ninguna función o método que
“<sqlcode>”. pueda utilizar para implantar la referencia. Esto
Explicación: La sentencia del usuario hace puede suceder por varias razones:
referencia a la función “<nombre-función>”. Sin v “<nombre-función>” no se ha especificado
embargo, puesto que la cláusula SOURCE se ha correctamente o no existe en la base de datos.
utilizado en la definición de esta función, ha v Se ha realizado una referencia calificada y se
resultado que la función “<función-origen>” especificó incorrectamente el calificador.
realmente implanta la función. (Puede tratarse de
una vía de acceso de definición directa o v La vía de acceso a la función del usuario no
indirecta de “<nombre-función>” para contiene el esquema al que pertenece la
“<función-origen>”.) En el momento de función o método deseado y se ha utilizado
compilación, el encapsulador (código DB2 que una referencia no calificada.
actúa en nombre de una función) de v Se ha incluido un número de argumentos no
“<función-origen>” ha devuelto un error válido.
identificado por “<sqlcode>”. v Se ha incluido el número correcto de
Respuesta del Usuario: Antes de poder tomar argumentos, pero los tipos de datos de uno o
ninguna acción correctiva, hay que entender varios de los argumentos es incorrecto.
mejor la situación de error real. Consulte la v La función no existe en la base de datos con
explicación para el “<sqlcode>”. Si una indicación de la hora anterior a la hora en
“<función-origen>” es una función incorporada, que se ha vinculado el paquete (se aplica a las
el “<sqlcode>” debe indicar el problema, igual sentencias estáticas).
que en el caso en que la sentencia del usuario v No se puede encontrar el método mutante que
hace referencia directamente a una función corresponde a una asignación de atributo
incorporada. Si “<función-origen>” es una usada en una sentencia UPDATE. El tipo de
función definida por el usuario, es probable que datos del valor nuevo para el atributo no es
el mensaje indique un problema de uno de los un tipo de datos que sea el mismo que el tipo
argumentos o del resultado de la función. de datos del atributo o promocionable al tipo
Corrija el problema y vuelva a intentarlo. de datos del atributo.

sqlcode: -439 Respuesta del Usuario: Corrija el problema y


vuelva a intentarlo. Ello podría significar acceder
sqlstate: 428A0 al catálogo, cambiar la sentencia, añadir nuevas
funciones y/o cambiar la vía de acceso de la
función.
sqlcode: -440
sqlstate: 42884

Capítulo 2. Mensajes SQL 83


SQL0441N Utilización no válida de la palabra SQL0442N Error al hacer referencia a la
clave DISTINCT o ALL con la rutina “<nombre-rutina>”. Se ha
función “<nombre-función>”. superado el número máximo de
argumentos permisibles (90).
Explicación: Existen varias causas posibles.
v Se ha detectado la palabra clave DISTINCT o Explicación: Se han especificado demasiados
ALL dentro del paréntesis en una referencia a argumentos en la referencia a la rutina
la función “<nombre-función>”, y la función “<nombre-rutina>”. El número máximo
se ha resuelto como una función escalar. La permitido es 90.
utilización de la palabra clave DISTINCT o Respuesta del Usuario: Corrija la sentencia
ALL con una función escalar no es válida. asegurándose de que utiliza el número correcto
v La palabra clave DISTINCT se utiliza en una de argumentos y vuelva a intentarlo.
función de columna para la cual no está
sqlcode: -442
soportada. Estas funciones incluyen
COVARIANCE, CORRELATION y las sqlstate: 54023
funciones de regresiones lineales (aquellas que
empiezan por REGR).
SQL0443N La rutina “<nombre-rutina>”
v Se esperaba que la función fuese una función (nombre específico
de columna que soportase la palabra clave “<nombre-específico>”) ha
ALL o DISTINCT pero la función se ha devuelto un error SQLSTATE con
resuelto como una función no de columna. el texto de diagnóstico “<texto>”.
Respuesta del Usuario: Explicación: La rutina “<nombre-rutina>”
v Si se está utilizando una función escalar, (nombre específico “<nombre-específico>”), ha
elimine la palabra clave DISTINCT o ALL. No devuelto a DB2 un SQLSTATE del tipo 38xxx
es válida para una función escalar. junto con el texto de mensaje “<texto>”. La
v Si la función es una función de columna que rutina puede ser una función definida por el
no soporta las palabras clave DISTINCT o usuario o un método definido por el usuario.
ALL, elimine las palabras clave. Respuesta del Usuario: El usuario deberá
v Si se utiliza la función de columna, se comprender el significado del error. Póngase en
producirá un problema con la resolución de contacto con el Administrador de bases de datos
función. Compruebe la vía de acceso de la o con el autor de la rutina.
función para ver si la función deseada está en
alguno de los esquemas, y compruebe también Todos los errores detectados por las funciones
el catálogo SYSFUNCTIONS para ver cómo se suministradas por IBM en el esquema SYSFUN
deletrea el nombre de la función y para ver el devuelven SQLSTATE 38552. El texto del mensaje
número de parámetros y su tipo. tiene este formato:
SYSFUN:nn
Corrija el error y vuelva a intentarlo.
donde nn es un código de razón que significa:
sqlcode: -441
01 Valor numérico fuera de rango
sqlstate: 42601 02 División entre cero
03 Desbordamiento o subdesbordamiento
aritmético
04 Formato de fecha no válido
05 Formato de hora no válido

84 Consulta de mensajes, Volumen 2


06 Formato de indicación de la hora no ″<biblioteca-o-vía de acceso>″ es más
válido largo que el máximo permitido (255
bytes). Hay que modificar la definición
07 Representación de carácter no válido de
de la rutina para especificar una vía de
duración de indicación de la hora
acceso más corta o el nombre de la vía
08 Tipo de intervalo no válido (debe ser 1, de acceso de la instancia de DB2 es
2, 4, 8, 16, 32, 64, 128 o 256) demasiado larga. Consulte la definición
del catálogo para determinar en cuál de
09 Serie demasiado larga los dos casos se encuentra. Puede que
10 Longitud o posición en la función de sea necesario mover el cuerpo de la
serie fuera de rango función a un directorio con un nombre
de vía de acceso más corto.
11 Representación de carácter no válido de
un número de coma flotante 2 No se ha podido recuperar de DB2 el
nombre de la vía de acceso de la
sqlcode: -443 instancia de DB2. Póngase en contacto
con el administrador del sistema.
sqlstate: 38xxx (el SQLSTATE devuelto por la 3 No se ha podido encontrar la vía de
rutina). acceso ″<biblioteca-o-vía de acceso>″.
Póngase en contacto con el autor de la
SQL0444N La rutina “<nombre-rutina>” rutina o con el administrador de la base
(nombre específico de datos. Hay que corregir la definición
“<nombre-específico>” se de la rutina o la ubicación de la rutina.
implementa con código en la 4 No se ha podido encontrar el archivo de
biblioteca o vía de acceso ″<biblioteca-o-vía de acceso>″. Póngase
“<biblioteca-o-vía-de-acceso>”, de en contacto con el autor de la rutina o
la función “<id-código-función>” con el administrador de la base de
a la que no puede accederse. datos. Puede que sea necesario corregir
Código de razón: “<código>”. la definición de la rutina o la ubicación
Explicación: El DBMS está intentando acceder de la rutina o puede que se tenga que
al cuerpo del código que implementa la rutina volver a enlazar la rutina.
“<nombre-rutina>” (nombre específico En OS/2 este código de razón puede
“<nombre-específico>”) y no puede acceder al surgir si el nombre de DLL de UDF es
mismo por la razón indicada por el código de más largo que el formato (8.3). Por
razón “<código>” (los códigos se listan abajo). El ejemplo el nombre ″[Link]″
archivo que implementa la función se identifica tiene el formato (10.3) y daría como
por “<biblioteca-o-vía de acceso>” y la función resultado este mensaje con el código de
por el “<id-código-función>”. razón 4. La solución es cambiar el
(Tenga en cuenta que estos dos últimos símbolos nombre por un formato aceptable, por
pueden aparecer truncados debido a las ejemplo, ″[Link]″.
limitaciones en la longitud total de símbolos que Aparte de lo anteriormente mencionado,
se pueden suministrar. Si eso sucede, puede ser se puede obtener este código de razón si
necesario acceder a la definición de la rutina en la rutina necesita una biblioteca
los catálogos para poder determinar la biblioteca compartida o una DLL y si no se puede
y vía de acceso completa y el id de código de localizar la biblioteca compartida
función definidos para la rutina.) (utilizando la concatenación de
Respuesta del Usuario: Códigos de razón: directorios especificados en la variable
de entorno LIBPATH en sistemas
1 El nombre de la vía de acceso

Capítulo 2. Mensajes SQL 85


basados en el sistema UNIX, la variable 9 No había suficiente memoria para
de entorno PATH en sistemas INTEL). resolver el nombre de función
Pueden haber múltiples niveles de esta ″<id-código-función>″ en la biblioteca
falta de dirección que lleven a este identificada en ″<biblioteca-o-vía de
código de razón. Por ejemplo, se puede acceso>″. Póngase en contacto con el
buscar la rutina cuerpo X y necesita la autor de la rutina o con el
biblioteca compartida Y que también se administrador de la base de datos para
puede buscar. Pero Y necesita a Z y no asegurarse de que la biblioteca que
se puede localizar Z, lo que da como contiene la función está correctamente
resultado SQL0444N código de razón 4. enlazada. Puede ser necesario cambiar la
configuración del sistema para aumentar
5 No hay suficiente memoria para cargar
la memoria disponible para el servidor
la biblioteca que contiene la función o
de DB2.
no se han podido resolver uno o varios
símbolos. Póngase en contacto con el 10 La llamada del sistema loadquery ha
creador de la rutina o con el fallado. Esto sólo puede suceder en
administrador de la base de datos para sistemas basados en UNIX, y pone de
asegurarse de que la biblioteca se ha manifiesto que el gestor de bases de
enlazado correctamente. Todas las datos no se ha instalado correctamente.
bibliotecas necesarias para resolver Póngase en contacto con el
símbolos referenciados como, por administrador del sistema.
ejemplo, funciones externas, deben estar
11 El proceso agente está buscando una
disponibles. Si se determina que falta
determinada función del gestor de bases
memoria, puede ser necesario cambiar
de datos que debería estar en la
la configuración del sistema para
biblioteca libdb2.a, pero no la encuentra.
aumentar la memoria disponible para
Esto sólo puede suceder en sistemas
DB2.
basados en UNIX, y pone de manifiesto
6 No se ha podido encontrar la función que el gestor de bases de datos no se ha
″<id-código-función>″ en el módulo instalado correctamente. Póngase en
mencionado. Póngase en contacto con el contacto con el administrador del
autor de la rutina o con el sistema.
administrador de la base de datos. Hay
15 Se ha denegado el acceso. Esto puede
que corregir la definición de la rutina o
ocurrir en entornos de Windows NT si
la misma función.
la especificación EXTERNAL NAME de
7 El símbolo proporcionado como nombre la sentencia de definición de rutina no
de función (<id-código-función>″) no es especifica una vía de acceso completa, o
el nombre de una función válida en la no existe la función en el directorio
biblioteca mencionada.Póngase en nombre_instancia\función, por lo que se
contacto con el autor de la rutina o con necesita una búsqueda utilizando la
el administrador de la base de datos. variable de entorno PATH. Por ejemplo,
Hay que corregir la definición de la si PATH contiene una unidad LAN
rutina o la misma función. anterior al directorio que contiene la
función y la instancia de DB2 está
8 Ha fallado la carga (″load″) de la
ejecutando bajo la cuenta SYSTEM,
función del sistema por una razón que
puede originarse este código de razón.
no es ninguna de las mencionadas
anteriormente. Puede ser que el módulo otros: Se ha producido una anomalía del
no estuviera enlazado o que no sistema no identificada. Anote el código
estuviera enlazado correctamente. y consulte al administrador del sistema.

86 Consulta de mensajes, Volumen 2


Si no se puede diagnosticar el error utilizando la
SQL0447W La sentencia contiene
información de este mensaje, el archivo de
especificaciones redundantes que
anotaciones cronológicas de diagnóstico
implican la cláusula “<cláusula>”.
[Link] contiene información sobre
anomalías que puede ser de ayuda para Explicación: La palabra clave “<cláusula>” se
identificar el problema. Puede que sea necesario ha incluido más de una vez en la sentencia. Esta
ponerse en contacto con el administrador del es una condición de aviso.
sistema para solicitar ayuda.
Respuesta del Usuario: Si la redundancia es
intencionada o si no se detecta que cause
Usuarios del sistema federado: Si la función
ninguna consecuencia no deseada, no es
definida por el usuario es una plantilla de
necesaria ninguna respuesta. El tipo de
función (y, por lo tanto, no es necesario que
″consecuencia no deseada″ a la que se alude
ningún código resida en el servidor federado), es
incluye, por ejemplo, la omisión de alguna otra
aconsejable considerar la modificación de la
palabra clave deseada.
sentencia de SQL o las estadísticas para permitir
que esta función se evalúe en la fuente de datos sqlcode: +447
remota.
sqlstate: 01589
sqlcode: -444
SQL0448N Error al definir la rutina
sqlstate: 42724 “<nombre-rutina>”. Se ha
superado el número máximo de
parámetros permisibles (90 para
SQL0445W Se ha truncado el valor “<valor>”. funciones definidas por el usuario
Explicación: Una función de conversión y métodos / 32767 para
(incorporada) o de ajuste del sistema ha truncado procedimientos almacenados).
el valor “<valor>”, la cual se ha llamado para Explicación: Se han especificado demasiados
transformar de alguna manera el valor. Esta es parámetro al definir la rutina “<nombre-rutina>”.
una situación de aviso. La sentencia de definición de la rutina puede ser
El valor que se transforma es la salida de una CREATE FUNCTION, CREATE PROCEDURE,
rutina (función definida por el usuario (UDF) o CREATE TYPE (definición de método) o ALTER
método) y se transforma debido a una TYPE (definición de método).
especificación CAST FROM en la definición de la Respuesta del Usuario: Modifique la sentencia
rutina o porque la UDF es origen en otra función para que incluya menos parámetros.
y se necesita el resultado para que se pueda
transformar. sqlcode: -448

Respuesta del Usuario: Asegúrese de que la sqlstate: 54023


salida es tal como se esperaba y de que el
truncamiento no ha tenido ninguna consecuencia
SQL0449N La sentencia que define la rutina
inesperada.
“<nombre-rutina>” contiene una
sqlcode: +445 identificación de
biblioteca/función con formato no
sqlstate: 01004 válido en la cláusula EXTERNAL
NAME.
Explicación: Se ha encontrado un error en la
cláusula EXTERNAL NAME de la sentencia
CREATE para la función definida por el usuario
(UDF), método definido por el usuario o

Capítulo 2. Mensajes SQL 87


procedimiento almacenado “<nombre-rutina>”. como por ejemplo VARCHAR(n) y el nulo
Las normas para la identificación de delimitador no estaba dentro del rango del
biblioteca/función son las siguientes: tamaño definido.
El nombre toma el formato ’<a>!<b>’ o ’<a>’. No – DB2 espera un valor de longitud de dos o
se permiten blancos dentro de las comillas cuatro bytes antes del valor, y esta longitud
simples. <a> es uno de los siguientes: sobrepasa el tamaño definido del resultado.
v la identificación de la vía de acceso completa – La rutina devuelve un localizador de LOB y
de un archivo (por ejemplo, (en AIX) la longitud del valor de LOB asociado con
/u/slick/udfs/math o (en OS/2) este localizador supera el tamaño definido
d:\myfunc\math) del resultado.
v un nombre de archivo (por ejemplo math) del
La definición del argumento de resultado en la
que se asume que está en el directorio de
rutina debe ajustarse al requisito del tipo de
’función’ del directorio sqllib.
datos. Consulte el manual Application
Si se omite <b>, el valor por omisión es el punto Development Guide para obtener más
de entrada definido cuando se ha enlazado el información.
archivo mencionado. Si <b> está presente, v el valor de SQLSTATE (6 bytes incluyendo el
identifica el punto de entrada (función) dentro de terminador nulo)
<a> que se invocará como el cuerpo de la rutina.
v el texto del mensaje (71 bytes incluyendo el
Respuesta del Usuario: Corrija el problema y terminador nulo).
vuelva a intentarlo. Una de las causas posibles v el contenido del bloc de trabajo (longitud
en la inclusión de un blanco o la inclusión de ’!’ declarada en CREATE FUNCTION).
al principio o al final del nombre.
Esto no está permitido.
sqlcode: -449
sqlstate: 42878 Este error también será devuelto si la rutina
altera el campo longitud del bloc de trabajo.

SQL0450N La rutina “<nombre-rutina>” Respuesta del Usuario: Póngase en contacto


(nombre específico con el Administrador de bases de datos o con el
“<nombre-específico>”) ha autor de la rutina.
generado un valor de resultado, sqlcode: -450
valor SQLSTATE, el texto de
mensaje o un bloc de trabajo que sqlstate: 39501
es demasiado largo.
Explicación: En la devolución de una rutina SQL0451N La definición “<elemento-datos>”,
“<nombre-rutina>” (nombre específico en la sentencia que define la
“<nombre-específico>”), DB2 ha detectado que se rutina “<nombre-rutina>”,
han devuelto más bytes de los que se han contiene un tipo de datos
asignado para: “<tipo>” que no es correcto para
v el valor de resultado (basado en la definición una rutina sin fuente escrita en el
de rutina). Existen varias causas posibles: lenguaje dado.
– Se han desplazado demasiados bytes al Explicación: Se ha cometido un error en la parte
almacenamiento intermedio de resultados. “<elemento-datos>” de la sentencia que definía
– El tipo de datos es del tipo en que el valor la rutina “<nombre-rutina>”. La sentencia del
de datos debe estar delimitado por un nulo, usuario contenía el tipo no válido “<tipo>” o
contenía un tipo definido por el usuario (UDT)
que se basa en el tipo no válido “<tipo>”. La

88 Consulta de mensajes, Volumen 2


definición de la rutina puede ser CREATE crearlo.
FUNCTION, CREATE PROCEDURE, CREATE SQL_FILE_APPEND -añadir a un archivo existente.
TYPE (definición de método) o ALTER TYPE Si el archivo no existe,
(definición de método). crearlo.
v 03 - No se encuentra el archivo.
“<elemento-datos>” es un símbolo que identifica
el área del problema en la sentencia. Por ejemplo, v 04 - Se ha especificado la opción
″PARAMETER 2″, ″RETURNS″ o ″CAST FROM″. SQL_FILE_CREATE para un archivo con el
mismo nombre que un archivo existente.
Respuesta del Usuario: Averigüe en cuál de las
v 05 - Se ha denegado el acceso al archivo. El
situaciones se encuentra y siga la acción
usuario no tiene permiso para abrir el archivo.
correctiva. Acciones correctivas posibles:
v 06 - Se ha denegado el acceso al archivo. Se
v Modificar la definición de la función a un tipo
está utilizando el archivo con modalidad
al que se de soporte, por ejemplo, de
incompatible. Los archivos en los que se debe
DECIMAL a FLOAT. Esto puede implicar un
grabar están abiertos en modalidad exclusiva.
cambio en el cuerpo de la rutina y también
puede implicar la utilización de funciones de v 07 - Al grabar en el archivo se ha encontrado
conversión debido al uso de la rutina. que el disco está lleno.
v Crear un tipo definido por el usuario v 08 - Se ha encontrado un fin de archivo
(adecuado) o cambiar la definición de un UDT inesperado al leer el archivo.
existente. v 09 - Se ha encontrado un error de soporte de
almacenamiento al acceder al archivo.
sqlcode: -451
v 10 - Se ha encontrado un carácter de varios
sqlstate: 42815 bytes incompleto o no válido al leer el archivo.
v 11 - Se ha encontrado un error al convertir
datos de la página de códigos del archivo a la
SQL0452N No se puede acceder al archivo al página de códigos de caracteres gráficos de la
que hace referencia la variable de aplicación.
sistema principal
“<posición-variable>”. Código de Respuesta del Usuario:
razón: “<código-razón>”.
Para el código de razón 01, corrija la longitud del
Explicación: Se ha encontrado un error al nombre del archivo, el nombre del archivo y/o la
intentar acceder o mientras se accedía al archivo vía de acceso.
al que hace referencia la variable enésima del
Para el código de razón 02, especifique una
sistema principal, donde n =
opción de archivo válida.
″<posición-variable>″, por la razón indicada por
″<código-razón>″. <posición-variable> se Para el código de razón 03, asegúrese de que el
establece en 0 si no se ha podido determinar la archivo especificado existe antes de intentar
posición de la variable del sistema principal. Los acceder al mismo.
códigos de razón posibles son los siguientes:
Para el código de razón 04, suprima el archivo si
v 01 - La longitud del nombre del archivo no es ya no lo necesita o especifique un nombre de
válida o el nombre del archivo y/o la vía de archivo que no exista actualmente.
acceso tienen un formato no válido.
Para el código de razón 05, asegúrese de que el
v 02 - La opción del archivo no es válida. Debe
usuario tiene acceso (corrija los permisos de
tener uno de los valores siguientes:
archivo) al archivo.
SQL_FILE_READ -leer de un archivo existente
SQL_FILE_CREATE -crear un archivo nuevo paraPara
grabar
el código de razón 06, utilice otro archivo o,
SQL_FILE_OVERWRITE -sobregrabar un archivo existente.
si debe acceder al archivo, modifique la
Si el archivo no existe, aplicación para asegurarse de que no se accede al

Capítulo 2. Mensajes SQL 89


archivo simultáneamente. Respuesta del Usuario: Cambie la cláusula
RETURNS o CAST FROM para que el tipo de
Para el código de razón 07, suprima los archivos
datos CAST FROM se pueda convertir en el tipo
que ya no necesite para liberar espacio de disco
de datos RETURNS.
o especifique un archivo que resida en otro
sistema de archivos/unidades con suficiente sqlcode: -453
espacio de disco. Asimismo, cerciórese de que el
sqlstate: 42880
sistema operativo o el tamaño del archivo del
usuario no haya alcanzado el límite permitido. Si
la página de códigos de la aplicación utiliza un SQL0454N La signatura especificada en la
esquema de codificación de múltiples bytes, es definición para la rutina
posible que sólo se grabara la parte del último “<nombre-rutina>” coincide con
carácter, compruebe que el archivo sólo contiene la de alguna otra rutina que
caracteres con formato completo. también existe en el esquema o
para el tipo.
Para el código de razón 08, si hay que utilizar un
archivo como entrada, asegúrese de que no se Explicación: La signatura de una función consta
modifica el archivo antes de que se haya del nombre de función, el número de parámetros
terminado de leer. definidos para la función y una lista clasificada
de los tipos de parámetros (sin relación con
Para el código de razón 09, corrija todos los
ninguno de los parámetros de los tipos).
errores del soporte de almacenamiento en el que
reside el archivo. La signatura de un método consta del nombre
del método, el tipo de tema del método, el
Para el código de razón 10, compruebe que el
número de parámetros definidos para el método
archivo contiene caracteres válidos de múltiples
y una lista clasificada de los tipos de parámetros
bytes basados en la página de códigos de la
(sin relación con ninguno de los parámetros de
aplicación, o bien someta la solicitud mientras se
los tipos).
esté ejecutando con la misma página de códigos
que el contenido del archivo. La signatura de un procedimiento consta del
nombre de procedimiento y del número de
Para el código de razón 11, asegúrese de que se
parámetros definidos para el procedimiento (los
ha instalado el soporte de conversión entre la
tipos de datos no se tienen en cuenta).
página de códigos del archivo, por ejemplo, EUC
japonés y la página de códigos de gráficos de la En este caso:
aplicación, por ejemplo, UCS-2. v o bien ya existe una función o procedimiento
sqlcode: -452 (“<nombre-rutina>”) en el esquema que tiene
la misma signatura que la función o
sqlstate: 428A1 procedimiento que se está creando.
v o bien hay un método (“<nombre-rutina>”)
SQL0453N Se ha identificado un problema para el tipo de tema que tiene la misma
con la cláusula RETURNS de la signatura que la especificación de método que
sentencia que define la rutina se está añadiendo o el cuerpo del método que
“<nombre-rutina>”. se está creando.
Explicación: Se ha identificado un problema de No se puede procesar la sentencia.
conversión de la rutina “<nombre-rutina>”. El
Respuesta del Usuario: Averigüe si la rutina
tipo de datos CAST FROM no se puede convertir
existente ya cumple la función deseada. Si no lo
en el tipo de datos RETURNS, aunque debería
hace, la signatura de la rutina tendrá que
ser posible. Consulte el manual Consulta de SQL
modificarse, por ejemplo, cambiando el nombre
para obtener detalles de la conversión entre tipos
de la rutina.
de datos.

90 Consulta de mensajes, Volumen 2


sqlcode: -454
SQL0457N Una función, un método, un tipo
sqlstate: 42723 de datos definido por el usuario o
un atributo de tipo de datos
estructurados no se puede llamar
SQL0455N En la rutina “<nombre-rutina>”, ″<nombre>″ porque está reservado
el nombre de esquema para uso del sistema.
“<nombre-esquema1>”
proporcionado por el nombre Explicación: No puede crearse la función
SPECIFIC no coincide con el definida por el usuario, el método o el tipo de
nombre de esquema datos definidos por el usuario porque un nombre
“<nombre-esquema2>” de la especificado está reservado para el uso del
rutina. sistema. Los nombres que no pueden utilizarse
para los nombres de función, nombres de tipo
Explicación: Si el nombre SPECIFIC se diferenciado, nombres de tipo estructurado ni
especifica como un nombre de dos partes, la nombres de atributo son:
porción “<nombre-esquema1>” debe ser igual a
la porción “<nombre-esquema2>” del "=","<",">",">=","<=","&=","&>",,"&<",
"!=","!>","!<","<>", SOME, ANY, ALL, NOT,
“<nombre-rutina>”. Tenga en cuenta que la
AND, OR, BETWEEN, NULL, LIKE, EXISTS, IN,
porción “<nombre-esquema2>” de UNIQUE, OVERLAPS, SIMILAR y MATCH.
“<nombre-rutina>” puede haberse especificado
directamente o puede haber tomado por omisión Respuesta del Usuario: Seleccione un nombre
el ID de autorización de la sentencia. Si la rutina para la función, método, tipo de datos definidos
es un método, “<nombre-esquema>” hace por el usuario o atributo de tipo de datos
referencia al nombre del esquema del tipo de estructurados que no esté reservado para que lo
tema del método. utilice el sistema.
Respuesta del Usuario: Corrija la sentencia y sqlcode: -457
vuelva a intentarlo.
sqlstate: 42939
sqlcode: -455
sqlstate: 42882 SQL0458N En una referencia a la rutina
“<nombre-rutina>” realizada por
la signatura, no se ha encontrado
SQL0456N En la definición de la rutina ninguna rutina coincidente.
“<nombre-rutina>”, el nombre
SPECIFIC “<nombre-específico>” Explicación: En una referencia realizada a la
ya existe en el esquema. función, método o procedimiento almacenado
“<nombre-rutina>” por la signatura, no se ha
Explicación: El usuario ha suministrado un podido encontrar ninguna función, ni método ni
nombre SPECIFIC explícito “<nombre- procedimiento almacenado coincidente.
específico>” en la definición de la rutina
“<nombre-rutina>”, pero este nombre ya existe Si se usa un tipo de datos que puede aceptar un
como el nombre SPECIFIC de una función, parámetro, el tipo de parámetro es opcional. Por
método o procedimiento del esquema. ejemplo, para CHAR(12), se puede especificar el
parámetro (CHAR(12) u omitirlo (CHAR()). Si
Respuesta del Usuario: Elija un nuevo nombre especifica el parámetro, el DBMS sólo aceptará
SPECIFIC y vuelva a intentarlo. una coincidencia exacta en el tipo de datos Y el
sqlcode: -456 parámetro del tipo de datos. Si omite el
parámetro, DBMS aceptará una coincidencia sólo
sqlstate: 42710 en el tipo de datos. La sintaxis de CHAR()
proporciona un modo de decir a DBMS que

Capítulo 2. Mensajes SQL 91


ignore los parámetros de tipo de datos al buscar un tipo de datos diferenciado definido por el
una función coincidente. usuario, la conversión se puede efectuar entre el
tipo de datos base y el tipo diferenciado definido
Tenga también en cuenta que en las sentencias
por el usuario, o bien desde el tipo de datos
DROP FUNCTION/PROCEDURE y COMMENT
promocionable al tipo de datos base y al tipo de
ON FUNCTION/PROCEDURE, una referencia
datos diferenciado definido por el usuario.
no calificada se califica con el ID de autorización
de la sentencia, y este es el esquema en que se sqlcode: -461
puede encontrar el problema. En la cláusula
sqlstate: 42846
SOURCE de una función CREATE, la calificación
procede de la vía de acceso actual de la función.
En este caso, no hay una función correspondiente SQL0462W La rutina “<nombre-rutina>”
en toda la vía de acceso. (nombre específico
“<nombre-específico>”) ha
Una función no se puede originar en las
devuelto un SQLSTATE de aviso,
funciones incorporadas COALESCE, NULLIF,
con el texto de diagnóstico
NODENUMBER, PARTITION, RAISE_ERROR,
“<texto>”.
TYPE_ID, TYPE_NAME, TYPE_SCHEMA o
VALUE. Explicación: La rutina “<nombre-rutina>”
(nombre específico “<nombre-específico>”), ha
No se puede procesar la sentencia.
devuelto a DB2 un SQLSTATE del tipo 01Hxx
Respuesta del Usuario: Respuestas posibles: junto con el texto de mensaje “<texto>”.
v Cambiar la vía de acceso de la función para Respuesta del Usuario: El usuario deberá
incluir el esquema correcto. comprender el significado del aviso. Póngase en
v Eliminar parámetros de las especificaciones de contacto con el administrador de bases de datos
los tipos de datos. o con el autor de la rutina.
v Utilizar un nombre SPECIFIC para hacer sqlcode: +462
referencia a la función o procedimiento en
lugar de una signatura. sqlstate: 01Hxx

sqlcode: -458
SQL0463N La rutina “<nombre-rutina>”
sqlstate: 42883 (nombre específico
“<nombre-específico>”) ha
devuelto el SQLSTATE
SQL0461N Un valor con el tipo de datos “<estado>” no válido, con el texto
“<tipo-datos-fuente>” no se puede de diagnóstico “<texto>”.
convertir (CAST) en el tipo
“<tipo-datos-destino>”. Explicación: Los SQLSTATE válidos que puede
devolver una rutina son 38xxx (error), 38502
Explicación: La sentencia contiene una (error) y 01Hxx (aviso). Esta rutina
operación CAST cuyo primer operando tiene el “<nombre-rutina>” (nombre específico
tipo de datos “<tipo-datos-fuente>” que se ha de “<nombre-específico>”) ha devuelto el
convertir en el tipo de datos SQLSTATE “<estado>” no válido, junto con el
“<tipo-datos-destino>”. No se soporta esta texto de mensaje “<texto>”. La rutina tiene un
conversión. error.
Respuesta del Usuario: Cambie el tipo de datos Respuesta del Usuario: Hay que corregir la
fuente o destino para que se de soporte a la rutina. Póngase en contacto con el administrador
conversión. Dicha operación está documentada de bases de datos o con el autor de la rutina.
en la Consulta de SQL para tipos de datos Puede obtener el significado de aplicación del
predefinidos. Para una conversión que incluya SQLSTATE erróneo del autor de la rutina.

92 Consulta de mensajes, Volumen 2


sqlcode: -463 en modalidad protegida (método o función
definida por el usuario). La naturaleza exacta del
sqlstate: 39001
problema viene indicada por “<código>”. NO es
un problema del usuario. Los códigos de razón
SQL0464W El procedimiento “<proc>” ha posibles son:
devuelto “<número>” grupos de
Errores de proceso de la rutina
resultados de consultas, lo que
excede el límite definido 21: No se han podido inicializar datos
“<entero>”. internos o datos de la aplicación.
Explicación: El procedimiento almacenado 22: No se han podido registrar manejadores
mencionado por proc se ha completado de señales.
normalmente. Sin embargo, el procedimiento
23: No se ha podido garantizar al proceso
almacenado ha excedido el límite definido en el
de agente el permiso de acceso para el
número de grupos de resultados de consultas
REQUEST QUEUE.
que el procedimiento puede devolver.
24: No se ha podido conectar con la
número
Memoria compartida del proceso de la
identifica el número de grupos de
rutina.
resultados de consultas devueltos por el
procedimiento almacenado. 25: No se ha podido abrir el REPLY
QUEUE.
entero identifica el límite definido en el
número de grupos de resultados de 26: No se ha podido grabar en el REPLY
consultas para el procedimiento QUEUE.
almacenado.
27: No se ha podido crear el REQUEST
QUEUE.
Sólo se devuelven los grupos de resultados de
consultas del primer entero al programa SQL que 28: No se ha podido leer el REQUEST
ha emitido la sentencia de SQL CALL. QUEUE.
29: El proceso de la rutina ha terminado
Las causas posibles son las siguientes: El
anormalmente.
procedimiento almacenado no puede devolver el
número de grupos de resultados debido a las 30: El proceso de la rutina ha captado una
limitaciones de DRDA impuestas por el cliente. señal USER INTERRUPT.
El cliente DRDA establece este límite con el
elemento de código MAXRSLCNT DDM. 31: No se ha podido descargar el módulo
de la rutina.
Respuesta del Usuario: La sentencia de SQL es
satisfactoria. El campo SQLWARN9 se establece 32: No se ha podido asignar
en ’Z’. almacenamiento a los bloques de control
que se utilizan al cargar/descargar
sqlcode: +464 módulos.
sqlstate: 0100E 33: No se ha podido enviar SIGINT desde
el proceso agente al proceso de la
rutina.
SQL0465N No se puede iniciar, inicializar o
establecer comunicación con un 34: No se ha podido inicializar la biblioteca
proceso en modalidad protegida. OLE.
Código de razón “<código>”.
35: No se ha podido inicializar el
Explicación: Hay un problema relacionado con
el sistema que afecta a la ejecución de una rutina

Capítulo 2. Mensajes SQL 93


Componente de servicio de
SQL0466W El procedimiento
inicialización OLE DB.
“<nombre-procedimiento>”
40: Se ha producido un error interno en el devuelve el conjunto de
proceso de la rutina. resultados “<número-resultados>”
del procedimiento almacenado.
Errores del proceso agente Explicación: Este mensaje se genera como
41: Error al producir el proceso de la rutina. resultado de emitir una sentencia CALL de SQL.
Indica que el procedimiento almacenado
42: No se ha podido crear el REPLY “<nombre-procedimiento>” tiene el conjunto de
QUEUE. resultado “<número-resultados>” asociado con
43: No se ha podido leer el REPLY QUEUE. él.

44: No se ha podido abrir el REQUEST La sentencia ha terminado satisfactoriamente.


QUEUE. Respuesta del Usuario: No se requiere ninguna
45: No se ha podido grabar en el REQUEST acción.
QUEUE. sqlcode: +466
47: No se ha podido garantizar al proceso sqlstate: 0100C
de la rutina el permiso de acceso al
grupo de memoria compartida del
UDFP. SQL0467W El procedimiento
“<nombre-procedimiento>”
48: No se ha podido garantizar al proceso incluye otro conjunto de
de la rutina el permiso de acceso al resultados. Hay un total de
REPLY QUEUE. “<número-resultados>” conjuntos
49: No se ha podido asignar de resultados.
almacenamiento a los bloques de control Explicación: Este mensaje se genera como
que se utilizan al cargar/descargar resultado de cerrar un cursor. Indica que existe
módulos. otro conjunto de resultados para un
50: Se ha parado el proceso agente al procedimiento almacenado “<nombre-
ejecutar el código de la rutina o el procedimiento>” y que el cursor se volvió a abrir
código agente. en el siguiente conjunto de resultados. Hay un
total de “<número-resultados>” conjuntos de
51: El proceso agente alcanza un USER resultados del procedimiento almacenado.
INTERRUPT al ejecutar un código de
rutina no protegido. La sentencia ha terminado satisfactoriamente.

60: Se ha producido un error interno en el Respuesta del Usuario: No se requiere ninguna


proceso de la rutina. acción. Las búsquedas y cargas se pueden
realizar en el siguiente conjunto de resultados.
Respuesta del Usuario: Póngase en contacto
con el administrador de la base de datos o con el sqlcode: +467
administrador del sistema. sqlstate: 0100D
sqlcode: -465
sqlstate: 58032

94 Consulta de mensajes, Volumen 2


SQL0469N La modalidad del parámetro (IN, SQL0471N Ha fallado la invocación de la
OUT o INOUT) no es válida para rutina “<nombre>” debido a la
un parámetro en el procedimiento razón “<código-razón>”.
“<nombre-procedimiento>” con el
Explicación: Se invocó una rutina “<nombre>”
nombre específico
en DB2 Universal Database para el servidor
“<nombre-específico>” (número
OS/390. La invocación de la rutina falló debido a
de parámetro “<número>”,
la condición descrita por el código de razón de
nombre “<nombre-parámetro>”).
DB2 “<código-razón>”.
Explicación: Se ha producido uno de los errores
No se puede ejecutar la sentencia. Quizá se
siguientes:
visualice un mensaje DSNX9xx describiendo el
v un parámetro en un procedimiento SQL se ha error en la consola del sistema de MVS.
declarado como OUT y se ha utilizado como
entrada en el cuerpo del procedimiento Respuesta del Usuario: Consulte la
documentación de DB2 Universal Database para
v un parámetro en un procedimiento SQL se ha
el servidor OS/390 y corrija la condición que se
declarado como IN y se ha modificado en el
describe con el código de razón de DB2.
cuerpo del procedimiento
sqlcode: -471
Respuesta del Usuario: Modifique el atributo
del parámetro a INOUT o modifique el uso del sqlstate: 55023
parámetro dentro del procedimiento.
sqlcode: -469 SQL0473N No se puede crear un tipo de
datos definido por el usuario que
sqlstate: 42886
tenga el mismo nombre que el
tipo predefinido por el sistema.
SQL0470N La rutina definida por el usuario
Explicación: Se ha intentado crear un tipo de
“<nombre-rutina>” (nombre
datos y se le ha otorgado un nombre calificado
específico “<nombre-específico>”)
igual a uno de los tipos de datos predefinidos
tiene un valor nulo para el
por el sistema o bien el tipo de datos BOOLEAN.
argumento “<argumento>” que no
Esto no está permitido. La adición de
ha podido pasarse.
delimitadores no valida el nombre.
Explicación: Una rutina tiene un argumento de
No se ha podido procesar la sentencia.
entrada con un valor nulo pero se ha definido
con un estilo de parámetro que no pasa Respuesta del Usuario: Corrija la sentencia para
indicadores nulos o el tipo de datos de este que utilice otro identificador.
parámetro no da soporte a valores nulos.
sqlcode: -473
Respuesta del Usuario: Si la rutina se debe
llamar con valores nulos, asegúrese de que el sqlstate: 42918
estilo de parámetro y los tipos de entrada
pueden aceptar un valor nulo. En el caso de SQL0475N El tipo resultante “<tipo-1>” de la
funciones, la función también se puede crear con función SOURCE no puede
″RETURNS NULL ON NULL INPUT″. convertirse al tipo RETURNS
sqlcode: -470 “<tipo-2>” de la función definida
por el usuario
sqlstate: 39004 “<nombre-función>”.
Explicación: Para que la sentencia CREATE de
una función definida por el usuario (UDF) sea
válida, el tipo resultante (“<tipo-1>”) de la

Capítulo 2. Mensajes SQL 95


función origen debe poderse convertir al tipo v utilizando el nombre SPECIFIC de la rutina
RETURNS (“<tipo-2>”) de la función que se está que desea
creando. No se da soporte a ninguna conversión v cambiando la vía de acceso SQL
entre estos tipos de datos. Consulte el manual
Consulta de SQL para obtener detalles de la y vuelva a intentarlo.
conversión entre tipos de datos.
sqlcode: -476
Respuesta del Usuario: Cambie el tipo de datos
RETURNS o la identificación de función
sqlstate: 42725
SOURCE de modo que el tipo de resultado de la
función SOURCE se pueda convertir en el tipo
de datos RETURNS. SQL0478N El tipo de objeto “<tipo-objeto1>”
no se puede eliminar porque hay
sqlcode: -475
un objeto “<nombre-objeto>” del
sqlstate: 42866 tipo “<tipo-objeto2>”, que
depende del mismo.

SQL0476N Se ha efectuado una referencia a Explicación: El objeto base, que es un objeto de


la rutina “<nombre-función>” sin tipo “<tipo-objeto1>” no se puede eliminar
ninguna signatura, pero la rutina porque otro objeto depende de él. Existe una
no es exclusiva en su esquema. dependencia restrictiva definida con objetos de
tipo “<tipo-objeto2>” (de la cual el objeto
Explicación: Se permiten las referencias a una “<nombre-objeto>” es un ejemplo).
función o procedimiento almacenado sin una
signatura, pero la función o procedimiento Es posible que la dependencia sea indirecta. Es
almacenado “<nombre-función>” mencionado decir, es posible que el objeto mencionado
debe ser exclusivo en su esquema y no lo es. Si dependa de otro objeto que a su vez dependa del
la rutina es un método, se permite una referencia objeto que se va a eliminar.
sin una signatura pero este método nombrado
Por ejemplo:
debe ser exclusivo para el tipo de datos.
v la función F1 se origina en la función F2
Tenga en cuenta que en las sentencias DROP
v la tabla V1 se define mediante F1
FUNCTION/PROCEDURE y COMMENT ON
FUNCTION/PROCEDURE, una referencia no v se producirá un error al intentar eliminar F2
calificada se califica con el ID de autorización de debido a la dependencia directa de F1 con
la sentencia, lo que constituye el esquema en el respecto a F2 y a la la dependencia indirecta
que se encuentra el problema. En la cláusula de V1 con respecto a F2
SOURCE de CREATE FUNCTION, la calificación Respuesta del Usuario: No descarte este objeto
se obtiene de la vía de acceso de función actual. o descarte primero los objetos dependientes.
En este caso, el primer esquema de la vía de
acceso que contenía una función con este nombre sqlcode: -478
tenía otras funciones con el mismo nombre. sqlstate: 42893
Usuarios del sistema federado: Para una sesión
de paso a través, si la sentencia es una sentencia SQL0480N El procedimiento
CREATE FUNCTION MAPPING, este error “<nombre-procedimiento>”
indica que se ha intentado crear una correlación todavía no se ha llamado.
de funciones desde una función remota para más
de una función local. Explicación: El procedimiento identificado en
una sentencia ASSOCIATE LOCATORS todavía
Respuesta del Usuario: Corrija la referencia de no se ha llamado dentro del proceso de
una de las siguientes formas: aplicación o el procedimiento se ha llamado, pero
v completando la signatura

96 Consulta de mensajes, Volumen 2


se ha producido una confirmación explícita o
SQL0483N En la sentencia CREATE para la
implícita antes de la sentencia.
sentencia de la función definida
Respuesta del Usuario: Corrija las sentencias de por el usuario
modo que la sintaxis exacta usada para “<nombre-función>”, el número
especificar el nombre del procedimiento en la de parámetros no coincide con el
sentencia CALL sea la misma que la de la número de parámetros de la
sentencia ASSOCIATE LOCATORS. Si se usa un función SOURCE.
nombre no cualificado para llamar (CALL) al
Explicación: Se está intentando crear (CREATE)
procedimiento, el nombre de una parte también
una función definida por el usuario
se debe usar en las demás sentencias. Vuelva a
“<nombre-función>” que tiene su origen en otra
emitir las sentencias.
función. Se ha identificado una de las siguientes
sqlcode: -0480 situaciones:

sqlstate: 51030 v La cláusula SOURCE utiliza un


nombre-función (lista de parámetros de
entrada) para identificar la función origen y el
SQL0481N La cláusula GROUP BY contiene número de tipos de la lista no coincide con el
el “<elemento 1>” anidado en el número de parámetros de la función que se va
“<elemento 2>”. a crear.
Explicación: Los tipos de anidamiento que no v La cláusula SOURCE utiliza una sintaxis
se permiten en la cláusula GROUP BY son los diferente para identificar la función origen y el
siguientes: número de tipos de esta función no coincide
con el número de parámetros de la función
v CUBE en CUBE, ROLLUP o GEL
que se va a crear.
v ROLLUP en CUBE, ROLLUP o GEL
Respuesta del Usuario: El número de
v () en CUBE, ROLLUP o GEL
parámetros de la función SOURCE y de la
v GROUPING SET en GROUPING SET, CUBE, función que se va a crear debe ser igual. Hay
ROLLUP o GEL que cambiar la identificación de la función
donde GEL representa el elemento que aparece SOURCE para
como lista de expresión de agrupamiento en el v corregir la lista de parámetros de entrada
diagrama de sintaxis de la cláusula GROUP BY. v corregir el nombre de la función o el nombre
específico de la función para que identifique la
En algunas instancias, aparecerá el valor “---” función adecuada.
para el “<elemento 2>”. En este caso “---”
representa CUBE, ROLLUP, GROUPING SET o También es posible que sea necesario corregir la
GEL. vía de acceso de la función para que se corrija la
resolución de la función.
No se puede procesar la sentencia.
sqlcode: -483
Respuesta del Usuario: Modifique la cláusula
GROUP BY para eliminar el anidamiento. sqlstate: 42885
sqlcode: -481
sqlstate: 428B0 SQL0486N En este momento, el tipo de datos
BOOLEAN sólo se soporta
internamente.
Explicación: Uno o más de los tipos de datos de
la sentencia es BOOLEAN. No se le da soporte
en la versión actual de DB2.

Capítulo 2. Mensajes SQL 97


Respuesta del Usuario: Cambie el(los) tipo(s)
SQL0491N La definición de la rutina
de datos y vuelva a someter la sentencia.
“<nombre-rutina>” debe tener
sqlcode: -486 una cláusula RETURNS y, o bien
la cláusula EXTERNAL (con otras
sqlstate: 42991 palabras clave necesarias), o bien
la sentencia RETURN o bien la
SQL0487N La rutina “<nombre-rutina>” cláusula SOURCE.
(nombre específico Explicación: Falta una cláusula necesaria en la
“<nombre-específico>”) ha definición de la rutina “<nombre-rutina>”. Si se
intentando ejecutar una sentencia ha especificado EXTERNAL, debe especificarse
de SQL. también lo siguiente: LANGUAGE, PARAMETER
Explicación: El programa utilizado para STYLE, DETERMINISTIC o NOT
implementar el cuerpo de una rutina no tiene DETERMINISTIC, NO SQL y EXTERNAL
permitido ejecutar sentencias de SQL. Esta rutina ACTION o NO EXTERNAL ACTION.
“<nombre-rutina>” (nombre específico Respuesta del Usuario: Añada la cláusula que
“<nombre-específico>”) contiene sentencias de falta y vuelva a intentarlo.
SQL.
sqlcode: -491
Respuesta del Usuario: Elimine las sentencias
de SQL y vuelva a compilar el programa. sqlstate: 42601
Investigue el nivel de SQL permitido, como se
especifica en la sentencia que define a la rutina.
SQL0492N Existe un problema en la
sqlcode: -487 sentencia CREATE para la función
definida por el usuario
sqlstate: 38001 “<nombre-función>”, con el
número de parámetros
SQL0489N La función ″<nombre-función>″ “<número>”. Se puede producir
de un elemento de lista SELECT o un discrepancia con una función
VALUES ha producido un SOURCE.
resultado BOOLEAN. Explicación: El parámetro de la posición
Explicación: La función ″<nombre-función>″ “<número>” de la función “<nombre-función>”
está definida para ser utilizada como un es erróneo y no se puede realizar la sentencia
predicado, que devuelve un resultado booleano. CREATE. El parámetro de la posición
Dicho resultado no es válido en una lista de “<número>” de la función de origen no se puede
selección. convertir al parámetro correspondiente de la
función que se está creando.
No se puede procesar la sentencia.
Respuesta del Usuario: Posibles correcciones:
Respuesta del Usuario: Corrija el nombre de la
v Identifique una función origen diferente.
función o elimine el uso de la misma.
v Cambie el tipo de datos del parámetro de la
sqlcode: -489 función que se está creando para que el tipo
sqlstate: 42844 de datos de la función origen pueda
convertirse en este tipo de datos.
sqlcode: -492

sqlstate: 42879

98 Consulta de mensajes, Volumen 2


cantidad_estimada1
SQL0493N La rutina “<nombre-rutina>”
La estimación (en segundos de
(nombre específico
procesador) del coste que habrá si la
“<nombre-específico>”) ha
sentencia preparada INSERT, UPDATE,
devuelto un valor de fecha, hora o
DELETE o SELECT se ejecuta.
indicación de la hora que no es
correcto sintáctica o cantidad_estimada2
numéricamente. La estimación (en unidades de servicio)
del coste que habrá si la sentencia
Explicación: El cuerpo de la función definida
preparada INSERT, UPDATE, DELETE o
por el usuario (UDF) “<nombre-rutina>”
SELECT se ejecuta.
(nombre específico “<nombre-específico>”) ha
devuelto un valor no válido de fecha, hora o categoría-coste
indicación de la hora. La categoría de coste de DB2 para esta
sentencia de SQL. Los valores posibles
Un ejemplo de una fecha sintácticamente no
son A o B.
válida es ’1994-12*25’: el ’*’ debería ser un ’-’. Un
ejemplo de una hora numéricamente no válida es cantidad-límite
’11.71.22’: una hora no puede tener el minuto 71. El umbral de error (en unidades de
servicio) especificado en la columna
Respuesta del Usuario: La rutina se tiene que
RLFASUERR de la RLST.
arreglar. Póngase en contacto con el
administrador de bases de datos (DBA) o con el
autor de la rutina. La preparación de la sentencia dinámica INSERT,
UPDATE, DELETE o SELECT no ha sido
sqlcode: -493 satisfactoria.
sqlstate: 22007 Respuesta del Usuario: Si se ha devuelto este
SQLCODE porque el valor de categoría de coste
es ″B″, puede ser que la sentencia utilice
SQL0495N El coste estimado de procesador
marcadores de parámetro o que no estén
de ″<cantidad-estimada1>″
disponibles determinadas estadísticas para las
segundos de procesador
tablas y columnas referidas. Asegúrese de que el
(″<cantidad-estimada2>″ unidades
administrador haya ejecutado el programa de
de servicio) en la categoría de
utilidad RUNSTATS para las tablas referidas.
coste ″<categoría-coste>″
También es posible que se invoquen UDF cuando
sobrepasa el umbral de error del
se ejecute la sentencia, o, en el caso de las
límite del recurso de
sentencias INSERT, UPDATE o DELETE, que se
″<cantidad-límite>″ unidades de
definan activadores en la tabla modificada.
servicio.
Compruebe si esta sentencia se encuentra en la
Explicación: DSN_STATEMNT_TABLE o en el registro IFCID
22 con el fin de averiguar las razones por las que
La preparación de una sentencia de SQL
dicha sentencia de SQL se ha colocado en la
dinámica INSERT, UPDATE, DELETE o SELECT
categoría de coste ″B″. Si no puede modificarse el
ha dado como resultado la estimación de un
programa o no pueden obtenerse estadísticas,
coste que ha sobrepasado el valor de umbral de
solicite al administrador el cambio del valor de la
error indicado en la tabla de especificación de
columna RLF_CATEGORY_B de la RLST por ″Y″,
límites de recursos (RLST).
que permite que se ejecute la sentencia, o ″W″,
También se emite este error si el valor de que devuelve un aviso en lugar de un error.
categoría de coste de DB2 es ″B″ y la acción por
Si el aviso es debido a una sentencia de SQL que
omisión especificada en la columna
va a causar un excesivo consumo del recurso del
RLF_CATEGORY_B de la RLST es de emitir un
procesador, intente volver a escribirla para que
error.

Capítulo 2. Mensajes SQL 99


pueda rendir de una manera más eficiente. Otra múltiples cursores para el procedimiento
opción es solicitar al administrador el aumento “<nombre-procedimiento>”.
del valor de umbral de error de la RLST.
Respuesta del Usuario: Determine si el juego
sqlcode: -495 de resultados de destino se había asignado
anteriormente a un cursor. Si se han asignado
sqlstate: 57051
múltiples cursores para el procedimiento
“<nombre-procedimiento>” asegúrese de que
SQL0499N El cursor “<nombre-cursor>” ya se sólo se utiliza un cursor para procesar los grupos
ha asignado a este o a otro grupo de resultados de un procedimiento almacenado.
de resultados del procedimiento
sqlcode: -499
“<nombre-procedimiento>”.
sqlstate: 24516
Explicación: Se ha intentado asignar un cursor a
un grupo de resultados pero se han asignado

SQL0500 - SQL0599
Respuesta del Usuario: Corrija el programa de
SQL0501N El cursor especificado en una
aplicación para asegurarse de que no intenta
sentencia FETCH o CLOSE no
ejecutar una sentencia OPEN sobre un cursor que
está abierto.
ya esté abierto.
Explicación: El programa ha intentado:
sqlcode: -502
(1) Efectuar un FETCH mediante un cursor o
(2) Efectuar un CLOSE de un cursor en un sqlstate: 24502
momento en que el cursor especificado no estaba
abierto.
SQL0503N No se puede actualizar una
No se puede procesar la sentencia. columna porque no está
identificada en la cláusula FOR
Respuesta del Usuario: Compruebe si hay un
UPDATE de la sentencia SELECT
mensaje anterior (SQLCODE) que haya podido
del cursor.
cerrar el cursor. Tenga en cuenta que, después de
cerrar el cursor, cualquier sentencia fetch o close Explicación: Mediante un cursor, el programa
que se efectúa sobre un cursor recibe un ha intentado actualizar un valor de una columna
SQLCODE -501. de tabla que no estaba identificada en la cláusula
FOR UPDATE de la declaración del cursor ni de
Si no se ha emitido ningún SQLCODE anterior,
la sentencia SELECT preparada.
corrija el programa de aplicación para asegurarse
de que el cursor esté abierto cuando se ejecute la Cualquier columna que se desee actualizar debe
sentencia FETCH o CLOSE. estar identificada en la cláusula FOR UPDATE de
la declaración del cursor.
sqlcode: -501
No se puede procesar la sentencia.
sqlstate: 24501
Respuesta del Usuario: Corrija el programa de
aplicación. Si se debe actualizar la columna,
SQL0502N El cursor especificado en una
añada el nombre de la misma a la cláusula FOR
sentencia OPEN ya está abierto.
UPDATE de la declaración del cursor.
Explicación: El programa ha intentado ejecutar
sqlcode: -503
una sentencia OPEN sobre un cursor abierto.
sqlstate: 42912
No se puede procesar la sentencia. No se ha
modificado el cursor.

100 Consulta de mensajes, Volumen 2


sqlcode: -507
SQL0504N El cursor “<nombre>” no está
definido. sqlstate: 24501
Explicación: Se ha especificado un UPDATE o
un DELETE WHERE CURRENT OF de SQL0508N El cursor especificado en las
“<nombre>”, pero no se había declarado el sentencias UPDATE o DELETE no
cursor “<nombre>” en el programa de está colocado en una fila.
aplicación.
Explicación: El programa ha intentado ejecutar
No se puede procesar la sentencia. una sentencia UPDATE o DELETE WHERE
CURRENT OF sobre un cursor mientras el cursor
Respuesta del Usuario: Asegúrese de que el
especificado no estaba posicionado en una fila de
programa de aplicación está completo y corrija
una tabla de objeto. Para poder suprimir o
los errores tipográficos de los nombres de los
actualizar un cursor, éste debe estar posicionado
cursores.
en una fila.
sqlcode: -504
El cursor ya no se coloca en una fila si ésta se ha
sqlstate: 34000 suprimido. Esto incluye el uso de cursores dentro
de un punto de salvaguarda cuando se realiza
ROLLBACK TO SAVEPOINT.
SQL0505N El cursor “<nombre>” ya está
definido. Usuarios del sistema federado: otra aplicación (o
un cursor distinto de esta aplicación) ha
Explicación: El nombre del cursor especificado
actualizado y/o suprimido el registro de una
en la sentencia DECLARE ya está declarado.
fuente de datos remota y el registro ya no existe.
No se puede procesar la sentencia.
No se puede procesar la sentencia. No se
Respuesta del Usuario: Asegúrese de que el actualiza ni suprime ningún dato.
nombre está bien escrito.
Respuesta del Usuario: Corrija la lógica del
programa de aplicación para asegurarse de que
SQL0507N El cursor identificado en la el cursor esté correctamente posicionado en la
sentencia UPDATE o DELETE no fila adecuada de la tabla de objeto antes de que
está abierto. se ejecuta la sentencia UPDATE o DELETE.
Tenga en cuenta que el cursor no está colocado
Explicación: El programa ha intentado ejecutar en una fila si FETCH ha devuelto el mensaje
una sentencia UPDATE o DELETE WHERE SQL0100W (SQLCODE = 100).
CURRENT OF de un cursor cuando el cursor
especificado no estaba abierto. sqlcode: -508

No se puede procesar la sentencia. No se ha sqlstate: 24504


realizado ninguna actualización ni supresión.
Respuesta del Usuario: Compruebe si hay un SQL0509N La tabla especificada en las
mensaje anterior (SQLCODE) que haya podido sentencias UPDATE o DELETE no
cerrar el cursor. Tenga en cuenta que después de es la misma tabla especificada en
cerrar un cursor, cualquier sentencia FETCH o la sentencia SELECT del cursor.
CLOSE que se efectúe sobre dicho cursor recibirá
Explicación: El programa ha intentado ejecutar
un SQLCODE -501 y cualquier actualización o
una sentencia UPDATE o DELETE WHERE
supresión recibirá un SQLCODE -507. Corrija la
CURRENT OF de un cursor, en la que el nombre
lógica del programa de aplicación para
de la tabla no coincide con el nombre de la tabla
asegurarse de que el cursor especificado esté
especificada en la sentencia SELECT del cursor.
abierto cuando se ejecute la sentencia UPDATE o
DELETE. No se puede procesar la sentencia.

Capítulo 2. Mensajes SQL 101


Respuesta del Usuario: Corrija el programa de El cursor es ambiguo y se ha especificado la
aplicación para asegurarse de que la tabla opción de vinculación BLOCKING ALL.
especificada en la sentencia UPDATE o DELETE
sea la misma que la identificada en la No se puede procesar la sentencia.
declaración del cursor.
Respuesta del Usuario: Si el gestor de bases de
sqlcode: -509 datos impide procesar la sentencia y el cursor se
basa en una sentencia SELECT o VALUES de
sqlstate: 42827
sólo lectura, no emita para ésta ninguna
sentencia de actualización o supresión.
SQL0510N UPDATE o DELETE no están
Si el gestor de bases de datos impide procesar la
permitidos para el cursor
sentencia y el cursor no está basado en una
especificado.
sentencia SELECT o VALUES de sólo lectura y
Explicación: El programa ha intentado ejecutar está definido con una cláusula FOR FETCH
una sentencia UPDATE o DELETE WHERE ONLY u ORDER BY, deberá eliminar esta
CURRENT OF de un cursor sobre una tabla o cláusula de la definición del cursor o bien no
una definición de vista que no permite la emitir ninguna sentencia de actualización o
operación de actualización o supresión solicitada. supresión.
Este error puede producirse, por ejemplo, si se
Si el gestor de bases de datos impide procesar la
intenta suprimir una vista de sólo lectura o si se
sentencia y no es posible determinar a partir de
intenta efectuar una actualización cuando el
la definición o contexto del cursor si éste está
cursor no está definido en la cláusula FOR
definido como ″fetch only″ o ″updatable″, vuelva
UPDATE.
a vincular el programa con la opción de
En el gestor de bases de datos, la vista es de sólo vinculación BLOCKING NO o BLOCKING
lectura si la sentencia SELECT UNAMBIG.
v La palabra clave DISTINCT Usuarios del sistema federado: aísle el problema
v Una función de columna en la lista SELECT en la fuente de datos que impide procesar la
v Una cláusula GROUP BY o HAVING petición (en la guía de determinación de
problemas hallará los procedimientos para
v Una cláusula FROM que identifica uno de los
identificar las fuentes de datos anómalas). Si hay
elementos siguientes:
una fuente de datos que impide procesar la
– Más de una tabla o vista petición, examine las restricciones de dicha
– Una vista de sólo lectura (la columna fuente de datos para determinar la causa del
READONLY de [Link] se problema y su solución. Si la restricción existe en
establece en ’Y’) una fuente de datos, vea el manual de consulta
– Una tabla o vista también está definida en de dicha fuente de datos para determinar por
la cláusula FROM de una subconsulta de la qué el objeto no puede actualizarse.
sentencia SELECT. (NOTA: solamente es sqlcode: -510
una restricción en los releases de DB2
anteriores a la Versión 2). sqlstate: 42828
v Un operador de conjuntos (que no sea UNION
ALL). SQL0511N La cláusula FOR UPDATE no está
permitida porque la tabla que
Tenga presente que estas condiciones no se
especifica el cursor no puede
aplican a las subconsultas de la sentencia
modificarse.
SELECT.
Explicación: La tabla de resultados de la
El cursor está declarado en la cláusula FOR sentencia SELECT o VALUES no puede
FETCH ONLY u ORDER BY. actualizarse.

102 Consulta de mensajes, Volumen 2


En el gestor de la base de datos, la tabla de
SQL0513W La sentencia de SQL modificará
resultados es de sólo lectura si el cursor se basa
una vista o una tabla entera.
en una sentencia VALUES o si la sentencia
SELECT contiene alguno de los siguientes Explicación: La sentencia UPDATE o DELETE
elementos: no contiene una cláusula WHERE, de modo que
v La palabra clave DISTINCT todas las filas de la tabla o de la vista se
modificarán si se ejecuta esta sentencia.
v Una función de columna en la lista SELECT
v Una cláusula GROUP BY, HAVING u ORDER La sentencia se acepta.
BY Usuarios del sistema federado: no todas las
v Una cláusula FROM que identifica uno de los fuentes de datos informan de esta condición de
elementos siguientes: aviso. El servidor federado trata de emitir este
– Más de una tabla o vista aviso siempre que existe esa condición, pero no
hay garantía de que el servidor federado pueda
– Una vista de sólo lectura
detectar siempre dicha condición. No confíe en
– Una cláusula OUTER con una tabla de tipos que este aviso evite que las operaciones
o una vista de tipos UPDATE/DELETE afecten a una tabla o vista
– Una tabla o vista también está definida en entera.
la cláusula FROM de una subconsulta de la
Respuesta del Usuario: Asegúrese de que su
sentencia SELECT. (NOTA: esta restricción
intención es modificar la vista o la tabla entera.
sólo se aplica a la versión de DB2 anterior a
la Versión 2).
v Un operador de conjuntos (que no sea UNION SQL0514N El cursor “<nombre>” no está en
ALL). estado preparado.

Tenga presente que estas condiciones no se Explicación: El programa de aplicación ha


aplican a las subconsultas de la sentencia intentado utilizar un cursor “<nombre>” que no
SELECT. está en estado preparado. El cursor se asocia con
una sentencia que no se había preparado nunca
No se puede procesar la sentencia. (1) , que ROLLBACK no había conseguido hacer
válida (2) o que ninguna revinculación de
Respuesta del Usuario: No realice paquete implícita o explícita había conseguido
actualizaciones en la tabla de resultados tal y hacer válida (3) .
como se especifica.
No se puede procesar la sentencia.
Usuarios del sistema federado: aísle el problema
en la fuente de datos que impide procesar la Respuesta del Usuario: En el caso (1), prepare
petición (en la guía de determinación de la sentencia indicada en la sentencia DECLARE
problemas hallará los procedimientos para CURSOR para “<nombre>” antes de intentar
identificar las fuentes de datos anómalas). Si hay abrir el cursor. En el caso (2), no emita un
una fuente de datos que impide procesar la ROLLBACK hasta que acabe de utilizar el cursor.
petición, examine las restricciones de dicha En el caso (3), la preparación del cursor debe
fuente de datos para determinar la causa del volver a emitirse.
problema y su solución. Si la restricción existe en sqlcode: -514
una fuente de datos, vea el manual de consulta
de dicha fuente de datos para determinar por sqlstate: 26501
qué el objeto no puede actualizarse.
sqlcode: -511
sqlstate: 42829

Capítulo 2. Mensajes SQL 103


validado ni por una revinculación implícita o
SQL0516N La sentencia DESCRIBE no
explícita del paquete.
especifica una sentencia
preparada. No se puede procesar la sentencia.
Explicación: El nombre de sentencia en la Respuesta del Usuario: En el caso (1), prepare
sentencia DESCRIBE debe especificar una la sentencia antes de intentar el EXECUTE. En el
sentencia preparada en la misma transacción de caso (2), no emita ROLLBACK hasta que haya
bases de datos. terminado de utilizar la sentencia preparada, o
vuelva a preparar la sentencia después de
No se puede procesar la sentencia.
ROLLBACK. En el caso (3), asegúrese de que la
Respuesta del Usuario: Compruebe que el sentencia no es SELECT ni VALUES. En el caso
nombre de la sentencia especifica una sentencia (4), debe volver a emitirse la preparación del
preparada. cursor.
sqlcode: -516 sqlcode: -518
sqlstate: 26501 sqlstate: 07003

SQL0517N El cursor “<nombre>” identifica SQL0519N La sentencia PREPARE identifica


una sentencia preparada que no es la sentencia SELECT o VALUES
una sentencia SELECT o VALUES. del cursor abierto “<nombre>”.
Explicación: No se puede utilizar el cursor Explicación: El programa de aplicación ha
“<nombre>” tal como está especificado, porque intentado preparar la sentencia SELECT o
la sentencia preparada indicada en la declaración VALUES para el cursor especificado cuando éste
del cursor no era una sentencia SELECT o ya estaba abierto.
VALUES.
No se puede preparar la sentencia. Ello no afecta
No se puede procesar la sentencia. al cursor.
Respuesta del Usuario: Verifique que el nombre Respuesta del Usuario: Corrija el programa de
de la sentencia se ha especificado correctamente aplicación de modo que no intente preparar la
en las sentencias PREPARE y DECLARE sentencia SELECT o VALUES para un cursor
CURSOR para el cursor “<nombre>”. Puede abierto.
también corregir el programa para asegurarse de
sqlcode: -519
que sólo se utilizan sentencias SELECT o
VALUES preparadas, asociadas a las sqlstate: 24506
declaraciones del cursor.
sqlcode: -517 SQL0525N La sentencia de SQL no ha podido
ejecutarse porque había un error
sqlstate: 07005
durante la vinculación en la
sección = ″<núm-sección>″
SQL0518N La sentencia indicada en la paquete = ″<nombre-paquete>″
sentencia EXECUTE no está en señal de coherencia =
estado de preparada o es una X″<señal-coher>″.
sentencia SELECT o VALUES.
Explicación: Causas posibles:
Explicación: El programa de aplicación ha v La sentencia era errónea cuando se vinculó el
intentado efectuar EXECUTE en una sentencia paquete, pero el error se ignoró entonces
que (1) no se ha preparado nunca, (2) no se ha porque se utilizó la opción SQLERROR
validado por una ROLLBACK, (3) es una
sentencia SELECT o VALUES o (4) no se ha

104 Consulta de mensajes, Volumen 2


(CONTINUE). Puesto que la sentencia contiene
SQL0526N La función solicitada no se aplica
un error, no puede ejecutarse.
a tablas temporales declaradas.
v Es posible que la sentencia no sea una
sentencia ejecutable en esta ubicación, o bien Explicación: La sentencia de SQL que se está
que sólo pueda ejecutarse por medio de un ejecutando hace referencia a una tabla temporal
peticionario de la aplicación de DB2 (por declarada. Una tabla temporal declarada no
ejemplo, DECLARE TABLE en una aplicación puede utilizarse en el el contexto dado.
que se ejecute en OS/2 ocasiona este mensaje). No se puede procesar la sentencia.
Las variables son: Respuesta del Usuario: Modifique la sentencia
núm-sección de SQL para asegurarse de que el objeto no hace
Número de sección referencias a las tablas temporales declaradas.

nombre-paquete sqlcode: -526


[Link] sqlstate: 42995
señal-coher
Señal de coherencia en hexadecimal SQL0528N La tabla “<nombre-tabla>” ya
tiene una restricción exclusiva que
No se puede ejecutar la sentencia. es un duplicado de la restricción
Respuesta del Usuario: Si se supone que la “<nombre>”.
sentencia de SQL no ha de ejecutarse en la Explicación: La cláusula UNIQUE utiliza la
ubicación indicada, corrija el programa para que misma lista de columnas que la cláusula
la sentencia errónea no se ejecute en dicha PRIMARY KEY, otra cláusula UNIQUE o la
ubicación. Precompile, compile y sustituya la PRIMARY KEY, o bien es que ya hay una
vinculación del paquete. Si se supone que la restricción UNIQUE para la tabla
sentencia de SQL ha de ejecutarse en la ubicación “<nombre-tabla>”. Las restricciones exclusivas no
indicada, corrija el problema que se ha pueden estar duplicadas.
encontrado cuando se vinculó y vincule el
paquete utilizando BIND con “<nombre>” es el nombre de restricción, si se ha
ACTION(REPLACE). Si se han vinculado varias especificado uno o ya existe. Si no se ha
versiones del paquete, emita la siguiente especificado un nombre de restricción,
sentencia SELECT para determinar la versión que “<nombre>” es el primer nombre de columna
tiene el error: SELECT VERSION FROM especificado en la lista de columna de la cláusula
[Link] WHERE UNIQUE seguido de tres puntos.
LOCATION = ’ ’ AND COLLID = ’collid’ AND No se puede procesar la sentencia.
NAME = ’pkgid’ AND HEX(CONTOKEN) =
’contoken’ Respuesta del Usuario: Elimine la cláusula
UNIQUE duplicada o cambie la lista de
Donde: columnas por un conjunto de columnas que no
locid Nombre de ubicación forme parte de una restricción exclusiva.

collid Id de colección sqlcode: -528

pkgid Nombre de programa sqlstate: 42891

sqlcode: -525

sqlstate: 51015

Capítulo 2. Mensajes SQL 105


SQL0530N El valor de inserción o SQL0531N La clave principal de una fila
actualización de FOREIGN KEY superior de la relación
“<nombre-restricción>” no “<nombre-restricción>” no se
equivale a ningún valor de la puede actualizar.
clave principal de la tabla padre.
Explicación: Se ha intentado una operación de
Explicación: Se ha tratado de definir un valor actualizar una clave principal en la fila de la
en una clave externa de la tabla de objetos, pero tabla padre, pero la clave principal de la fila
dicho valor no coincide con ningún valor de la indicada tiene filas dependientes en la tabla
clave principal de la tabla padre. dependiente asociada a la misma en la restricción
“<nombre-restricción>”.
Al insertar una fila en una tabla dependiente, el
valor de inserción de la clave externa debe Cuando la norma de actualización de la
coincidir con algún valor de la clave principal de restricción “<nombre-restricción>” es NO
alguna fila de la tabla padre de la relación ACTION, el valor de una clave principal en una
asociada. fila superior no puede actualizarse si la fila
superior tiene filas dependientes al finalizar la
De igual forma, al actualizar el valor de una
ejecución de la sentencia.
clave externa, dicho valor debe ser igual al de la
clave principal de cualquiera de las filas de la Cuando la norma de actualización de la
tabla padre de la relación asociada al final de la restricción “<nombre-restricción>” es RESTRICT,
sentencia. el valor de una clave principal de una fila
superior no puede actualizarse si la fila superior
Usuarios del sistema federado: la restricción
tiene filas dependientes en el momento de
puede existir en la fuente de datos (si las tablas
intentar la actualización de la clave principal.
padre y dependiente existen en la fuente de
datos). Usuarios del sistema federado: la restricción
puede existir en la fuente de datos (si las tablas
Algunas fuentes de datos no proporcionan los
padre y dependiente existen en la fuente de
valores adecuados para “<nombre restricción>”.
datos).
En estos casos, el símbolo del mensaje tendrá el
siguiente formato: “<fuente de Algunas fuentes de datos no proporcionan los
datos>:UNKNOWN”, que indica que el valor valores adecuados para “<nombre restricción>”.
real de la fuente de datos especificada es En estos casos, el símbolo del mensaje tendrá el
desconocido. siguiente formato: “<fuente de
datos>:UNKNOWN”, que indica que el valor
No se ha podido ejecutar la sentencia. El
real de la fuente de datos especificada es
contenido de la tabla de objetos permanece
desconocido.
intacto.
No se ha podido ejecutar la sentencia. El
Respuesta del Usuario: Examine primero el
contenido de la tabla padre permanece intacto.
valor de inserción o actualización de la clave
externa, y luego compárelo con cada uno de los Respuesta del Usuario: Examine la clave
valores de clave principal de la tabla padre para principal de la tabla de objetos y la clave externa
determinar el problema y poder corregirlo. de la tabla dependiente para determinar si el
valor de la fila especificada de la clave principal
sqlcode: -530
debe cambiarse o no. Si no aparece el problema,
sqlstate: 23503 examine el contenido de la tabla de objetos y de
la tabla dependiente para determinar y corregir
el problema.
sqlcode: -531
sqlstate: 23001, 23504

106 Consulta de mensajes, Volumen 2


sqlcode: -532
SQL0532N Una fila superior no puede
suprimirse porque la relación sqlstate: 23001, 23504
“<nombre-restricción>” restringe
la supresión.
SQL0533N La sentencia INSERT no es válida
Explicación: Se ha tratado de suprimir una fila porque hay una relación que
determinada de la tabla padre, pero la clave restringe el resultado de la
principal de dicha fila tiene filas dependientes en selección completa a una fila.
la restricción de referencia “<nombre-
restricción>” y para la relación se especifica la Explicación: Una operación INSERT con una
norma de supresión de NO ACTION o selección completa ha intentado insertar varias
RESTRICT. filas en una tabla que es padre y dependiente en
la misma relación de una restricción de
Cuando la norma de supresión de la restricción referencia.
“<nombre-restricción>” es NO ACTION, una fila
de la tabla padre no podrá suprimirse si las filas La selección completa de la operación INSERT no
dependientes siguen dependiendo de la clave debe devolver más de una fila de datos.
principal al finalizar la sentencia. No se ha podido ejecutar la sentencia INSERT. El
Cuando la norma de supresión de la restricción contenido de la tabla de objetos permanece
“<nombre-restricción>” es RESTRICT, una fila de intacto.
la tabla padre no podrá suprimirse si la fila Usuarios del sistema federado: la restricción
superior tiene alguna fila dependiente cuando se puede existir en la fuente de datos (si las tablas
intenta la supresión. padre y dependiente existen en la fuente de
Tenga en cuenta que una supresión puede datos).
suprimir en cascada otras filas de las tablas Respuesta del Usuario: Examine la condición
dependientes que tengan una norma de de búsqueda de la selección completa para
supresión de NO ACTION o RESTRICT. Así asegurarse de que no se seleccionará más de una
pues, la restricción “<nombre-restricción>” puede fila de datos.
estar en otra tabla que no sea la de la operación
de supresión original. sqlcode: -533

Usuarios del sistema federado: la restricción sqlstate: 21501


puede existir en la fuente de datos (si las tablas
padre y dependiente existen en la fuente de SQL0534N La actualización de varias filas no
datos). es válida.
Algunas fuentes de datos no proporcionan los Explicación: Una operación UPDATE ha
valores adecuados para “<nombre restricción>”. intentado actualizar varias filas de una columna
En estos casos, los campos correspondientes incluida en una clave primaria o en un índice
contienen valores (por ejemplo, “desconocido”) exclusivo.
que indican que el valor real es desconocido.
No se da soporte a las actualizaciones de varias
No se ha podido ejecutar la sentencia. El filas de columnas de una clave primaria o de un
contenido de la tabla permanece intacto. índice exclusivo.
Respuesta del Usuario: Examine la norma de No se ha podido ejecutar la sentencia UPDATE.
supresión para todas las tablas descendientes El contenido de la tabla permanece intacto.
para determinar y corregir el problema. Las
tablas específicas implicadas pueden Usuarios del sistema federado: La restricción
determinarse desde la relación puede existir en el servidor federado (si las
“<nombre-restricción>”. tablas padre y dependiente existen como tales en
el servidor federado), o puede existir en la fuente

Capítulo 2. Mensajes SQL 107


de datos (si las tablas padre y dependiente referencia en una subconsulta.
existen en la fuente de datos).
La tabla indicada, a la que se hace referencia en
Respuesta del Usuario: Asegúrese de que la una subconsulta de la sentencia DELETE, puede
condición de búsqueda de la sentencia UPDATE verse afectada por distintas razones:
seleccione para actualización una sola fila de la v Depende de la tabla de objetos de DELETE en
tabla de objetos. una relación con una norma de supresión
sqlcode: -534 CASCADE o SET NULL.
v Depende de otra tabla en una relación con una
sqlstate: 21502
norma de supresión de CASCADE o SET
NULL y las supresiones desde la tabla de
SQL0535N La sentencia DELETE no es válida objetos de DELETE pueden disponerse en
porque una relación que hace cascada para dicha tabla.
referencia a sí misma restringe la
Usuarios del sistema federado: la restricción
supresión a una sola fila.
puede existir en la fuente de datos (si las tablas
Explicación: Una operación DELETE con una padre y dependiente existen en la fuente de
cláusula WHERE ha intentado suprimir múltiples datos).
filas de una tabla que es padre y dependiente en
la misma relación de una restricción de referencia Algunas fuentes de datos no proporcionan los
con una norma de supresión RESTRICT o SET valores adecuados para “<nombre>”. En estos
NULL. casos, los campos correspondientes contienen
valores (por ejemplo, “desconocido”) que indican
La cláusula WHERE de la operación DELETE no
que el valor real es desconocido.
debe seleccionar más de una fila de datos.
No se ha podido ejecutar la sentencia DELETE. No se ha podido procesar la sentencia.
El contenido de la tabla de objetos permanece
Respuesta del Usuario: No haga referencia a
intacto.
una tabla en una subconsulta de la sentencia
Usuarios del sistema federado: la restricción DELETE cuando la tabla pueda resultar afectada
puede existir en la fuente de datos (si las tablas por la sentencia DELETE.
padre y dependiente existen en la fuente de
NOTA: Este error sólo se puede aplicar a los
datos).
releases de DB2 anteriores a la Versión 2 y a los
Respuesta del Usuario: Examine la condición sistemas principales a los que se accede mediante
de búsqueda de la cláusula WHERE para DB2 Connect.
asegurarse de que no se selecciona más de una
sqlcode: -536
fila de datos.
sqlstate: 42914
NOTA: Esta restricción sólo se aplica a los
releases de DB2 anteriores a la Versión 2.
SQL0537N La cláusula PRIMARY KEY, una
sqlcode: -535
cláusula FOREIGN KEY, una
sqlstate: 21504 cláusula UNIQUE o una cláusula
PARTITIONING KEY identifica
más de una vez a la columna
SQL0536N La sentencia DELETE no es válida
“<nombre>”.
porque la tabla “<nombre>”
puede resultar afectada por la Explicación: La columna “<nombre>” aparece
operación. más de una vez en una cláusula PRIMARY KEY,
una cláusula FOREIGN KEY, una cláusula
Explicación: Se ha intentado una operación
UNIQUE o una cláusula PARTITIONING KEY de
DELETE con la tabla indicada a la que se hace

108 Consulta de mensajes, Volumen 2


una sentencia CREATE o ALTER. KEY. Si no se ha especificado el nombre de una
restricción, “<nombre>” es el primer nombre de
Usuarios del sistema federado: la restricción
columna especificado en la cláusula, seguido de
puede existir en la fuente de datos (si las tablas
tres puntos.
padre y dependiente existen en la fuente de
datos).
Usuarios del sistema federado: algunas fuentes
Algunas fuentes de datos no proporcionan los de datos no proporcionan los valores apropiados
valores adecuados para “<nombre>”. En estos para “<nombre>” y “<nombre-tabla>”. En estos
casos, los campos correspondientes contienen casos, los campos correspondientes contienen
valores (por ejemplo, “desconocido”) que indican valores (por ejemplo, “desconocido”) que indican
que el valor real es desconocido. que el valor real es desconocido.
No se puede procesar la sentencia.
La restricción puede existir en la fuente de datos
Respuesta del Usuario: Especifique nombres (si las tablas padre y dependiente existen en la
exclusivos para cada columna. fuente de datos).
sqlcode: -537
No se puede procesar la sentencia.
sqlstate: 42709
Respuesta del Usuario: Corrija la sentencia de
forma que la descripción de la clave externa se
SQL0538N La clave externa (FOREIGN KEY) ajuste a la descripción de la clave principal.
“<nombre>” no se ajusta a la
sqlcode: -538
descripción de la clave principal
de la tabla “<nombre-tabla>”. sqlstate: 42830
Explicación: La definición de la clave externa
indicada no se ajusta a la descripción de la clave SQL0539N La tabla “<nombre>” no tiene una
principal de la tabla “<nombre-tabla>”. clave ″<tipo-clave>″.
Los posibles errores son: Explicación: Se ha producido una de las
v El número de columnas de la lista de siguientes condiciones:
columnas de la clave externa no coincide con v Se ha especificado la tabla
el número de columnas de la lista de columnas “<nombre-restricción>” como tabla padre en
de la clave principal. una cláusula FOREIGN KEY, pero la tabla no
v El número de columnas de la lista de está definida como padre porque no tiene una
columnas de la clave externa no coincide con clave primaria.
el número de columnas de la clave primaria v La sentencia ALTER TABLE ha tratado de
de la tabla padre (no está especificada una eliminar la clave primaria de la tabla
lista columnas de la clave principal). “<nombre>” pero la tabla carece de clave
v Las descripciones de las columnas primaria.
correspondientes no son compatibles. Las v La sentencia ALTER TABLE ha tratado de
descripciones de columnas son compatibles si eliminar la clave de partición de la tabla
las columnas correspondientes tienen tipos de “<nombre>”, pero la tabla carece de clave de
datos compatibles (es decir, si ambas columnas partición.
son de tipo numérico, si ambas son series de
caracteres, si son gráficos, si son del tipo Usuarios del sistema federado: la restricción
fecha/hora o si ambas tienen el mismo tipo puede existir en la fuente de datos (si las tablas
diferenciado). padre y dependiente existen en la fuente de
datos).
“<nombre>” es el nombre de la restricción, si
ésta se ha especificado en la cláusula FOREIGN

Capítulo 2. Mensajes SQL 109


Algunas fuentes de datos no proporcionan los
SQL0541W La restricción “<nombre>”
valores adecuados para “<nombre>” y “<tipo
exclusiva, de referencia o de clave
clave>”. En estos casos, los campos
primaria, se ha pasado por alto
correspondientes contienen valores (por ejemplo,
porque está duplicada.
“desconocido”) que indican que el valor real es
desconocido. Explicación: Si “<nombre>” se refiere a una
restricción de referencia, quiere decir que hay
No se puede procesar la sentencia. Un catálogo una cláusula FOREIGN KEY que utiliza la misma
del sistema no puede definirse como superior en clave externa y la misma tabla padre como otra
una restricción de referencia. cláusula FOREIGN KEY.

Respuesta del Usuario: Cuando cree una Si “<nombre>” se refiere a una restricción
restricción de referencia, especifique la clave exclusiva o a una restricción de clave primaria,
primaria antes de especificar claves externas quiere decir que se está ante una de las
(restricciones). situaciones siguientes:

sqlcode: -539 v Una cláusula PRIMARY KEY utiliza el mismo


conjunto de columnas que una cláusula
sqlstate: 42888 UNIQUE de la sentencia.
v Una cláusula UNIQUE utiliza el mismo
SQL0540N La definición de la tabla conjunto de columnas que la cláusula
″<nombre-tabla>″ no está PRIMARY KEY o que otra cláusula UNIQUE
completa ya que le falta un índice de la sentencia.
primario o un índice exclusivo v Una restricción PRIMARY KEY o UNIQUE del
necesario. mismo conjunto de columnas ya existe para la
tabla “<nombre-tabla>”.
Explicación: La tabla con nombre se ha definido
con una cláusula PRIMARY KEY o con una “<nombre>” es el nombre de la restricción, en
cláusula UNIQUE. Su definición está incompleta caso de que se haya especificado. Si no se ha
y no puede utilizarse hasta que se haya definido especificado el nombre de una restricción,
un índice exclusivo para la clave primaria (el “<nombre>” es el primer nombre de columna
índice primario) y para cada conjunto de especificado en la lista de columnas de la
columnas de cada cláusula UNIQUE (los índices cláusula FOREIGN KEY o UNIQUE, seguido de
exclusivos necesarios). Se ha efectuado un intento tres puntos.
de utilizar la tabla en una cláusula FOREIGN
KEY o en una sentencia de manipulación de Usuarios del sistema federado: la restricción
SQL. puede existir en la fuente de datos (si las tablas
No se puede ejecutar la sentencia. padre y dependiente existen en la fuente de
datos).
Respuesta del Usuario: Defina un índice
primario o un índice exclusivo necesario en la Algunas fuentes de datos no proporcionan los
tabla antes de hacer referencia al mismo. valores adecuados para “<nombre>”. En estos
sqlcode: -540 casos, los campos correspondientes contienen
valores (por ejemplo, “desconocido”) que indican
sqlstate: 57001 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

110 Consulta de mensajes, Volumen 2


ninguna acción. Se puede continuar el proceso. supresión o la restricción de comprobación de
modo que no entren en conflicto entre sí.
sqlcode: +541
sqlcode: -543
sqlstate: 01543
sqlstate: 23511
SQL0542N “<nombre>” no puede ser una
columna de una clave primaria o SQL0544N La restricción de comprobación
exclusiva, porque puede contener “<nombre-restricción>” no puede
valores nulos. añadirse porque la tabla contiene
una fila que viola la restricción.
Explicación: La columna “<nombre>”
identificada en una cláusula PRIMARY KEY o en Explicación: Por lo menos una de las filas de la
una cláusula UNIQUE está definida de tal forma tabla infringe la restricción de comprobación que
que permite incluir valores nulos. se pretende añadir en la sentencia ALTER
TABLE.
Usuarios del sistema federado: Algunas fuentes
de datos no proporcionan los valores adecuados No se puede procesar la sentencia.
para “<nombre>”. En estos casos, los campos
Respuesta del Usuario: Revise la definición de
correspondientes contienen valores (por ejemplo,
la restricción de comprobación especificada en la
“desconocido”) que indican que el valor real es
sentencia ALTER TABLE y los datos de la tabla
desconocido.
para determinar el motivo de que se infrinja la
No se puede procesar la sentencia. restricción. Modifique la restricción de
comprobación o los datos de modo que no se
Respuesta del Usuario: Corrija la definición de
infrinja la restricción.
la columna, de la clave primaria o de la clave
exclusiva. sqlcode: -544
sqlcode: -542 sqlstate: 23512
sqlstate: 42831
SQL0545N La operación solicitada no está
permitida porque una fila no
SQL0543N Una fila de la tabla padre no
cumple la restricción de
puede suprimirse porque la
comprobación
restricción de comprobación
“<nombre-restricción>”.
“<nombre-restricción>” limita la
supresión. Explicación: Se puede infringir la restricción de
comprobación en las operaciones INSERT o
Explicación: No se puede ejecutar la operación
UPDATE. La fila resultante ha infringido la
de supresión porque la tabla destino es una tabla
definición de la restricción de comprobación en
padre y está conectada, con una restricción de
esa tabla.
referencia, a una tabla dependiente con una
norma de supresión SET NULL. Sin embargo, la No se puede procesar la sentencia.
restricción de comprobación definida en la tabla
Respuesta del Usuario: Revise los datos y la
dependiente evita que la columna pueda tener
definición de la restricción de comprobación en
un valor nulo.
la vista de catálogos [Link] para
No se puede procesar la sentencia. determinar la causa de que la sentencia INSERT
o UPDATE haya fallado. Modifique los datos de
Respuesta del Usuario: Revise la clave externa
modo que no se infrinja la restricción.
y su norma de supresión en la tabla dependiente
así como la restricción de comprobación que sqlcode: -545
genera el conflicto. Modifique la norma de
sqlstate: 23513

Capítulo 2. Mensajes SQL 111


v traslade la definición de la restricción de
SQL0546N La restricción de comprobación
comprobación fuera de la definición de la
″<nombre-restricción>″ no es
columna, de modo que pase a ser una
válida.
definición de restricción a nivel de tabla.
Explicación: Una de las restricciones de
sqlcode: -546
comprobación de la sentencia CREATE TABLE o
ALTER TABLE no es válida por uno de los
siguientes motivos: sqlstate: 42621
v la definición de la restricción contiene una
subconsulta. SQL0548N Una restricción de comprobación
v la definición de la restricción contiene una definida con ″<elemento-
función de columna. condición-comprobación>″ no es
válida.
v la definición de la restricción contiene una
variable del sistema principal. Explicación: Una de las restricciones de
v la definición de la restricción contiene un comprobación de la sentencia CREATE TABLE o
marcador de parámetros. ALTER TABLE no es válida por uno de los
siguientes motivos:
v la definición de la restricción contiene un
registro especial. v la definición de la restricción contiene una
subconsulta.
v la definición de la restricción contiene una
función definida por el usuario. v la definición de la restricción contiene una
función de columna.
v la definición de la restricción contiene una
función definida por el usuario con una acción v la definición de la restricción contiene una
externa. variable del sistema principal.

v la definición de la restricción contiene una v la definición de la restricción contiene un


función definida por el usuario con la opción marcador de parámetros.
de bloc de notas. v la definición de la restricción contiene un
v La restricción de comprobación forma parte de registro especial.
una definición de columna y su condición de v la definición de la restricción contiene una
comprobación contiene una referencia a un función que no es determinante.
nombre de columna que no es el de la v la definición de la restricción contiene una
columna que se está definiendo. función definida por el usuario con una acción
v la definición de la restricción contiene una externa.
operación de eliminación de referencia o una v la definición de la restricción contiene una
función DEREF donde el argumento de función definida por el usuario con la opción
referencia de ámbito es distinto a la columna de bloc de notas.
de identificador de objeto (OID).
v la definición contiene una función definida por
v la definición de la restricción utiliza un el usuario con la opción READS SQL DATA
predicado TYPE.
v la definición contiene una referencia a una
v la definición de la restricción incluye una columna generada que está basada en una
especificación CAST con una cláusula SCOPE. expresión.
No se puede procesar la sentencia. v la restricción de comprobación forma parte de
una definición de columna y su condición de
Respuesta del Usuario: La respuesta del comprobación contiene una referencia a un
usuario es una de las siguientes, en función de la nombre de columna que no es el de la
causa del error: columna que se está definiendo.
v modifique la restricción de comprobación de
modo que no incluya el elemento listado.

112 Consulta de mensajes, Volumen 2


v la definición de la columna generada contiene v Sentencia CREATE dinámica
una referencia a sí misma v Sentencia DROP dinámica
v la definición de la restricción contiene una v Sentencia SET CURRENT SCHEMA estática o
operación de eliminación de referencia o una dinámica.
función DEREF donde el argumento de
referencia de ámbito es distinto a la columna “<sentencia>”
de identificador de objeto (OID). La sentencia de SQL errónea
v la definición de la restricción utiliza un “<tipo-objeto1>”
predicado TYPE. PACKAGE o DBRM. DBRM sólo es
v la definición de la restricción incluye una válido en una conexión DRDA.
especificación CAST con una cláusula SCOPE. “<nombre-objeto1>”
El símbolo contenido en el texto del mensaje de Si “<tipo-objeto1>” es PACKAGE,
error lista el elemento no válido. “<nombre-objeto1>” es el nombre del
paquete, con el formato
No se puede procesar la sentencia. ’id-ubicació[Link]-colecció[Link]-paquete’. Si
“<tipo-objeto1>” es DBRM,
Respuesta del Usuario: La respuesta del “<nombre-objeto1>” es el nombre del
usuario es una de las siguientes, en función de la DBRM con el formato ’nombre-plan
causa del error: nombre-DBRM’.
v modifique la restricción de comprobación o
“<tipo-objeto2>”
columna generada de modo que no incluya el
PACKAGE o PLAN. PLAN sólo es
elemento listado.
válido en una conexión DRDA. Si
v traslade la definición de la restricción de “<tipo-objeto1>” es PACKAGE,
comprobación fuera de la definición de la “<tipo-objeto2>” puede ser PACKAGE o
columna, de modo que pase a ser una PLAN (el que esté vinculado con
definición de restricción a nivel de tabla. DYNAMICRULES(BIND)). Si
sqlcode: -548 “<tipo-objeto1>” es DBRM,
“<tipo-objeto2>” es PLAN.
sqlstate: 42621.
No se puede ejecutar la sentencia de SQL.

SQL0549N La sentencia “<sentencia>” no Respuesta del Usuario: Realice una de las


está permitida para el acciones siguientes para corregir el error:
“<tipo-objeto1 >” v Si la sentencia de SQL está incorporada,
“<nombre-objeto1>” porque la elimínela, precompile y vuelva a compilar el
opción de vinculación programa de aplicación, y emita de nuevo el
DYNAMICRULES(BIND) en el mandato BIND con la opción
“<tipo-objeto2>” está en vigor. DYNAMICRULES(BIND).

Explicación: Un programa ha intentado emitir v Si procede, utilice la sentencia de SQL con un


la sentencia de SQL indicada, que es una de paquete o un plan que esté vinculado con
varias sentencias de SQL que no pueden emitirse DYNAMICRULES(RUN).
desde un paquete o plan para el que la opción v Emita el mandato REBIND con la opción
DYNAMICRULES(BIND) esté en vigor. Esas DYNAMICRULES(RUN) para el plan o el
sentencias de SQL son: paquete con el que la sentencia de SQL está
v Sentencia GRANT dinámica vinculada.

v Sentencia REVOKE dinámica sqlcode: -549


v Sentencia ALTER dinámica

Capítulo 2. Mensajes SQL 113


sqlstate: 42509 Respuesta del Usuario: Asegúrese de que el
“<ID-autorización>” disponga de la autorización
necesaria para llevar a cabo esa operación.
SQL0551N “<ID-autorización>” no tiene el
privilegio de realizar la operación Usuarios del sistema federado: Esta autorización
“<operación>” en el objeto puede estar en el servidor federado, la fuente de
“<nombre>”. datos, o en ambos.
Explicación: El ID de autorización Si es preciso volver a vincular los programas de
“<ID-autorización>” ha intentado realizar la utilidad de DB2 a la base de datos, el
“<operación>” especificada en “<nombre>” sin administrador de la base de datos puede llevar a
tener la autorización adecuada. cabo este cometido si, estando conectado a la
base de datos, emite desde el subdirectorio BND
Si se está creando o alterando una tabla con
de la instancia uno de los siguientes mandatos
restricciones de referencia, este mensaje
CLP:
(SQLCODE) puede indicar que el usuario no
tiene el privilegio REFERENCES para crear o v ″DB2 bind @[Link] blocking all grant
eliminar una FOREIGN KEY. En este caso, la public″ en el caso de los programas de utilidad
“<operación>” es “REFERENCES” y el de DB2.
“<nombre>” es el objeto al que la restricción v ″DB2 bind @[Link] blocking all grant
hace referencia. public″ en el caso de la CLI.
Al tratar de ejecutar un programa de utilidad de sqlcode: -551
DB2 o una aplicación de CLI, es posible que los
programas de utilidad de DB2 se tengan que sqlstate: 42501
volver a vincular a la base de datos, bien porque
el ID de usuario que haya creado la base de
datos ya no exista o bien porque ya no tenga los SQL0552N “<ID-autorización>” no tiene el
privilegios necesarios. privilegio de realizar la operación
“<operación>”.
Usuarios del sistema federado: Si aparece este
mensaje cuando el usuario está cambiando la Explicación: El ID de autorización
columna remote_pw de la vista “<ID-autorización>” ha intentado realizar la
[Link], significa que el usuario “<operación>” especificada sin tener la
no tiene autorización para cambiar una autorización adecuada.
contraseña por otro usuario. El usuario que está Usuarios del sistema federado: algunas fuentes
realizando la operación de alteración debe tener de datos no proporcionan los valores adecuados
autorización SYSADM o un ID de autorización para “<ID-autorización>” y <operación>. En
(el valor del registro especial USER) que estos casos, las señales de mensajes tendrán el
corresponda con el valor de la columna authid siguiente formato: “<fuente de datos>
de las filas que están actualizándose. Algunas AUTHID:UNKNOWN” y “UNKNOWN” lo que
fuentes de datos no proporcionan los valores indica que se desconocen los valores reales de
adecuados para “<authid>”, <operación>, y AUTHID y la operación de la fuente de datos
<nombre>. En estos casos, las señales de especificada.
mensajes tendrán el siguiente formato: “<fuente
de datos> AUTHID:UNKNOWN”, No se puede procesar la sentencia.
“UNKNOWN” y “<fuente de Respuesta del Usuario: Asegúrese de que el
datos>:TABLE/VIEW”, lo que indica que se “<ID-autorización>” disponga de la autorización
desconocen los valores reales de AUTHID, la necesaria para llevar a cabo esa operación.
operación y el nombre de la fuente de datos
especificada. Usuarios del sistema federado: Esta autorización
puede estar en el servidor federado, la fuente de
No se puede procesar la sentencia. datos, o en ambos.

114 Consulta de mensajes, Volumen 2


sqlcode: -552 sqlcode: -554
sqlstate: 42502 sqlstate: 42502

SQL0553N Un objeto no puede crearse con el SQL0555N Un ID de autorización no puede


nombre de esquema revocarse un privilegio a sí
“<nombre-esquema>”. mismo.
Explicación: El motivo por el que el nombre de Explicación: Un ID de autorización ha intentado
esquema “<nombre-esquema>” no es válido ejecutar una sentencia REVOKE en la que el
depende del tipo de objeto que se desea crear. mismo ID de autorización aparece como una de
v Los objetos de tipos que ya existían en releases las entradas de la lista de ID de autorización a
anteriores al DB2 Versión 2 (tablas, vistas, los que se revocan privilegios.
índices y paquetes) no pueden crearse con el No se puede procesar la sentencia.
nombre de esquema SYSCAT, SYSFUN,
SYSSTAT o SYSIBM. Debe tenerse muy en Respuesta del Usuario: Elimine el ID de
cuenta que los nombres de esquemas no deben autorización de la lista.
empezar por SYS, ya que es posible que, en el sqlcode: -555
futuro, nombres adicionales de esquemas que
comiencen por estas letras estén reservados sqlstate: 42502
para el uso exclusivo de DB2.
v Los objetos de tipos anunciados a partir de SQL0556N Se ha denegado un intento de
DB2 Versión 2 (funciones definidas por el revocar un privilegio al
usuario, tipos diferenciados, activadores, “<ID-autorización>” porque el
esquemas y alias) no pueden crearse con “<ID-autorización>” no dispone
ningún nombre de esquema que empiece por de dicho privilegio.
las letras SYS.
Explicación: No se puede revocar el privilegio
No se puede procesar la sentencia. porque el “<ID-autorización>” no dispone de ese
Respuesta del Usuario: Utilice un nombre de privilegio.
esquema válido o elimine el nombre de esquema No se puede procesar la sentencia.
que ha provocado el error y vuelva a ejecutar la
sentencia. Respuesta del Usuario: Modifique la sentencia
REVOKE para que cumpla con las normas de
sqlcode: -553 REVOKE y vuelva a someter la sentencia.
sqlstate: 42939 Asegúrese de que, cuando una sentencia
REVOKE lista varios privilegios a revocar y los
ID de autorización, cada ID de autorización es
SQL0554N Un ID de autorización no puede propietario por lo menos de uno de los
otorgarse un privilegio a sí privilegios especificados.
mismo.
sqlcode: -556
Explicación: Un ID de autorización ha intentado
ejecutar una sentencia GRANT en la que el sqlstate: 42504
mismo ID de autorización aparece como una de
las entradas de la lista de ID de autorización a SQL0557N La combinación de privilegios
los que se otorgan privilegios. especificada no puede ser
No se puede procesar la sentencia. otorgada ni revocada.

Respuesta del Usuario: Elimine el ID de Explicación: Se ha producido una de las


autorización de la lista. siguientes condiciones:

Capítulo 2. Mensajes SQL 115


v La sentencia GRANT o REVOKE contiene una de autorización reservado PUBLIC (público). La
combinación de privilegios de distintas clases. autorización DBADM no puede otorgarse a
Los privilegios deben ser de la misma clase. PUBLIC (público).
Por ejemplo, DATABASE, PLAN o TABLE.
No se puede procesar la sentencia.
v La sentencia GRANT ha intentado otorgar un
privilegio no permitido a una vista. No se Respuesta del Usuario: No se da soporte a la
puede otorgar ALTER, INDEX y REFERENCES función implícita.
a una vista. sqlcode: -562
No se puede procesar la sentencia. sqlstate: 42508
Respuesta del Usuario: Corrija la sentencia y
vuelva a someterla. SQL0567N El “<ID-autorización>” no es un
sqlcode: -557 ID de autorización válido.

sqlstate: 42852 Explicación: El ID de autorización especificado


en “<ID-autorización>” no es un ID de
autorización válido por una de las siguientes
SQL0558N El intento de revocar un privilegio razones:
del “<ID-autorización>” se
v Comienza por ″SYS″, ″sys″, ″IBM″, ″ibm″,
denegó porque el
″SQL″ o ″sql″.
“<ID-autorización>” todavía
mantenía la autorización v Contiene caracteres que no son los siguientes:
“<control>”. de la a a la z, de la A a la Z, de 0 a 9 y los tres
caracteres especiales #, @, $.
Explicación: El “<ID-autorización>” contiene el
v Está delimitado y contiene caracteres en
privilegio “<control>”. El privilegio que se quiere
minúscula.
revocar está implícito en el privilegio
“<control>”, por lo que no se puede revocar a v Es GUESTS, ADMINS, USERS o LOCAL.
menos que también se revoque el privilegio v Es PUBLIC precedido por la palabra clave
“<control>”. USER o GROUP en una sentencia GRANT o
REVOKE.
Los valores válidos de “<control>” son los
siguientes: No se puede procesar la sentencia.
v DBADM Respuesta del Usuario: Corrija el ID de
v CONTROL autorización no válido.
No se puede ejecutar la sentencia. No se revoca sqlcode: -567
ningún privilegio.
sqlstate: 42602
Respuesta del Usuario: Revoque el privilegio
“<control>”, si lo desea.
SQL0569N La sentencia GRANT/REVOKE ha
sqlcode: -558 fallado porque el
″<nombre-autorización>″ puede
sqlstate: 42504
identificar tanto a un usuario
como a un grupo del sistema.
SQL0562N Los privilegios especificados para
Explicación: La sentencia GRANT o REVOKE
la base de datos no pueden
especifica un nombre de autorización que puede
otorgarse a PUBLIC (público).
identificar tanto a un usuario como a un grupo
Explicación: La sentencia GRANT ha intentado del espacio de nombres de seguridad, y no se ha
otorgar un privilegio de base de datos a un ID especificado explícitamente la palabra clave

116 Consulta de mensajes, Volumen 2


USER o GROUP en la sentencia. Por lo tanto la sqlstate: 51028
sentencia resulta ambigua. Tenga en cuenta que,
al utilizar la seguridad DCE, siempre es preciso
SQL0573N Una lista de columnas
utilizar la palabra clave USER o GROUP.
especificada en la cláusula de
Respuesta del Usuario: Modifique la sentencia referencias de la restricción
para que especifique explícitamente la palabra “<nombre>” no identifica una
clave USER o GROUP para identificar de forma restricción exclusiva de la tabla
exclusiva el ID de autorización necesario. padre “<nombre-tabla>”.
sqlcode: -569 Explicación: En la cláusula de referencias se ha
especificado una lista de nombres de columnas
sqlstate: 56092
para la restricción identificada con el nombre
“<nombre>” que no coincide con los nombres de
SQL0570W No se han concedido todos los columnas de la clave primaria o de ninguna
privilegios solicitados sobre el clave exclusiva de la tabla “<nombre-tabla>”
objeto ″<nombre-objeto>″ del tipo referenciada.
″<tipo-objeto>″.
“<nombre>” es el nombre de la restricción, en
Explicación: Se ha intentado realizar una caso de que se haya especificado. Si no se ha
operación GRANT sobre el objeto especificado el nombre de una restricción,
″<nombre-objeto>″ del tipo ″<tipo-objeto>″, pero “<nombre>” es el primer nombre de columna
se han denegado algunos o todos los privilegios. especificado en la lista de columnas de la
El ID de autorización que ha emitido la sentencia cláusula FOREIGN KEY seguido de tres puntos.
no tiene todos los privilegios que se han de
No se puede procesar la sentencia.
conceder con la opción GRANT o bien carece de
autorización DBADM. Respuesta del Usuario: Corrija la lista de
columnas en la cláusula de referencias o añada la
Se han concedido todos los privilegios válidos
restricción exclusiva a la tabla referenciada.
solicitados.
sqlcode: -573
Respuesta del Usuario: Obtenga la autorización
necesaria y vuelva a intentarlo. sqlstate: 42890
sqlcode: +570
SQL0574N El valor DEFAULT o el valor del
sqlstate: 01007
atributo IDENTITY no es válido
para la columna
SQL0572N El paquete ″<nombre-paquete>″ “<nombre-columna>” de la tabla
no es operativo. “<nombre-tabla>”. Código de
razón: “<código-razón>”.
Explicación: El paquete ″<nombre-paquete>″
está marcado como no operativo y se debe Explicación: El valor DEFAULT o el valor de
volver a vincular explícitamente antes de poder atributo IDENTITY para la columna
utilizarlo. Este paquete no se puede utilizar “<nombre-columna>” de la tabla
porque se ha eliminado más de una función “<nombre-tabla>” no es válido. Los códigos de
definida por el usuario que depende de este razón posibles son los siguientes:
paquete.
1 El valor no es asignable a la columna
Respuesta del Usuario: Vuelva a vincular porque la constante no tiene el formato
explícitamente el paquete utilizando el mandato de una constante de ese tipo de datos,
REBIND o BIND. porque el valor tiene una longitud o
precisión incorrecta o porque la función
sqlcode: -572 devuelve un tipo de datos incorrecto.

Capítulo 2. Mensajes SQL 117


2 Se especifica una constante de coma un SQLCODE. El error en la
flotante y la columna no es de tipo de especificación del valor DEFAULT
datos de coma flotante. puede determinarse comprobando el
mensaje de error correspondiente a este
3 Se especifica una constante decimal y
SQLCODE.
los dígitos distintos a cero se truncarían
al asignarlos a la columna.
No se puede procesar la sentencia.
4 El valor es de más de 254 bytes,
Respuesta del Usuario: Corrija el valor
incluyendo las comillas para series, los
DEFAULT o el valor de atributo IDENTITY en
caracteres de introducción como la X
base al código de razón obtenido.
para una constante hexadecimal, los
nombres de función completamente sqlcode: -574
calificados y los paréntesis. Los blancos
no significativos del valor se ignoran. sqlstate: 42894
En un entorno de páginas de códigos
diferentes, el valor puede ser mayor que SQL0575N No se puede utilizar la vista o
254 bytes debido a la expansión de la tabla de resumen “<nombre>”
serie en la página de códigos de la base porque está marcada como no
de datos. operativa.
5 Se especifica el registro especial USER y Explicación: La vista o tabla de resumen
el atributo de longitud del tipo de datos “<nombre>” está marcada como no operativa
de serie de caracteres es menor que 8. porque se ha eliminado la tabla, vista, alias o
6 Se especifica un registro especial de privilegio del que depende. Únicamente las
indicación de fecha (CURRENT DATE, siguientes sentencias de SQL pueden utilizar la
CURRENT TIME o CURRENT vista:
TIMESTAMP) que no coincide con el v COMMENT ON
tipo de datos de la columna. v DROP VIEW o DROP TABLE
7 Se especificó una función que no está v CREATE ALIAS
soportada. La función generada debe ser v CREATE VIEW o CREATE TABLE
una de las funciones de conversión
(cast) generadas por el sistema o una de No se puede procesar la sentencia.
las funciones BLOB, DATE, TIME o Respuesta del Usuario: Si “<nombre>” es una
TIMESTAMP incorporadas. vista, vuelva a crearla emitiendo una sentencia
8 El argumento de una función de CREATE VIEW, con la misma definición de vista
fecha/hora no era una constante de que la vista no operativa. Si “<nombre>” es una
serie de caracteres o el registro especial tabla de resumen, vuelva a crear la tabla de
de fecha/hora correspondiente. resumen emitiendo la sentencia CREATE TABLE
con la misma definición de tabla de resumen que
9 Se ha especificado una función de la tabla de resumen no operativa.
conversión (cast) generada por el
sistema y la columna no está definida sqlcode: -575
con un tipo definido por el usuario. sqlstate: 51024
10 Se ha especificado un valor con una
escala no cero para la opción START
WITH o INCREMENT BY de una
columna de identidad.
<0 Todo código de razón menor que cero es

118 Consulta de mensajes, Volumen 2


SQL0576N El alias “<nombre>” no puede SQL0579N La función o el procedimiento
crearse para “<nombre2>” porque definido por el usuario
se originaría una cadena de alias “<nombre-función>” (nombre
repetitiva. específico “<nombre-específico>”)
ha intentado leer los datos, pero
Explicación: La definición del alias “<nombre>”
no se ha definido como READ
para “<nombre2>” causaría una cadena de alias
SQL DATA o MODIFIES SQL
repetitiva que nunca se resolvería. Por ejemplo,
DATA.
″alias A hace referencia a alias B, el cual hace
referencia a alias A″ es una cadena de alias Explicación: Al programa utilizado para
repetitiva que nunca se resolvería. implementar el cuerpo de una función o
procedimiento definido por el usuario no se le
No se puede procesar la sentencia.
permite leer datos de SQL.
Respuesta del Usuario: Modifique la definición
Respuesta del Usuario: Elimine las sentencias
del alias “<nombre>” o revise la definición de
de SQL que leen datos y vuelva a compilar el
uno de los otros alias de la cadena para evitar
programa. Para los procedimientos almacenados,
que la cadena sea repetitiva.
investigue el nivel de SQL permitido, como se
sqlcode: -576 especifica en la sentencia CREATE PROCEDURE.

sqlstate: 42916 sqlcode: -579


sqlstate: 38004
SQL0577N La función o el procedimiento
sqlstate: 42985
definido por el usuario
“<nombre-función>” (nombre
específico “<nombre-específico>”) SQL0580N Las expresiones resultantes de una
ha intentado modificar los datos, expresión CASE no pueden ser
pero no se ha definido como todas NULL.
MODIFIES SQL DATA.
Explicación: La sentencia contiene una
Explicación: Al programa utilizado para expresión CASE cuyas expresiones de resultado
implementar el cuerpo de una función o (expresiones que siguen a las palabras THEN y
procedimiento definido por el usuario no se le ELSE) están codificadas con la palabra clave
permite modificar datos de SQL. NULL.
Respuesta del Usuario: Elimine las sentencias No se puede procesar la sentencia.
de SQL que modifican datos y vuelva a compilar
Respuesta del Usuario: Modifique la expresión
el programa. Para los procedimientos
CASE para que incluya por lo menos una
almacenados, investigue el nivel de SQL
expresión de resultado que no sea la palabra
permitido, como se especifica en la sentencia
clave NULL.
CREATE PROCEDURE.
sqlcode: -580
sqlcode: -577
sqlstate: 42625
sqlstate: 38002
sqlstate: 42985
SQL0581N Los tipos de datos de las
expresiones resultantes de una de
las expresiones CASE no son
compatibles.
Explicación: La sentencia contiene una
expresión CASE que tiene expresiones de

Capítulo 2. Mensajes SQL 119


resultado (expresiones que siguen a las palabras No se da soporte a dichas expresiones CASE. La
clave THEN y ELSE) que no son compatibles. expresión CASE puede formar parte de una
función escrita en SQL.
El tipo de datos de una expresión CASE se
determina mediante las ″Normas de los tipos de
No se puede procesar la sentencia.
datos de resultado″ de las expresiones
resultantes. Los tipos de datos de las expresiones Respuesta del Usuario: Elimine el predicado
resultantes pueden ser incompatibles por una de cuantificado, el predicado IN o el predicado
las siguientes razones: EXISTS de la expresión CASE. Si la expresión
v No todos son tipos de datos carácter. CASE forma parte de una función, es posible que
sea necesario escribir la consulta sin la función
v No todos son tipos de datos numéricos.
que causa el error.
v No todos son tipos de datos tipo fecha.
sqlcode: -582
v No todos son tipos de datos tipo hora.
v No todos son tipos de datos de indicación sqlstate: 42625
horaria.
v No todos son de los mismos tipos de datos SQL0583N La utilización de la rutina
diferenciados definidos por el usuario. “<nombre-rutina>” no es válida
ya que no es determinante o tiene
No se puede procesar la sentencia.
una acción externa.
Respuesta del Usuario: Corrija las expresiones
Explicación: La rutina (función o método)
de resultado de modo que sean compatibles.
“<nombre-rutina>” se define como una rutina no
sqlcode: -581 determinante o como una rutina con acción
externa. No se da soporte a este tipo de rutina en
sqlstate: 42804
el contexto en el que se ha utilizado. Los
contextos en los que este tipo de función no es
SQL0582N Una expresión CASE en una válida son:
cláusula VALUES, un predicado v Como primer operando del predicado
IN, una cláusula GROUP BY o BETWEEN.
una cláusula ORDER BY no
v En la expresión anterior a la primera palabra
puede incluir un predicado
clave WHEN de una expresión sólo en
cuantificado, un predicado IN que
mayúsculas o minúsculas.
utilice una selección completa o
un predicado EXISTS. v En una expresión de una cláusula GROUP BY.
v En una expresión de una cláusula ORDER BY
Explicación: Una condición de búsqueda de una
(sólo acción externa).
expresión CASE es:
v en una cláusula FILTER de una especificación
v un predicado cuantificado (uno que utilice
de predicado definida por el usuario o de una
SOME, ANY o ALL),
definición de extensión de índice
v un predicado IN que utilice una selección
completa o No se puede procesar la sentencia.
v un predicado EXISTS Respuesta del Usuario: Si el uso de una rutina
no determinante o con acción externa no fue
y la expresión CASE forma parte de:
intencionado, sustituya la rutina por una que no
v una cláusula VALUES tenga dichas características. Si el comportamiento
v un predicado IN asociado con la rutina no determinante o con
v una cláusula GROUP BY o acción externa es intencionado, utilice la forma
alternativa de las sentencias que convierten en
v una cláusula ORDER BY. explícita la intención.

120 Consulta de mensajes, Volumen 2


v En lugar del predicado BETWEEN, utilice la Respuesta del Usuario: Sustituya el valor de la
sentencia correspondiente utilizando la cláusula VALUES por uno que no sea NULL ni
combinación correspondiente de predicados de DEFAULT. Si se utiliza DEFAULT como nombre
comparación (a>=b y a<=c en lugar de a entre de columna, debe estar en mayúsculas y entre
b y c). comillas.
v En lugar de una cláusula when simple, utilice sqlcode: -584
la cláusula de búsqueda (searched when)
correspondiente donde tendría que sqlstate: 42608
especificarse la rutina en la condición de
búsqueda. SQL0585N El nombre de esquema
v Elimine la rutina no determinante o la de “<nombre-esquema>” no puede
acción externa de la cláusula GROUP BY. Si aparecer más de una vez en la vía
desea agrupar el resultado en una columna en de acceso de la función.
base a una rutina no determinante o de acción
externa, utilice una expresión de tabla anidada Explicación: La vía de acceso de la función
o de tabla común para proporcionar primero incluye el “<nombre-esquema>” en más de una
una tabla de resultados con la expresión como ocasión. La vía de acceso de la función incluye
una columna del resultado. una aparición de cada nombre de esquema.
v Elimine la rutina de acción externa de la No se puede procesar la sentencia.
cláusula ORDER BY. Si la columna forma parte
Respuesta del Usuario: Elimine las apariciones
del conjunto de resultados de la consulta,
duplicadas de “<nombre-esquema>” de la vía de
cambie la expresión de la cláusula ORDER BY
acceso de la función.
por el formato de entero simple o de nombre
de columna simple de la clave de clasificación. sqlcode: -585
v Elimine la rutina no determinante o la de sqlstate: 42732
acción externa de la cláusula FILTER.
sqlcode: -583 SQL0586N La longitud total del registro
CURRENT FUNCTION PATH no
sqlstate: 42845 puede sobrepasar los 254
caracteres.
SQL0584N Uso no válido de NULL o Explicación: El registro especial CURRENT
DEFAULT. FUNCTION PATH se define como
Explicación: Sólo se puede utilizar DEFAULT en VARCHAR(254). El contenido de la serie incluye
una cláusula VALUES que forme parte de una cada nombre de esquema entrecomillado y si hay
sentencia INSERT. más de un nombre de esquema, éstos están
separados por comas. La longitud total de una
Una cláusula VALUES que no forme parte de serie de todos los nombres de esquema en
una sentencia INSERT debe tener un valor que CURRENT FUNCTION PATH no puede
no sea NULL en una fila de cada columna, como sobrepasar los 254 caracteres de longitud. La
mínimo. sentencia SET CURRENT FUNCTION PATH o la
opción FUNCPATH del mandato PREP o BIND
Si se utiliza DEFAULT como nombre de columna
que provoca este mensaje sobrepasaría este
en una cláusula WHERE o HAVING, debe estar
límite.
en mayúsculas y entre comillas.
La sentencia o el mandato no se pueden
Usuarios del sistema federado: No se puede
procesar.
utilizar DEFAULT en una cláusula VALUES de
una sentencia INSERT en la que el objeto es un Respuesta del Usuario: Elimine los nombres de
apodo. esquema con el fin de reducir la longitud total

Capítulo 2. Mensajes SQL 121


para que se adecue a los 254 caracteres de clave primaria o una clave exclusiva y el índice
longitud máxima. Si todos los nombres de indicado coincide con el índice necesario.
esquema son obligatorios, será necesario
Al crear un índice de clave primaria o de clave
consolidar algunas funciones definidas por el
exclusiva, la descripción del índice coincide si
usuario para que sean necesarios menos nombres
identifica al mismo conjunto de columnas (en
de esquema en CURRENT FUNCTION PATH.
cualquier orden) que la clave primaria o
sqlcode: -586 exclusiva, tanto si las especificaciones son
ascendentes como descendentes, y se indica
sqlstate: 42907
como exclusivo.
Se procesa la sentencia satisfactoriamente.
SQL0590N El nombre “<nombre>”
especificado en el procedimiento Respuesta del Usuario: No es necesaria
“<procedimiento>” no es ninguna acción.
exclusivo.
sqlcode: +598
Explicación: El nombre “<nombre>” se
sqlstate: 01550
especifica como un parámetro, variable SQL,
cursor, etiqueta o condición en el procedimiento
“<procedimiento>”. El nombre no es exclusivo. SQL0599W No se crean funciones de
comparación para un tipo
Respuesta del Usuario: Modifique el nombre
diferenciado que se basa en un
para que sea exclusivo.
tipo de datos de serie larga de
sqlcode: -590 caracteres.
sqlstate: 42734 Explicación: No se crean funciones de
comparación para un tipo diferenciado basado en
un tipo de datos de serie larga (BLOB, CLOB,
SQL0595W El nivel de aislamiento
DBCLOB, LONG VARCHAR o LONG
“<nivel-solicitado>” se ha
VARGRAPHIC), ya que las funciones
escalado a “<nivel-escalado>”.
correspondientes no están disponibles para estos
Explicación: DB2 no da soporte al nivel de tipos de datos incorporados.
aislamiento especificado. Se ha escalado al nivel
Esta es una situación de aviso. Se procesa la
de aislamiento superior siguiente al que da
sentencia satisfactoriamente.
soporte DB2.
Respuesta del Usuario: No es necesaria
Respuesta del Usuario: Para evitar que
ninguna acción.
aparezca este aviso, especifique un nivel de
aislamiento al que DB2 dé soporte. DB2 da sqlcode: +599
soporte a los niveles de aislamiento de Lectura
sqlstate: 01596
repetida (RR), Estabilidad de lectura (RS),
Estabilidad de cursor (CS) y de Lectura no
confirmada (UR).
sqlcode: +595
sqlstate: 01526

SQL0598W El índice ″<nombre>″ existente se


utiliza como índice de la clave
primaria o exclusiva.
Explicación: Se necesitaba un índice para una
operación ALTER TABLE que ha definido una
122 Consulta de mensajes, Volumen 2
SQL0600 - SQL0699
de datos> TABLE/VIEW”, y “UNKNOWN” lo
SQL0600N No se ha podido generar una
que indica que los valores reales de la fuente de
rutina “<nombre-rutina>” debido
datos especificada no se conocen.
a que una signatura está
duplicada o porque alteraría No se puede procesar la sentencia. No se crea
temporalmente una rutina ningún objeto y no se modifica ni altera el objeto
existente. existente.
Explicación: Durante la operación CREATE o Respuesta del Usuario: Descarte el objeto
ALTER, no se ha podido crear una función de existente o elija otro nombre para el nuevo
conversión generada por el sistema, un método objeto.
de observador, un método mutante o una
función de constructor porque otra función o Usuarios del sistema federado: Si la sentencia es
método con el mismo nombre y signatura ya CREATE FUNCTION MAPPING o CREATE
existe en el esquema o porque el método o TYPE MAPPING, el usuario también puede
función alteraría temporalmente un método que considerar no suministrar un nombre de
existe. correlación de tipos y el sistema generará
automáticamente un nombre exclusivo para esta
Respuesta del Usuario: Elija otro nombre para correlación.
el tipo definido por el usuario, atributo o función
de conversión que provoca el conflicto, o sqlcode: -601
descarte la función o método que tiene el mismo sqlstate: 42710
nombre que la función o método que no ha
podido generar.
SQL0602N La sentencia CREATE INDEX o
sqlcode: -600 CREATE INDEX EXTENSION
sqlstate: 42710 especifica demasiadas columnas
(16 es el máximo).

SQL0601N El nombre del objeto que se ha de Explicación: El número de columnas para el


crear es idéntico al nombre índice que se generarían por la sentencia
existente “<nombre>” de tipo CREATE INDEX excede el máximo de 16
“<tipo>”. columnas para el gestor de bases de datos. Si el
índice está definido en una tabla con tipo, hay
Explicación: La sentencia CREATE o ALTER ha una actividad general adicional que reduce el
intentado crear o añadir un objeto “<nombre>” número máximo de columnas especificadas a 15.
cuando ya existe un objeto del tipo “<tipo>” con
dicho nombre en el servidor de aplicaciones o en Para una sentencia CREATE INDEX
la misma sentencia. EXTENSION, la función GENERATE KEY
devuelve un número de columnas que excede el
Si el “<tipo>” es FOREIGN KEY, PRIMARY KEY, máximo permitido de 16 columnas en un índice.
UNIQUE o CHECK CONSTRAINT, el
“<nombre>” es el nombre de restricción Usuarios del sistema federado: El límite para el
especificado en la sentencia CREATE o ALTER resto de fuentes de datos es distinto. Este límite
TABLE o generado por el sistema. podría haberse sobrepasado. Este problema
puede detectarse en el servidor federado o en la
Usuarios del sistema federado: algunas fuentes fuente de datos.
de datos no proporcionan los valores adecuados
para los símbolos de mensaje “<nombre>” y No se puede procesar la sentencia.
“<tipo>”. En estos casos, “<nombre>” y “<tipo>” Respuesta del Usuario: Cambie la definición de
tendrán el siguiente formato: “OBJECT:<fuente índice para que cumpla con el límite de

Capítulo 2. Mensajes SQL 123


columnas, que es 16. Para una sentencia CREATE proporciona “<elemento-datos>” de la manera
INDEX EXTENSION, especifique una función siguiente:
GENERATE KEY distinta o redefina la función v En una sentencia CREATE o ALTER TABLE,
para que devuelva menos columnas. “<elemento-datos>” proporciona el nombre de
Usuarios del sistema federado: Cambie la la columna que contiene el error o el tipo de
definición de índice para que cumpla con el datos que contiene un error. Si el tipo de datos
límite de columnas para la fuente de datos. de la columna es un tipo estructurado, el valor
explícito o implícito de INLINE LENGTH debe
sqlcode: -602 ser 292 como mínimo y no puede exceder
sqlstate: 54008 32677.
v en una sentencia CREATE FUNCTION,
“<elemento-datos>” es un símbolo que
SQL0603N No se puede crear un índice identifica el área del problema en la sentencia.
exclusivo porque la tabla contiene Por ejemplo, ″PARAMETER 2″, ″RETURNS″ o
filas duplicadas con respecto a los ″CAST FROM″. En algunos casos, también
valores de las columnas puede ser el tipo de datos que contiene el
identificadas. error.
Explicación: El índice definido en la sentencia v En una sentencia CREATE DISTINCT TYPE,
CREATE INDEX no ha podido crearse como “<elemento-datos>” proporciona el nombre del
exclusivo, porque la tabla especificada ya tipo que se está definiendo o el tipo de datos
contiene filas que duplican los valores de las fuente que contiene el error.
columnas identificadas. v en una sentencia CREATE o ALTER TYPE,
Usuarios del sistema federado: Esta situación “<elemento-datos>” proporciona el tipo de
también puede detectarla la fuente de datos. atributo que contiene el error o el tipo
estructurado que contiene un valor de
No se puede procesar la sentencia. No se crea el longitud de línea incorrecto. La longitud de
índice especificado. línea no puede ser menor de 292 y del tamaño
Respuesta del Usuario: Revise los datos para que la función del constructor devuelve para
determinar si se permiten los datos duplicados. el tipo estructurado.
También puede considerar la posibilidad de crear v En CAST (expresión AS tipo-datos),
un índice no UNIQUE (no exclusivo). ″<elemento-datos>″ es ″CAST″ o el tipo de
datos que contiene el error.
sqlcode: -603
Usuarios del sistema federado: Si es una
sqlstate: 23515
sentencia CREATE TYPE MAPPING, se ha
intentado crear una correlación de tipos en la
SQL0604N El atributo de longitud, precisión que un atributo de tipo para el tipo de datos
o escala para la columna, tipo locales o el tipo de datos remotos no es válido.
diferenciado, tipo estructurado, Las razones posibles son:
atributo de tipo estructurado, v La precisión/longitud local se ha establecido
función o tipo correlación en 0 o en un valor negativo.
“<elemento-datos>” no es válido.
v El atributo de precisión/longitud se ha
Explicación: Existe un error en la especificación especificado para tipos de datos, como
del tipo de datos en una sentencia CREATE o fecha/hora/indicación de la hora, coma
ALTER, o en una especificación CAST. Puede flotante o entero.
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

124 Consulta de mensajes, Volumen 2


v El atributo de escala se ha especificado para invertidas y el necesario sí (o viceversa). En este
tipos de datos, como carácter, caso, el índice “<nombre>” debe eliminarse para
fecha/hora/indicación de la hora, coma que se pueda crear el índice necesario.
flotante o entero.
sqlcode: +605
v Se ha especificado la cláusula FOR BIT DATA
para un tipo no de caracteres. sqlstate: 01550
v Se ha establecido la precisión remota en 0 para
tipos remotos distintos a fecha y hora SQL0606N La sentencia COMMENT ON o
Informix. LABEL ON ha fallado porque el
v Está utilizándose un calificador de campo en propietario de la tabla o la
una correlación de tipos para un tipo de fecha columna especificada no es
y hora Informix. “<propietario>”.
v Un valor final es inferior al valor inicial de un Explicación: Se ha intentado poner un
rango de escala/precisión. comentario o etiqueta en una tabla o una
columna que no existe o cuyo propietario no es
No se puede procesar la sentencia.
el especificado en el texto del mensaje.
Respuesta del Usuario: Corrija la sintaxis y
Ha finalizado el proceso de la sentencia de SQL.
vuelva a intentarlo.
Respuesta del Usuario: Corrija la sentencia.
sqlcode: -604
Vuelva a intentarlo.
sqlstate: 42611
sqlcode: -606
sqlstate: 42505
SQL0605W No se ha creado el índice porque
el índice “<nombre>” ya existe
con la descripción necesaria. SQL0607N La “<operación>” no está definida
para objetos del sistema.
Explicación: Una operación CREATE INDEX ha
intentado crear un índice nuevo y el índice Explicación: La “<operación>” especificada en
indicado coincide con el índice necesario. la sentencia de SQL no puede realizarse en
objetos del sistema. Se ha intentado realizar una
Para CREATE INDEX, dos descripciones de
de las siguientes acciones:
índice coinciden si identifican las mismas
columnas en el mismo orden, con las mismas v DROP o ALTER un objeto propiedad del
especificaciones de orden ascendente o sistema, como por ejemplo una tabla de
descendente y si ambos están especificados como catálogos del sistema, una función integrada o
exclusivos o si el índice nuevo está especificado un tipo de datos integrado.
como no exclusivo. También, dos descripciones v COMMENT ON una función integrada
de índice coinciden si identifican las mismas propiedad del sistema.
columnas en el mismo orden con las mismas v INSERT o DELETE una tabla de catálogos del
especificaciones de orden ascendente o sistema.
descendente y si como mínimo una descripción
incluye el parámetro ALLOW REVERSE SCANS. v UPDATE directamente una tabla de catálogos
del sistema. Es posible actualizar algunas
No se ha creado el índice nuevo. columnas de un subconjunto de tablas de
catálogos del sistema. Para la operación
Respuesta del Usuario: No es necesaria
UPDATE de estas tablas de catálogos hay que
ninguna acción a menos que el índice existente
utilizar vistas que se puedan actualizar del
″<nombre>″ no sea un índice adecuado. Por
esquema SYSSTAT. Para ver una descripción
ejemplo, el índice existente “<nombre>” no es un
de las vistas de catálogos que se pueden
índice adecuado si no permite exploraciones

Capítulo 2. Mensajes SQL 125


actualizar (vistas SYSSTAT), consulte la columna, los nombres de columna de las
publicación Consulta de SQL. columnas de la lista de selección de la vista
v CREATE o DROP un índice en una tabla del deberán ser únicos.
sistema v La sentencia ALTER TABLE no puede añadir
v CREATE un activador en una tabla del sistema una columna a una tabla empleando una
columna que ya exista o que sea la misma que
v Se ha identificado una tabla del sistema que
otra columna que se esté añadiendo. Además,
no se puede actualizar en la cláusula FROM
sólo puede hacerse referencia a un nombre de
de una sentencia SELECT que contiene una
columna en una cláusula ADD o ALTER
cláusula FOR UPDATE. Para ver una lista de
COLUMN de una sola sentencia ALTER
los catálogos del sistema que se pueden
TABLE.
actualizar, consulte la publicación Consulta de
SQL. v CREATE INDEX no puede especificar más de
una vez un nombre de columna como parte de
v DROP o ALTER un espacio de tabla del
la clave de índice o de las columnas INCLUDE
sistema.
del índice.
v DROP o ALTER un grupo de nodos del
v CREATE TRIGGER no puede especificar más
sistema.
de una vez un nombre de columna en la lista
v REDISTRIBUTE los grupos de nodos de columnas que provoca la activación de un
IBMCATGROUP o IBMTEMPGROUP. activador de actualización.
No se puede procesar la sentencia. v Las sentencias CREATE TABLE OF no pueden
tener el mismo nombre definido para la
Respuesta del Usuario: No intente modificar columna REF IS y cualquier atributo del tipo
ningún objeto del sistema excepto aquellas estructurado.
columnas de las tablas de catálogos del sistema
que se puedan actualizar mediante las vistas v Las sentencias CREATE TYPE no pueden tener
SYSSTAT. Consulte la publicación Consulta de definido el mismo nombre para dos atributos.
SQL para obtener más información. Los nombres de atributo deben ser exclusivos
respecto al tipo y a todos los supertipos.
sqlcode: -607 v Las sentencias ALTER TYPE no pueden añadir
sqlstate: 42832 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
SQL0612N “<nombre>” es un nombre igual a otro atributo que se esté añadiendo.
duplicado. Asimismo, es posible que el nombre del
Explicación: Se ha emitido una sentencia con el atributo no sea el mismo que el de la columna
mismo nombre que aparece más de una vez allí REF IS en cualquier tabla creada a partir del
donde no se permiten duplicados. El lugar en el tipo estructurado. Además, sólo se puede
que aparecen estos nombres varía dependiendo hacer referencia a un nombre de atributo en
del tipo de sentencia. una cláusula ADD o DROP ATTRIBUTE de
una sola sentencia ALTER TYPE.
v Las sentencias CREATE TABLE no pueden
tener definido el mismo nombre de columna v Las sentencias CREATE FUNCTION no
para dos columnas. pueden tener definido el mismo nombre para
dos parámetros. El nombre utilizado en la
v Las sentencias CREATE VIEW o las
cláusula EXPRESSION AS no puede ser igual
definiciones de expresión de tabla común no
que un nombre de parámetro.
pueden tener el mismo nombre de columna en
la lista de nombres de columna. Si no se v Las sentencias CREATE INDEX EXTENSION
especifica ninguna lista de nombres de no pueden tener definido el mismo nombre
para dos parámetros.

126 Consulta de mensajes, Volumen 2


No se puede procesar la sentencia.
SQL0614N No puede crearse o modificarse el
Respuesta del Usuario: Especifique nombres índice o extensión de índice
exclusivos según corresponda al tipo de ″<nombre-índice>″ porque la
sentencia. longitud combinada de las
columnas especificadas es
sqlcode: -612 demasiado larga.
sqlstate: 42711 Explicación: No se ha podido crear o modificar
el índice porque la suma de las longitudes
SQL0613N La clave principal o una clave internas de columnas de claves sería superior a
exclusiva identificada por 1024. Además, no se puede crear un índice
“<nombre>” es demasiado larga o mediante la columna LONG VARCHAR, LONG
tiene demasiadas columnas. VARGRAPHIC ni LOB. Si el índice está definido
en una tabla con tipo, hay una actividad general
Explicación: La suma de las longitudes internas adicional de índice que reduce la longitud
de las columnas de la cláusula PRIMARY KEY o máxima en 4 bytes. El índice puede modificarse
de una cláusula UNIQUE identificada por mediante una sentencia ALTER TABLE que
“<nombre>” excede de 1024 o el número de modifica el tipo de datos de una o varias
columnas excede el máximo de 16. Asimismo, no columnas.
se puede definir una clave principal o una clave
exclusiva utilizando una columna LONG No se ha podido crear una extensión de índice
VARCHAR. Si la restricción exclusiva o clave porque la suma de las columnas que la función
principal está definida en una tabla con tipo, hay GENERATE KEY devolvería sería superior a
una actividad general adicional de índice que 1024.
reduce el número máximo de columnas No se puede procesar la sentencia. No se ha
especificadas a 15 y limita la longitud a 1020. creado el índice especificado o la extensión de
“<nombre>” es el nombre de restricción, si se ha índice o no se ha podido modificar la tabla.
especificado, de la clave principal o restricción Respuesta del Usuario: Para modificar la
exclusiva. Si no se ha especificado ningún definición de índice o alterar la columna, elimine
nombre de restricción, “<nombre>” es el nombre una o varias columnas de claves y reduzca la
de la primera columna especificada en la longitud de clave al máximo permitido. Para un
cláusula de clave principal o de restricción definición de extensión de índice, especifique
exclusiva seguido de tres puntos. una función GENERATE KEY distinta o redefina
No se puede procesar la sentencia. la función para reducir la longitud de la fila
devuelta.
Respuesta del Usuario: Modifique la definición
de clave principal o de clave exclusiva sqlcode: -614
eliminando una o varias columnas de claves de sqlstate: 54008
modo que se ajusten al límite de 16 columnas y
al límite de longitud de clave.
SQL0615N El objeto “<nombre-objeto>” de
sqlcode: -613 tipo “<tipo-objeto>” no se puede
sqlstate: 54008 eliminar porque está siendo
utilizado por el mismo proceso de
aplicación.
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.

Capítulo 2. Mensajes SQL 127


Respuesta del Usuario: Cierre cualquier cursor almacenamiento recuperable, especifique el
que dependa directa o indirectamente del objeto nombre del espacio db en el mandato
“<nombre-objeto>” y vuelva a someter la CREATE TABLE. De lo contrario, realice la
sentencia. acción indicada en (1) más arriba.
sqlcode: -615 A continuación, vuelva a ejecutar la sentencia
CREATE TABLE.
sqlstate: 55006
Si procede, adquiera un espacio db privado para
SQL0620N Ha fallado la sentencia CREATE el usuario.
TABLE porque el “<id-usuario>”
no tiene espacios db no privados, sqlcode: -620
recuperables con menos de 255
tablas. sqlstate: 57022
Explicación: No se ha especificado el nombre de
espacio db en la sentencia CREATE TABLE, por SQL0623N Ya existe un índice de clusters en
lo que el gestor de bases de datos ha intentado la tabla “<nombre>”.
encontrar un espacio db cuyo propietario fuese
“<id-usuario>”. Este mensaje aparecerá bajo una Explicación: La sentencia CREATE INDEX
de las condiciones siguientes: crearía un segundo índice de clusters en la tabla
especificada. Una tabla dada sólo puede tener un
1. No se han encontrado espacios db privados
índice de clusters.
en la base de datos de DB2 para VM para el
“<id-usuario>”. No se puede ejecutar la sentencia.
2. Se han encontrado uno o varios espacios db Respuesta del Usuario: Determine la identidad
para el “<id-usuario>”, pero cada uno y validez del índice de clusters existentes en la
contenía 255 tablas. tabla “<nombre>”. Tome en consideración la
3. Los espacios db estaban ubicados en creación del índice sin el atributo CLUSTER.
agrupaciones de almacenamiento no
sqlcode: -623
recuperables. Sólo estarán disponibles los
espacios db privados que existen en sqlstate: 55012
agrupaciones de almacenamientos
recuperables cuando la sentencia CREATE
TABLE no especifique el nombre de espacio SQL0624N La tabla “<nombre>” ya tiene una
db. clave “<tipo-clave>”.

Ha finalizado el proceso de la sentencia de SQL. Explicación: La clave principal o la clave de


partición no se puede definir en una sentencia
Respuesta del Usuario: Las sugerencias para las ALTER TABLE porque la tabla indicada ya tiene
tres condiciones anteriores son: una clave de este tipo.
1. Adquiera un espacio db privado de una No se puede ejecutar la sentencia.
agrupación de almacenamiento recuperable.
Es posible que necesite ayuda del Respuesta del Usuario: Una tabla no puede
administrador de bases de datos. tener más de una clave principal o una clave de
2. Descarte una tabla de un espacio db privado partición.
que resida en una agrupación de sqlcode: -624
almacenamiento para liberar una entrada o
realice la acción indicada en (1) más arriba. sqlstate: 42889
3. Si desea crear la tabla en un espacio db
existente en una agrupación de

128 Consulta de mensajes, Volumen 2


No se puede procesar la sentencia.
SQL0628N Hay varias palabras clave o en
conflicto implicadas en la cláusula Respuesta del Usuario: Modifique una columna
“<tipo-cláusula>”. de la clave para que acepte valores nulos o
cambie la norma de supresión,
Explicación: Varios motivos pueden haber
causado este diagnóstico para la sentencia. El sqlcode: -629
valor “<tipo-cláusula>” indica cuál de ellos se ha
producido exactamente. Las posibilidades a tener sqlstate: 42834
en cuenta son las siguientes:
v Puede que no se haya especificado la palabra SQL0631N FOREIGN KEY “<nombre>” es
clave en la misma sentencia que otra palabra demasiado largo o tiene
clave. demasiadas columnas.
v Puede que la palabra clave forme parte de una Explicación: La suma de las longitudes internas
secuencia de palabras clave en la que no se ha de columnas identificadas en la cláusula
impuesto el orden en que están especificadas. FOREIGN KEY de la sentencia CREATE TABLE
Es posible que, en dicho tipo se secuencia, se excede de 1024 o el número de columnas
haya especificado una palabra clave con la identificadas excede de 16. Asimismo, no puede
palabra clave opuesta. definirse una clave externa utilizando una
v Es posible que la palabra clave aparezca más columna LONG VARCHAR.
de una vez con distintos valores asociados.
“<nombre>” es el nombre de restricción, si se ha
v Es posible que la palabra clave necesite la especificado, de la cláusula FOREIGN KEY. Si no
especificación de otras palabras clave en se ha especificado el nombre de una restricción,
particular en la misma sentencia, que no se “<nombre>” es el primer nombre de columna
han especificado. especificado en la lista de columnas de la
Respuesta del Usuario: Compruebe que la cláusula FOREIGN KEY seguido de tres puntos.
sentencia cumpla con la sintaxis y con las No se puede procesar la sentencia.
normas definidas para la sentencia. Corrija las
apariciones de palabras clave duplicadas o que Respuesta del Usuario: Para modificar la
entren en conflicto. definición de la clave externa, elimine una o más
columnas de claves para que se cumpla el límite
sqlcode: -628 de columnas (16) y el límite de longitudes clave.
sqlstate: 42613 sqlcode: -631
sqlstate: 54008
SQL0629N No se puede especificar SET
porque FOREIGN KEY
“<nombre>” no puede contener SQL0632N FOREIGN KEY “<nombre>” no es
valores nulos. válido porque la tabla no puede
definirse como dependiente de la
Explicación: La opción SET NULL de la tabla “<nombre-tabla>” debido a
cláusula FOREIGN KEY indicada no es válida las restricciones de las normas de
porque ninguna columna de la clave permite supresión (código de razón =
valores nulos. “<código-razón>”).
“<nombre>” es el nombre de restricción, si se ha Explicación: No se puede definir una restricción
especificado, de la cláusula FOREIGN KEY. Si no de referencia porque la tabla de objetos de la
se ha especificado el nombre de una restricción, sentencia CREATE TABLE o ALTER TABLE no se
“<nombre>” es el primer nombre de columna puede definir como dependiente de la tabla
especificado en la lista de columnas de la “<nombre-tabla>” por uno de los códigos de
cláusula FOREIGN KEY seguido de tres puntos. razón siguientes:

Capítulo 2. Mensajes SQL 129


v (01) La relación hace referencia a sí misma y la norma de supresión indicada (NO ACTION,
ya existe una relación que hace referencia a sí RESTRICT o CASCADE).
misma con la norma de supresión SET NULL. v (02) La restricción de referencia se hace
v (02) La relación forma un ciclo de dos o más referencia a sí misma y la tabla es dependiente
tablas que hace que la tabla que se va a de una relación con una norma de supresión
suprimir esté conectada a sí misma (las demás CASCADE.
normas de supresión del ciclo serían v (03) La relación haría que la tabla que se va a
CASCADE). suprimir esté conectada a la misma tabla a
v (03) La relación hace que la tabla que se va a través de varias relaciones y estas relaciones
suprimir esté conectada a la tabla indicada a deben tener la misma norma de supresión (NO
través de varias relaciones y la norma de ACTION, RESTRICT o CASCADE).
supresión de la relación existente sea SET
“<nombre>” es el nombre de restricción, si se ha
NULL.
especificado, de la cláusula FOREIGN KEY. Si no
Las normas de supresión de las relaciones se ha especificado el nombre de una restricción,
existentes provocan el error, no la norma de “<nombre>” es el primer nombre de columna
supresión especificada en la cláusula FOREIGN especificado en la lista de columnas de la
KEY de la sentencia CREATE TABLE o ALTER cláusula FOREIGN KEY seguido de tres puntos.
TABLE.
No se puede procesar la sentencia.
“<nombre>” es el nombre de restricción, si se ha
Respuesta del Usuario: Si es posible, modifique
especificado, de la cláusula FOREIGN KEY. Si no
la norma de supresión.
se ha especificado el nombre de una restricción,
“<nombre>” es el primer nombre de columna sqlcode: -633
especificado en la lista de columnas de la
cláusula FOREIGN KEY seguido de tres puntos. sqlstate: 42915

No se puede procesar la sentencia. SQL0634N La norma de supresión de


FOREIGN KEY “<nombre>” no
Respuesta del Usuario: Si es posible, elimine la
debe ser CASCADE (código-razón
cláusula FOREIGN KEY particular de la
= “<código-razón>”).
sentencia CREATE TABLE o ALTER TABLE.
Explicación: La norma de supresión CASCADE
sqlcode: -632
especificada en la cláusula FOREIGN KEY de la
sqlstate: 42915 sentencia CREATE TABLE o ALTER TABLE no es
válida por uno de los códigos de razón
siguientes:
SQL0633N La norma de supresión de
FOREIGN KEY “<nombre>” debe v (01) Existe una restricción que se hace
ser “<norma-supresión>” (código referencia a sí misma con una norma de
de razón = “<código-razón>”). supresión SET NULL, NO ACTION o
RESTRICT.
Explicación: La norma de supresión
v (02) La relación formaría un ciclo que haría
especificada en una cláusula FOREIGN KEY de
que la tabla que se va a suprimir estuviera
la sentencia CREATE TABLE o ALTER TABLE no
conectada a sí misma. Una de las normas de
es válida. La norma de supresión indicada es
supresión existentes en el ciclo no es
necesaria por uno de los códigos de razón
CASCADE, de modo que es posible definir
siguientes:
esta relación si la norma de supresión no es
v (01) La restricción de referencia se hace CASCADE.
referencia a sí misma y una restricción
existente que hace referencia a sí misma tiene

130 Consulta de mensajes, Volumen 2


v (03) La relación haría que otra tabla que se sqlstate: 42601
fuese a suprimir estuviera conectada a la
misma tabla a través de varias vías de acceso
SQL0644N Se ha especificado un valor no
con normas de supresión diferentes o con la
válido para la palabra clave
norma de supresión igual a SET NULL.
″<palabra clave>″ en la sentencia
“<nombre>” es el nombre de restricción, si se ″<tipo-sentencia>″.
ha especificado, de la cláusula FOREIGN KEY.
Si no se ha especificado el nombre de una Explicación: La palabra clave ″<palabra clave>″
restricción, “<nombre>” es el primer nombre va seguida de un valor no válido según permite
de columna especificado en la lista de la descripción de ″<tipo-sentencia>″. Si el valor
columnas de la cláusula FOREIGN KEY es numérico, es posible que el valor esté fuera de
seguido de tres puntos. un rango definido. Si el valor es de otro tipo, no
pertenece al conjunto definido de valores válidos.
No se puede procesar la sentencia.
Respuesta del Usuario: Determine en la
Respuesta del Usuario: Si es posible, modifique documentación de referencia para el
la norma de supresión. ″<tipo-sentencia>″ cuáles son los valores válidos
sqlcode: -634 y realice el cambio adecuado.

sqlstate: 42915 sqlcode: -644


sqlstate: 42615
SQL0637N Se ha especificado más de una
cláusula PRIMARY KEY o más de SQL0647N La agrupación de
una cláusula DROP PRIMARY almacenamientos intermedios
KEY. “<nombre-agrupación-
Explicación: La sentencia CREATE TABLE almacenamientos-intermedios>”
contiene dos o más sentencias PRIMARY KEY o no está activa.
la sentencia ALTER TABLE contiene dos o más Explicación: La agrupación de almacenamientos
cláusulas PRIMARY KEY o DROP PRIMARY intermedios “<nombre-agrupación-
KEY. almacenamientos-intermedios>” no está activa en
No se puede procesar la sentencia. el entorno actual de base de datos. Se ha
efectuado un intento de encontrar otra
Respuesta del Usuario: Corrija la sentencia. agrupación de almacenamientos intermedios con
sqlcode: -637 el mismo tamaño de página pero no hay tales
agrupaciones de almacenamientos intermedios
sqlstate: 42614 activas en el entorno de base de datos actual. La
agrupación de almacenamientos intermedios
“<nombre-agrupación-almacenamientos-
SQL0638N La tabla “<nombre>” no se puede
intermedios>” se ha definido recientemente pero
crear porque no se ha especificado
no se ha activado todavía.
ninguna definición de columna.
No se puede procesar la sentencia.
Explicación: La sentencia CREATE TABLE no
contiene ninguna definición de columna. Respuesta del Usuario: La base de datos debe
detenerse y volverse a arrancar para activar la
No se puede procesar la sentencia.
agrupación de almacenamientos intermedios
Respuesta del Usuario: Añada una o más necesaria.
definiciones de columna a la sentencia.
sqlcode: -647
sqlcode: -638
sqlstate: 57003

Capítulo 2. Mensajes SQL 131


v un paquete que no se puede eliminar
SQL0648N No puede definirse la clave
utilizando la sentencia DROP porque la ha
externa porque haría que la tabla
creado el sistema para utilizarla con un
“<[Link]-tabla1>”
procedimiento SQL
que se va a suprimir estuviese
conectada a la tabla No se puede procesar la sentencia.
“<[Link]-tabla2>” a
través de varias vías de acceso. Respuesta del Usuario:
Código de razón = v La función “<nombre>” sólo se puede eliminar
“<código-razón>”. si se descarta el tipo diferenciado o el tipo
estructurado que ha provocado la definición
Explicación: La clave externa no puede de la función o método. El nombre de tipo
definirse debido a uno de los siguientes códigos diferenciado corresponde al nombre de la
de razón = “<código-razón>”: función o al tipo de los parámetros de la
01 La relación hará que la tabla función.
“<[Link]-tabla1>” que se v El método “<nombre>” sólo se puede eliminar
va a suprimir esté conectada a la tabla si se descarta el tipo estructurado que ha
“<[Link]-tabla2>” a través provocado la definición del método. El nombre
de varías vías de acceso con la misma del método corresponde con el nombre de un
norma de supresión de SET NULL. atributo del tipo estructurado.
02 La relación hará que la tabla v El paquete “<nombre>” sólo se puede eliminar
“<[Link]-tabla1>” que se si se descarta el procedimiento SQL que ha
va a suprimir esté conectada a la tabla provocado la definición del paquete. El
“<[Link]-tabla2>” a través nombre específico del procedimiento SQL se
de múltiples vías de acceso con puede encontrar si DSCHEMA y DNAME se
diferentes normas de supresión. recuperan de la tabla de catálogo
[Link] donde
Ha finalizado el proceso de la sentencia de SQL. BSCHEMA y BNAME coincide con
“<nombre>”, BTYPE es ’K’ y DTYPE es ’L’.
Respuesta del Usuario: Corrija la sentencia.
Vuelva a intentarlo. sqlcode: -658

sqlcode: -648 sqlstate: 42917


sqlstate: 42915
SQL0659N Se ha sobrepasado el tamaño
SQL0658N El objeto “<nombre>” no se máximo de un objeto de tabla.
puede eliminar explícitamente. Explicación: Uno o más de los objetos que
Explicación: El identificador “<nombre>” constituyen una tabla ha(n) alcanzado su tamaño
identifica a uno de los siguientes: máximo. Los objetos de almacenamiento que
constituyen una tabla son:
v una función de conversión o una función de
comparación que no se puede eliminar v Datos: Donde se almacenan los datos de
utilizando una sentencia DROP porque la ha columna básicos.
creado el sistema para utilizarla con un tipo v Índice: Donde se almacenan todos los índices
diferenciado de la tabla.
v un método que no se puede eliminar v Datos extensos: Donde se almacenan los datos
utilizando el método ALTER TYPE porque la de las columnas LONG VARCHAR y LONG
ha creado el sistema para utilizarla con un tipo VARGRAPHIC.
estructurado

132 Consulta de mensajes, Volumen 2


v Lob/Asignación Lob: Donde se almacenan los
SQL0668N La operación no está permitida
datos de las columnas BLOB, CLOB y
cuando la tabla subyacente (o una
DBCLOB y la información de control.
tabla dependiente) se encuentra
Cuando un objeto de almacenamiento ha en estado de pendiente de
alcanzado su tamaño máximo, no se puede comprobación.
ampliar más.
Explicación: Cuando una tabla está en estado
Respuesta del Usuario: Para crear espacio de pendiente de comprobación, puede haber una
dentro del objeto con el fin de almacenar nuevos o más filas que infrinjan las restricciones
datos, realice una de las acciones siguientes: definidas para los datos. Esta tabla no se puede
v Reorganice la tabla. utilizar para la operación. Una operación de una
tabla padre que no esté en un estado de
v Suprima de la tabla las filas que ya no pendiente de comprobación también puede
necesite. recibir este error si una tabla dependiente está en
v Descarte un índice de la tabla. un estado de pendiente de comprobación.
v Actualice las filas para reducir la cantidad de Respuesta del Usuario: Ejecute la sentencia SET
datos (después de esta acción puede ser INTEGRITY con la opción IMMEDIATE
necesario emitir un mandato reorg para CHECKED y asegúrese de que los datos
restituir almacenamiento no utilizado). satisfacen todas las restricciones definidas en la
sqlcode: -659 tabla o la tabla que dependa de ellos.
sqlcode: -668
sqlstate: 54032
sqlstate: 57016

SQL0667N No puede crearse FOREIGN KEY


“<nombre>” porque la tabla SQL0669N Un índice necesario del sistema
contiene filas con valores de clave no puede eliminarse
externa que no se pueden explícitamente.
encontrar en la clave padre de la Explicación: La sentencia DROP INDEX ha
tabla padre. intentado eliminar un índice necesario para:
Explicación: La definición de la clave externa v imponer la restricción de la palabra clave en
indicada ha fallado porque la tabla que se está una tabla
modificando contiene como mínimo una fila v imponer una restricción exclusiva en una tabla
donde la clave externa no coincide con el valor
de la clave padre de la tabla padre. v imponer la exclusividad en la columna del
identificador de objetos (OID) de una jerarquía
“<nombre>” es el nombre de la restricción, en de tablas con tipo
caso de que se haya especificado. Si no se ha v mantener una tabla de resumen duplicada.
especificado el nombre de una restricción,
“<nombre>” es el primer nombre de columna Un índice necesario del sistema no puede
especificado en la lista de columnas de la eliminarse mediante la sentencia DROP INDEX.
cláusula FOREIGN KEY seguido de tres puntos.
No se puede procesar la sentencia. No se ha
No se puede procesar la sentencia. No se
descartado el índice primario.
modifica la tabla especificada.
Respuesta del Usuario: Si no desea mantener la
Respuesta del Usuario: Elimine las filas
restricción principal o exclusiva, utilice la
erróneas de la tabla y defina una clave externa.
cláusula DROP PRIMARY KEY o la cláusula
sqlcode: -667 DROP CONSTRAINT de la sentencia ALTER
TABLE para eliminar la clave principal o la
sqlstate: 23520

Capítulo 2. Mensajes SQL 133


restricción exclusiva. Si el índice se había creado No se puede procesar la sentencia.
solamente para hacer cumplir la clave primaria o
Respuesta del Usuario: En función de la causa,
la clave exclusiva quedará descartado. Si no,
realice una de las siguientes acciones:
podría procesarse entonces la sentencia DROP
INDEX. v En el caso de CREATE TABLE o ALTER
TABLE:
El índice para una columna OID sólo puede
– Especifique un espacio de tabla con un
eliminarse mediante el descarte de la tabla.
tamaño de página mayor, si es posible.
El índice necesario para mantener una tabla – De lo contrario, reduzca la longitud de fila
resumen duplicada sólo se puede eliminar eliminando una o más columnas o
descartando primero la tabla de resumen reduciendo las longitudes de una o más
duplicada. columnas.
sqlcode: -669 sqlcode: -670
sqlstate: 42917
sqlstate: 54010

SQL0670N La longitud de fila de la tabla


excede del límite de ″<longitud>″ SQL0673N No se puede crear un índice de
bytes. (Espacio de tabla normal clave principal o exclusiva porque
″<nombre-espacio-tabla>″.) la tabla contiene filas que están
duplicadas con respecto a los
Explicación: La longitud de fila de una tabla en valores de las columnas de claves
el gestor de bases de datos no puede sobrepasar: principal o exclusiva identificadas
v 4005 bytes en un espacio de tabla con un de la restricción “<nombre>”.
tamaño de página de 4K.
Explicación: La definición de clave principal o
v 8101 bytes en un espacio de tabla con un exclusiva de la restricción identificada por
tamaño de página de 8K. “<nombre>” ha fallado porque la tabla que se
v 16293 bytes en un espacio de tabla con un está modificando ya contiene filas con valores
tamaño de página de 16 K. duplicados para las columnas de las cláusulas
v 32677 bytes en un espacio de tabla con un PRIMARY KEY o UNIQUE.
tamaño de página de 32 K. “<nombre>” es el nombre de la restricción, en
La longitud se calcula sumando las longitudes caso de que se haya especificado. Si no se ha
internas de las columnas. Encontrará los detalles especificado ningún nombre de restricción,
de las longitudes internas de columnas en el “<nombre>” es el nombre de la primera columna
tema dedicado a CREATE TABLE de la especificada en la cláusula de clave principal o
publicación Consulta de SQL. de restricción exclusiva seguido de tres puntos.
No se puede procesar la sentencia. No se
Se puede producir una de las condiciones modifica la tabla especificada.
siguientes:
Respuesta del Usuario: Elimine las filas
v La longitud de fila de la tabla definida en la
erróneas de la tabla antes de intentar definir la
sentencia CREATE TABLE o ALTER TABLE
clave principal o exclusiva.
sobrepasa el límite del tamaño de página del
espacio de tabla. El nombre de espacio de sqlcode: -673
tabla normal ″<nombre-espacio-tabla>″
sqlstate: 23515
identifica el espacio de tabla cuyo tamaño de
página se ha utilizado para determinar el
límite de la longitud de fila.

134 Consulta de mensajes, Volumen 2


sqlcode: -680
SQL0680N Se han especificado demasiadas
columnas para una tabla, vista o sqlstate: 54011
función de tabla.
Explicación: El número máximo de columnas SQL0683N La especificación para la columna,
permitidas para cada tabla depende del tamaño atributo, tipo definido por el
de página del espacio de tabla y los tipos de usuario o función
datos de las columnas. Los límites de tablas son: “<elemento-datos>” contiene
v El tamaño de página de 4 K permite un cláusulas incompatibles.
máximo de 500 columnas. Explicación: Este error pertenece a la
v Los tamaños de página de 8 K, 16 K y 32 K especificación de elementos de datos en una
permiten un máximo de 1012 columnas. sentencia CREATE o ALTER. Existen
especificaciones incompatibles, como por
El número real de columnas para una tabla se
ejemplo: ″INTEGER y FOR BIT DATA″. La
determina mediante la fórmula siguiente:
ubicación del error la proporciona
Número total de columnas * 8 + Número de
“<elemento-datos>” de la manera siguiente:
columnas LOB * 12 + Número de columnas de
enlace de datos * 28 <= límites de tamaño de fila v en una sentencia CREATE o ALTER TABLE,
para el tamaño de página. “<elemento-datos>” proporciona el nombre de
la columna que contiene el error.
El número máximo de columnas permitidas para v en una sentencia CREATE FUNCTION,
cada vista es 5000. “<elemento-datos>” es un símbolo que
identifica el área del problema en la sentencia.
El número máximo de columnas permitidas para Por ejemplo, ″PARAMETER 3″, ″RETURNS″ o
una función de tabla es 255. ″CAST FROM″.
v en una sentencia CREATE DISTINCT TYPE,
Usuarios del sistema federado: Las demás “<elemento-datos>” proporciona el nombre del
fuentes de datos pueden tener un límite máximo tipo que se está definiendo.
de columna distinto. Dicho límite se ha v en una sentencia CREATE o ALTER TYPE,
sobrepasado. “<elemento-datos>” identifica la cláusula que
contiene el error o proporciona el nombre del
No se puede procesar la sentencia. atributo que contiene el error.
Respuesta del Usuario: Asegúrese de que el No se puede procesar la sentencia.
número de columnas de la tabla o vista no
supere dicho límite. Si crea una tabla en la que Respuesta del Usuario: Elimine la
un tamaño de página mayor permitiría el incompatibilidad y vuelva a ejecutar la sentencia.
número de columnas, especifique un espacio de sqlcode: -683
tabla con el tamaño de página mayor. Cree tablas
o vistas separadas, según convenga, para que sqlstate: 42842
contengan la información adicional que quede
fuera del límite.
Usuarios del sistema federado: Limite el número
de columnas de la tabla al máximo soportado
para la fuente de datos. Cree tablas y vistas
separadas, tal como sea necesario, para conservar
información adicional más allá del número
máximo de columnas soportadas por la fuente de
datos.

Capítulo 2. Mensajes SQL 135


transición con la palabra clave precedente.
SQL0696N La definición de activador
“<nombre-activador>” incluye una sqlcode: -696
utilización no válida de nombre
de correlación o de nombre de sqlstate: 42898
tabla de transición “<nombre>”.
Código de razón=“<código- SQL0697N Los nombres de correlación OLD
razón>”. o NEW no se admiten en un
Explicación: La definición de activador incluía activador definido con la cláusula
una utilización no válida de “<nombre>”. El FOR EACH STATEMENT.
valor de “<código-razón>” indica el problema Explicación: El activador incluye como es
específico de la manera siguiente. sabido una cláusula REFERENCING con
1 El nombre de correlación NEW y el nombres de correlación OLD o NEW
nombre NEW_TABLE no se admiten en especificados así como la cláusula FOR EACH
un activador DELETE. STATEMENT. No se pueden especificar juntos.

2 El nombre de correlación OLD y el No se puede procesar la sentencia.


nombre OLD_TABLE no se admiten en Respuesta del Usuario: Elimine todos los
un activador INSERT. nombres de correlación OLD o NEW de la
3 El nombre OLD_TABLE y NEW_TABLE cláusula REFERENCING o sustituya FOR EACH
no se admiten en un activador BEFORE. STATEMENT por FOR EACH ROW.
sqlcode: -697
No se puede procesar la sentencia.
sqlstate: 42899
Respuesta del Usuario: Elimine el nombre de
correlación no válido o el nombre de tabla de

SQL0700 - SQL0799

SQL0707N No se ha podido crear el objeto SQL0713N El valor de sustitución de


″<nombre>″ porque los tres ″<registro-especial>″ no es válido.
primeros caracteres están
Explicación: El valor especificado en la
reservados para objetos del
sentencia SET <registro-especial> no es un valor
sistema.
válido del registro especial indicado o bien el
Explicación: La siguiente lista muestra los valor especificado es NULL como resultado de
nombres reservados: una variable de indicador.
v el nombre de un espacio de tabla no puede No se puede ejecutar la sentencia.
empezar por ’SYS’
Respuesta del Usuario: Corrija el valor de
v el nombre de un grupo de nodos no puede
sustitución y/o las variables de indicador.
empezar por ’SYS’ ni por ’IBM’
Consulte el manual Consulta de SQL para ver una
Respuesta del Usuario: Seleccione un nombre explicación de los valores válidos de cada
que no empiece por ninguno de los prefijos registro especial.
reservados.
sqlcode: -713
sqlcode: -707
sqlstate: 42815
sqlstate: 42939

136 Consulta de mensajes, Volumen 2


no se dan condiciones que vulneren el límite de
SQL0723N Se ha producido un error en una
la cascada.
sentencia de SQL activada en el
activador ″<nombre-activador>″. El “<nombre-activador>” especificado es uno de
La información que se devuelve los activadores que se activarían en el
sobre el error incluye el decimoséptimo nivel de cascada.
SQLCODE “<sqlcode>”, el
SQLSTATE “<sqlstate>” y los Respuesta del Usuario: Empiece con los
símbolos del mensaje activadores que activan las sentencias UPDATE,
“<lista-símbolos>” INSERT o DELETE que han recibido este error. Si
se repite alguno de estos activadores, asegúrese
Explicación: Una sentencia de SQL en el de que existe alguna condición que evite la
activador ″<nombre-activador>″ ha fallado activación del activador más allá de los límites
durante la ejecución del activador. Se establecidos. Si esta no es la causa de los
proporciona el sqlcode, el sqlstate y la lista de problemas, siga la cadena de activadores
símbolos de mensajes (cada símbolo está activada para determinar la cadena que
separado por un carácter de barra vertical). sobrepasa el límite de cascada.
Puede que los símbolos de mensajes estén
truncados. Consulte el mensaje correspondiente sqlcode: -724
al “<sqlcode>” para obtener información sqlstate: 54038
adicional sobre el error.
No se pueden procesar el activador ni la SQL0727N Se ha producido un error durante
sentencia de SQL original que ha ocasionado la la acción implícita de tipo
ejecución del activador. “<tipo-acción>” del sistema. La
Respuesta del Usuario: Compruebe el mensaje información que se devuelve
asociado al SQLCODE de la sentencia de SQL sobre el error incluye el
que ha fallado. Siga la acción que sugiera dicho SQLCODE “<sqlcode>”, el
mensaje. SQLSTATE “<sqlstate>” y los
símbolos de mensaje
sqlcode: -723 “<lista-símbolos>”.
sqlstate: 09000 Explicación: El proceso de una sentencia o un
mandato ha provocado que el gestor de bases de
datos ejecute implícitamente un proceso
SQL0724N La activación de un activador
adicional. Durante este proceso, se ha detectado
“<nombre-activador>”
un error. La acción que se ha intentado aparece
sobrepasaría el nivel máximo de
en “<tipo-acción>”:
cascada.
1 Revinculación implícita de un paquete
Explicación: La cascada de activadores se
produce cuando una sentencia de SQL activada 2 Preparación implícita de una sentencia
da como resultado la activación de otra de SQL dinámico colocada en
sentencia, o cuando una regla de supresión de antememoria
restricción de referencia provoca la activación de
activadores adicionales. La profundidad de este 3 Regeneración implícita de una vista
nivel de cascada se limita a 16. 4 Se reserva el uso del código de retorno a
Tenga en cuenta que en las situaciones en las que DB2.
un activador incluye una sentencia de SQL 5 enlace adicional de una sentencia de
activada que provoca directa o indirectamente la SQL
activación del mismo activador es una forma de
cascada que suele provocar este error, si es que

Capítulo 2. Mensajes SQL 137


Se proporciona el sqlcode, el sqlstate y la lista de
SQL0750N La tabla fuente no se puede
símbolos de mensajes (cada símbolo está
renombrar porque se hace
separado por un carácter de barra vertical).
referencia a ella en una vista,
Puede que los símbolos de mensajes estén
tabla de resumen, activador,
truncados. Consulte el mensaje correspondiente
función SQL, método SQL,
al “<sqlcode>” para obtener información
restricción de comprobación o
adicional sobre el error.
restricción de referencia.

La sentencia de SQL original o el mandato que Explicación: No se puede cambiar el nombre de


ha causado el “<tipo-acción>” no se puede la tabla fuente de la sentencia RENAME debido a
procesar y la acción implícita del sistema no ha alguna de las razones siguientes:
sido satisfactoria. v Se hace referencia a la tabla en una o varias
vistas ya existentes.
Usuarios del sistema federado: Puede que haya v Se hace referencia a la tabla en una o más
recibido este mensaje porque ha preparado tablas de resumen existentes.
dinámicamente una sentencia de SQL en una
sesión de paso a través y después ha intentado v Se hace referencia a la tabla en uno o varios
ejecutar la sentencia después de la sesión se haya activadores ya existentes. Esto abarca a los
cerrado. activadores de la tabla o a las referencias de
las sentencias de SQL activadas.
Respuesta del Usuario: Compruebe el mensaje v Se hace referencia a la tabla en una o varias
asociado al SQLCODE de la sentencia de SQL funciones SQL o métodos SQL ya existentes.
que ha fallado. Siga la acción que sugiera dicho
mensaje. v La tabla tiene definidas restricciones de
comprobación.
Si el paquete no es válido, puede utilizarse el v La tabla está implicada en una o varias
mandato REBIND para reproducir el error o para restricciones de referencia a modo de tabla
validar explícitamente el paquete una vez padre o tabla dependiente.
resuelto el problema.
No se puede procesar la sentencia.
En una anomalía mientras se vuelve a generar
una vista, el nombre de la vista que ha fallado se Respuesta del Usuario: Descarte las vistas, la
graba en el archivo [Link]. La vista tabla de resumen, los activadores, las funciones
anómala se puede eliminar o se puede efectuar SQL, los métodos SQL, las restricciones de
un cambio en la sentencia o el mandato que ha comprobación o de referencia de la tabla antes de
causado la regeneración de la vista. emitir la sentencia RENAME. Para las vistas o
tablas de resumen dependientes de la tabla,
Usuarios del sistema federado: Si la sentencia consulte en [Link] el lugar donde la
que ha fallado se había preparado tabla concuerda con las columnas BSCHEMA y
dinámicamente en una sesión de paso a través, BNAME. Para los activadores de la tabla,
abra otra sesión de paso a través, escriba y consulte en [Link] el lugar donde la
prepare la sentencia de nuevo y ejecútela tabla concuerda con las columnas BSCHEMA y
mientras la sesión permanezca abierta. BNAME. Para las funciones SQL o métodos SQL,
sqlcode: -727 consulte en [Link] el lugar donde la
tabla concuerda con las columnas BSCHEMA y
sqlstate: 56098 BNAME. Para las restricciones de comprobación
de la tabla, consulte en [Link] el
lugar donde la tabla concuerda con las columnas
TABSCHEMA y TABBNAME. Para las
restricciones de referencia dependientes de la
tabla, consulte en [Link] el lugar

138 Consulta de mensajes, Volumen 2


donde la tabla concuerda con las columnas sqlcode: -752
TABSCHEMA y TABNAME o con las columnas
REFTABSCHEMA y REFTABNAME. sqlstate: 0A001
sqlcode: -750
SQL0773N No se han encontrado
sqlstate: 42986
mayús./minús. para la sentencia
CASE
SQL0751N La función o procedimiento
Explicación: Se encontró una sentencia CASE
definido por el usuario
sin una cláusula ELSE en el cuerpo de la rutina
“<nombre-función>” (el nombre
de una procedimiento SQL. No se cumplió
específico es “<nombre-
ninguna de las condiciones especificadas en la
específico>”) ha intentado ejecutar
sentencia CASE.
una sentencia que no está
permitida. Respuesta del Usuario: Modifique la sentencia
CASE para manejar todas las condiciones que
Explicación: El programa utilizado para
pueden suceder.
implantar el cuerpo de una función o
procedimiento definido por el usuario no tiene sqlcode: -773
autorización para ejecutar la sentencia.
sqlstate: 20000
Respuesta del Usuario: Elimine la sentencia y
vuelva a compilar el programa.
SQL0776N El uso del cursor
sqlcode: -751 “<nombre-cursor>” no es válido.
sqlstate: 38003 Explicación: Se especifica el cursor
“<nombre-cursor>” como el nombre del cursor
sqlstate: 42985
para una sentencia de SQL en un procedimiento
SQL. El cursor no se puede especificar en una
SQL0752N Dentro de una unidad de trabajo sentencia CLOSE, FETCH o OPEN dentro de una
lógica no se permite establecer sentencia FOR.
conexión con una base de datos
Respuesta del Usuario: Elimine la sentencia
cuando se utiliza el valor de
CLOSE, FETCH o OPEN.
conexión CONNECT de tipo 1.
sqlcode: -776
Explicación: Se ha intentado conectar a otra
base de datos o a la misma base de datos antes sqlstate: 428D4
de emitir una sentencia COMMIT o ROLLBACK.
No se puede procesar la solicitud dentro de un
entorno de CONNECT de tipo 1. SQL0777N No se permiten las sentencias
compuestas anidadas.
Respuesta del Usuario:
Explicación: No se pueden anidar las sentencias
v Emita un mandato COMMIT o ROLLBACK compuestas atómicas en el cuerpo de la rutina de
antes de solicitar una conexión con otra base un procedimiento SQL.
de datos.
v Si hay que actualizar varias bases de datos Respuesta del Usuario: Asegúrese de que el
dentro de una unidad de trabajo, cambie los procedimiento SQL no contiene sentencias
valores de conexión a SYNCPOINT compuestas atómicas anidadas.
TWOPHASE y CONNECT 2 volviendo a sqlcode: -777
efectuar la precompilación o emitiendo la API
SET CLIENT desde dentro de la aplicación. sqlstate: 42919

Capítulo 2. Mensajes SQL 139


compuesta, excluyendo una sentencia FOR
SQL0778N La etiqueta final “<etiqueta>” no
anidada o una sentencia compuesta anidada.
es la misma que la etiqueta
inicial. v Si la sentencia GOTO se define en un
manejador, la “<etiqueta>” debe definirse en el
Explicación: La etiqueta “<etiqueta>” mismo manejador, siguiendo las demás reglas
especificada al final de FOR, IF, LOOP, REPEAT, de ámbito.
WHILE o de una sentencia compuesta en un
v Si la sentencia GOTO está definida fuera de
procedimiento SQL no es la misma que la
una manejador, la “<etiqueta>” no debe
etiqueta al principio de la sentencia. No se puede
definirse dentro de un manejador.
especificar una etiqueta final si no se especifica
una etiqueta inicial. Respuesta del Usuario: Especifique una
etiqueta válida en la sentencia GOTO, ITERATE
Respuesta del Usuario: Asegúrese de que la
o LEAVE.
etiqueta final es la misma que la etiqueta inicial
para FOR, IF, LOOP, REPEAT, WHILE y para sqlcode: -779
sentencias compuestas.
sqlstate: 42736
sqlcode: -778
sqlstate: 428D5 SQL0780N Se especifica UNDO para un un
manejador cuando no se
especifica ATOMIC para la
SQL0779N La etiqueta “<etiqueta>”
sentencia compuesta.
especificada en una sentencia
GOTO, ITERATE o LEAVE no es Explicación: Se especifica UNDO para un un
válida. manejador en una sentencia compuesta en un
procedimiento SQL. No se puede especificar
Explicación: Se especifica la etiqueta
UNDO si la sentencia compuesta no es ATOMIC.
“<etiqueta>” en una sentencia GOTO, ITERATE
o LEAVE de un procedimiento SQL. La etiqueta Respuesta del Usuario: Especifique que la
no está definida o no es una etiqueta válida para sentencia compuesta es ATOMIC o especifique
la sentencia. EXIT o CONTINUE en el manejador.
La etiqueta en una sentencia ITERATE debe ser sqlcode: -780
la etiqueta para una sentencia FOR, LOOP,
REPEAT o WHILE. sqlstate: 428D6

La etiqueta en una sentencia LEAVE debe ser la


etiqueta para una sentencia FOR, LOOP, SQL0781N No se ha definido la condición
REPEAT, WHILE o una sentencia compuesta. “<condición>” especificada en el
manejador.
La etiqueta en una sentencia GOTO debe
definirse con un ámbito que la sentencia GOTO Explicación: No se ha definido la condición
pueda alcanzar. “<condición>” especificada en un manejador en
un procedimiento SQL.
v Si la sentencia GOTO se definie en una
sentencia FOR, la “<etiqueta>” debe definirse Respuesta del Usuario: Defina la condición
dentro de la misma sentencia FOR, excluyendo utilizando la sentencia DECLARE CONDITION o
una sentencia FOR anidada o una sentencia elimine la condición del manejador.
compuesta anidada.
sqlcode: -781
v Si la sentencia GOTO se definie en una
sentencia compuesta, la “<etiqueta>” debe sqlstate: 42737
definirse dentro de la misma sentencia

140 Consulta de mensajes, Volumen 2


v Se le ha asignado el valor NULL a la variable.
SQL0782N Una condición o valor SQLSTATE
especificado en un manejador no No se puede procesar la sentencia.
es válido.
Respuesta del Usuario: Declare la variable
Explicación: Una condición o valor SQLSTATE SQLSTATE como CHAR(5) y la variable
especificado en un manejador en un SQL no es SQLCODE como INTEGER. Establezca la
válido por una de las razones siguientes: variable con un valor válido.
v La condición o el valor SQLSTATE ya lo ha sqlcode: -785
especificado un manejador en el mismo
ámbito. sqlstate: 428D8
v La condición o el valor SQLSTATE se
especificó en el mismo manejador que SQL0787N La sentencia RESIGNAL no está
SQLEXCEPTION, SQLWARNING o NOT dentro de un manejador.
FOUND.
Explicación: La sentencia RESIGNAL sólo se
Respuesta del Usuario: Elimine la condición o puede usar en manejadores de condición.
el valor SQLSTATE del manejador.
Respuesta del Usuario: Elimine la sentencia
sqlcode: -782 RESIGNAL o use una sentencia SIGNAL.
sqlstate: 428D7 sqlcode: -787
sqlstate: 0K000
SQL0783N Un nombre de columna duplicado
o una columna sin nombre se
especificó en una sentencia SQL0789N El tipo de datos para el parámetro
DECLARE CURSOR de una o variable “<nombre>” no están
sentencia FOR. soportados en la rutina SQL.

Explicación: La lista de selección en la sentencia Explicación: La rutina SQL (función, método o


FOR debe contener nombres de columna procedimiento) no da soporte a variables o
exclusivos. La lista de selección especificada parámetros de tipos de datos LOB o DATALINK,
contiene nombres de columna duplicados o REFERENCE, DISTINCT, STRUCTURED.
expresiones sin nombre. Respuesta del Usuario: No utilice variables
Respuesta del Usuario: Especifique nombres de SQL o parámetros de tipos de datos LOB o
columna exclusivos en la lista de selección DATALINK, REFERENCE, DISTINCT,
especificada en la sentencia FOR. STRUCTURED en la definición de rutina SQL.
Especifique un tipo de datos diferente para el
sqlcode: -783 parámetro o variable “<nombre>”.
sqlstate: 42738 sqlcode: -789
sqlstate: 429BB
SQL0785N La declaración o el uso de la
variable SQLSTATE o SQLCODE
no es válido. SQL0797N El activador “<nombre-
activador>” se define con una
Explicación: Se utilizó SQLSTATE o SQLCODE sentencia de SQL activada y no
como una variable en el cuerpo de la rutina de soportada.
una rutina SQL, pero no es válido por una de las
razones siguientes: Explicación: El activador se define con una
sentencia de SQL activada que coincide con la
v SQLSTATE no se ha declarado como CHAR(5)
lista siguiente.
v SQLCODE no se ha declarado como INTEGER

Capítulo 2. Mensajes SQL 141


v Un activador BEFORE puede incluir las
SQL0798N No se puede especificar un valor
siguientes sentencias de SQL activadas:
para la columna
– Una selección completa (fullselect). “<nombre-columna>” que se
– Una sentencia de variable de transición SET define como GENERATED
(solamente cuando se especifica FOR EACH ALWAYS.
ROW).
Explicación: Al insertar o actualizar una fila en
v Un activador AFTER puede incluir las una tabla, se especificó un valor para la columna
siguientes sentencias de SQL activadas: GENERATED ALWAYS “<nombre-columna>”.
– Una sentencia INSERT. Las columnas GENERATED ALWAYS no se
– Una sentencia UPDATE buscada. deben especificar en la lista-columna para
INSERT o en la cláusula SET para una
– Una sentencia DELETE buscada. actualización excepto si se especifica la palabra
– Una selección completa (fullselect). clave DEFAULT.
En algunos casos, el “<nombre-activador>” no No se realiza INSERT o UPDATE.
está disponible en el mensaje.
Respuesta del Usuario: Elimine la columna
Respuesta del Usuario: Compruebe en las GENERATED ALWAYS de la lista-columna o la
sentencias de SQL activadas del activador todas cláusula SET o especifique DEFAULT como el
las sentencias que no coincidan con las de la lista valor de la columna.
anterior y elimínela.
sqlcode: -798
sqlcode: -797
sqlstate: 428C9
sqlstate: 42987

SQL0800 - SQL0899
sqlcode: -801
SQL0801N Se ha intentado realizar una
división por cero. sqlstate: 22012
Explicación: El proceso de una función de
columna o de una expresión aritmética ha dado SQL0802N Se ha producido un
como resultado una división por cero. desbordamiento aritmético u otra
excepción aritmética.
No se puede procesar la sentencia. Para las
sentencias INSERT, UPDATE o DELETE, no se Explicación: El proceso de una función de
realiza ninguna inserción ni actualización. columna o expresión aritmética ha dado como
resultado un desbordamiento aritmético.
Respuesta del Usuario: Revise la sentencia de
SQL para determinar la causa del problema. Si el No se puede procesar la sentencia. Para las
problema depende de los datos, deberá revisar sentencias INSERT, UPDATE o DELETE, no se
los datos procesados cuando se produjo el error. realiza ninguna inserción ni actualización.
Consulte el manual Consulta de SQL para ver
rangos válidos para los tipos de datos. Respuesta del Usuario: Revise la sentencia de
SQL para determinar la causa del problema. Si el
Usuarios del sistema federado: Revise la problema depende de los datos, deberá revisar
sentencia de SQL para determinar la causa del los datos procesados cuando se produjo el error.
problema. Si el problema depende de los datos, Consulte el manual Consulta de SQL para ver
examine los datos que se estaban procesando en rangos válidos para los tipos de datos.
las fuentes de datos cuando se ha producido el
error. Puede que este error también se devuelva
cuando las funciones de una columna no pueden

142 Consulta de mensajes, Volumen 2


manejar el valor que la sentencia de SQL una vista, la restricción pesa sobre la tabla en la
devuelve. Por ejemplo, al emitir la sentencia que está definida la vista.
SELECT COUNT frente a una tabla que tiene
No se puede procesar la sentencia. No se
más filas que las que el límite
modifica la tabla.
MAX_LONGINT_INT SQL ha definido producirá
error de desbordamiento aritmético. Considere el Respuesta del Usuario: Revise las definiciones
uso de la función de columna COUNT_BIG para de todos los índices UNIQUE definidos en la
tablas con más de 2 147 483 647 filas. tabla de objetos para determinar las restricciones
de exclusividad que imponen dichos índices.
Usuarios del sistema federado: Revise la
sentencia de SQL para determinar la causa del Para una sentencia UPDATE, asegúrese de que la
problema. Si el problema depende de los datos, operación especificada no sea incoherente en sí
examine los datos que se estaban procesando en con las restricciones de exclusividad. Si ello no
las fuentes de datos cuando se ha producido el muestra el error, revise el contenido de la tabla
error. Consulte en el manual Consulta de SQL de objetos para determinar la causa del
correspondiente la fuente de datos para problema.
determinar los rangos válidos de los tipos de
datos. Para una sentencia INSERT, revise el contenido
de la tabla de objetos para determinar cuál de los
sqlcode: -802 valores de la lista de valores especificada infringe
la restricción de exclusividad. Si la sentencia
sqlstate: 22003
INSERT contiene una subconsulta, para
determinar la causa del problema debe
SQL0803N Uno o varios valores de la compararse el contenido de la tabla de objetos
sentencia INSERT, la sentencia direccionado por la subconsulta y el contenido
UPDATE o la actualización de la de la tabla de objetos.
clave externa originados por una
En una sentencia DELETE, revise las tablas
sentencia DELETE no son válidos
dependientes de las restricciones exclusivas en
porque generarían filas
claves externas que estén definidas con la norma
duplicadas de una tabla con una
ON DELETE SET NULL. Una tabla de este tipo
clave principal, una clave
tiene una columna de claves externa incluida en
exclusiva o un índice exclusivo.
un índice exclusivo que no puede definirse como
Explicación: La tabla de objetos de la sentencia nulo, puesto que ya hay un valor nulo en la
INSERT o UPDATE está restringida por uno o columna para dicha tabla.
más índices UNIQUE, de modo que debe tener
Usuarios del sistema federado: identifique el
valores exclusivos en ciertas columnas o grupos
problema en la fuente de datos que impide
de columnas. Como alternativa, una sentencia
procesar la petición (consulte el manual Problem
DELETE de una tabla padre ha originado la
Determination Guide para determinar qué fuente
actualización de una clave externa en una tabla
de datos impide procesar la sentencia de SQL) y
dependiente que estaba restringida por uno o
examine las definiciones de índice y los datos
varios índices UNIQUE, de tal manera que tenga
sobre las condiciones mencionadas
valores exclusivos en determinadas columnas o
anteriormente.
grupos de columnas. La razón por la que existe
el índice exclusivo puede ser que da soporte a sqlcode: -803
una restricción de clave principal o una
restricción exclusiva definida en la tabla. La sqlstate: 23505
consecución de la inserción o actualización
solicitada da lugar a la duplicación de los valores
de las columnas.
Si el objeto de la sentencia INSERT o UPDATE es

Capítulo 2. Mensajes SQL 143


[Link] no está establecido
SQL0804N Los parámetros de entrada del
en ’2’. Puede que esto sea necesario
programa de aplicación de la
debido a un tipo de objeto grande o a
petición actual no son válidos. El
un tipo estructurado.
código de razón es
″<código-razón>″. Si una variable 105 Un objeto grande de caracteres de doble
del sistema principal o SQLVAR byte tiene un valor impar según indica
de SQLDA no es válida, entonces: el puntero [Link],
variable del sistema que siempre es, en términos de bytes,
principal/número de SQLVAR = par para los DBCLOB.
″<número-var>″, SQLTYPE =
″<tipo-sql>″, SQLLEN = 106 El puntero SQLDATA no es válido o
″<len-sql>″, variable del sistema apunta a un almacenamiento
principal/tipo de SQLVAR = insuficiente.
″<entrada_o_salida>″. 107 El puntero SQLIND no es válido o
Explicación: Se ha producido un error al apunta a un almacenamiento
procesar la petición actual. insuficiente.

v Es posible que la lista de parámetros de 108 El puntero SQLDATALEN no es válido


llamada, que el precompilador crea, no sea o apunta a un almacenamiento
correcta si el programador de la aplicación ha insuficiente.
modificado la salida del precompilador o ha
109 Se prevé un número específico de
sobregrabado la lista de parámetros de
variables del sistema principal de
llamada de alguna otra forma.
entrada/SQLVARS para la sentencia de
v El SQLDA o variable(s) del sistema principal SQL actual.
de la sentencia de SQL no es válido.
110 El localizador LOB no está asociado con
v La petición efectuada no recibe soporte o está
un LOB de un tipo compatible.
fuera de contexto.
111 Un LOB está indicado por el SQLTYPE
Los códigos de razón se interpretan del modo
del SQLVAR, pero el segundo SQLVAR
siguiente:
es nulo.
100 La petición efectuada no recibe soporte
112 El campo SQLDATATYPE NAME no es
o está fuera de contexto.
válido. No se ajusta al formato para
101 [Link] es menor que identificar a un tipo definido por el
[Link] usuario que existe en la base de datos.
El formato para identificar a un tipo
102 [Link] no es válido. definido por el usuario que existe es
Usuarios del sistema federado: Un tipo como sigue: 8 bytes, seguidos de un
de datos de los datos que especifico no periodo, seguido de 18 bytes.
está soportado por el servidor federado 113 El campo SQLFLAG4 NAME no es
o por la fuente de datos a la que desea válido. Si se especifica un tipo
acceder. estructurado el valor debe ser X’12’. Si
103 La longitud especificada en se especifica un tipo de referencia el
[Link] o valor deber ser X’01’. De lo contrario, el
[Link] no es correcta valor debe ser X’00’.
para el tipo de SQL suministrado en
[Link]. En sentencias de SQL con variables del lenguaje
principal, utilice el número de variable del
104 Se espera la duplicación de SQLVARs, lenguaje principal para contar desde el principio
pero el campo SQLDOUBLED de

144 Consulta de mensajes, Volumen 2


de la sentencia (o subsentencia, en el caso de cabo este cometido si, estando conectado a la
SQL compuesto) y así localizar la variable del base de datos, emite desde el subdirectorio BND
lenguaje principal no válida. En sentencias que de la instancia uno de los siguientes mandatos
utilizan un SQLDA, se utiliza el número de CLP:
SQLVAR para localizar la SQLVAR no válida. En v ″DB2 bind @[Link] blocking all grant
un SQLDA de entrada, únicamente cuente las public″ en el caso de los programas de utilidad
variables del lenguaje principal de entrada o de DB2.
SQLVAR, y del mismo modo para las de salida.
v ″DB2 bind @[Link] blocking all grant
Tenga en cuenta que este número se basa en 1.
public″ en el caso de la CLI.
No se puede procesar la sentencia. Usuarios del sistema federado: Asegúrese de que
en las fuentes de datos correspondientes se
Respuesta del Usuario: Revise el programa de
hayan vinculado los paquetes necesarios para
aplicación para detectar si tiene anotado algún
servidor federado. Consulte el manual
error. El programador no debería intentar
Installation and Configuration Supplement para
modificar la salida del precompilador.
obtener más información sobre cómo vincular
Usuarios del sistema federado: Si recibe un paquetes y fuentes de datos.
código de razón 102, especifique un tipo de datos
soportado y vuelva a someter el programa. sqlcode: -805
sqlcode: -804
sqlstate: 51002
sqlstate: 07002
SQL0808N La semántica de la sentencia
SQL0805N No se encuentra el paquete CONNECT no es coherente con la
“<nombre-paquete>”. de otras conexiones existentes.
Explicación: Las causas posibles de que se haya Explicación: La sentencia CONNECT se origina
generado este mensaje (SQLCODE) son: en un archivo fuente que se precompiló con unas
v El paquete o programa especificado no está opciones de conexión diferentes (SQLRULES,
definido en la base de datos. tipo CONNECT, SYNCPOINT o tipo RELEASE)
de las utilizadas en un archivo fuente para el que
v No se vinculó el programa, o se descartó.
existe una conexión.
v La aplicación que se está ejecutando no está
vinculada a la base de datos. Respuesta del Usuario: Asegúrese de que todos
los archivos fuentes se precompilan utilizando
v Al tratar de ejecutar un programa de utilidad
las mismas opciones de la sentencia CONNECT
de DB2 o una aplicación de CLI, los
o, si esto no es posible, llame a la API SET
programas de utilidad de DB2 tal vez tengan
CLIENT para definir las opciones deseadas para
que volver a vincularse a la base de datos.
el proceso de aplicación antes de emitir la
No se puede procesar la sentencia. primera sentencia CONNECT.

Respuesta del Usuario: Especifique el nombre sqlcode: -808


del paquete correcto o vincule el programa. Si la
sqlstate: 08001
aplicación que se ejecuta no está vinculada a la
base de datos, póngase en contacto con el
administrador de la base de datos para que
realice la vinculación necesaria.
Si es preciso volver a vincular los programas de
utilidad de DB2 a la base de datos, el
administrador de la base de datos puede llevar a

Capítulo 2. Mensajes SQL 145


v La aplicación se ejecuta como una transacción
SQL0811N El resultado de una selección
de sólo consulta IMS.
escalar completa, de la sentencia
SELECT INTO o de la sentencia v La aplicación es una aplicación IMS o CICS
VALUES INTO es superior a una que intenta actualizar datos en un DBMS
fila. remoto que no admite la confirmación de dos
fases.
Explicación: Una de las siguientes causas ha
v La aplicación intenta actualizar datos en
originado el error:
múltiples ubicaciones y una de ellas no admite
v La ejecución de una sentencia SELECT INTO o la confirmación de dos fases.
VALUES INTO incluida ha dado como
resultado una tabla de más de una fila. Estas sentencias de SQL incluyen INSERT,
UPDATE, DELETE, CREATE, ALTER, DROP,
v La ejecución de la selección completa escalar
GRANT y REVOKE.
ha dado como resultado una tabla de más de
una fila.
No se puede ejecutar la sentencia.
Usuarios del sistema federado: Esta situación la
puede detectar servidor federado o la fuente de Respuesta del Usuario: Si la aplicación se
datos. ejecuta como una transacción de sólo consulta
IMS, consulte al programador del sistema IMS
sobre el modo de cambiar el estado de sólo
No se puede procesar la sentencia.
consulta de la transacción bajo la cual se ejecuta
Respuesta del Usuario: Asegúrese de que la la aplicación.
sentencia contenga las especificaciones de
Si la aplicación IMS o CICS intenta una
condición adecuadas. Si es así, tal vez haya un
actualización remota, hay que cambiar la
problema que está provocando la generación de
aplicación para ejecutarla como una aplicación
más de una fila cuando de hecho sólo debiera
local en el servidor DBMS o el servidor DBMS
devolverse una.
debe ampliarse para admitir la confirmación de
Usuarios del sistema federado: identifique el dos fases.
problema en la fuente de datos que impide
Si la aplicación intenta actualizar datos en
procesar la petición (consulte el manual Problem
múltiples ubicaciones, hay que cambiar la
Determination Guide para determinar qué fuente
aplicación o bien hay que ampliar todos los
de datos no puede procesar la sentencia de SQL)
DBMS implicados para que admitan la
y examine los criterios de selección y los datos
confirmación de dos fases.
correspondientes a este objeto.
sqlcode: -817
sqlcode: -811
sqlstate: 25000
sqlstate: 21000

SQL0818N Se ha producido un conflicto de


SQL0817N No se puede ejecutar la sentencia
indicaciones horarias.
de SQL porque la sentencia daría
como resultado una operación de Explicación: La indicación horaria que ha
actualización prohibida. generado el precompilador en el momento de la
precompilación no coincide con la indicación
Explicación: La aplicación ha intentado ejecutar
horaria almacenada con el paquete en el
una sentencia de SQL que daría como resultado
momento de la vinculación.
actualizaciones en los datos de usuario o en el
catálogo del subsistema. Esto está prohibido por La causa del problema puede ser:
uno de los motivos siguientes: v Se ha precompilado, compilado o enlazado sin
vincular una aplicación.

146 Consulta de mensajes, Volumen 2


v Se ha precompilado y vinculado sin compilar Respuesta del Usuario: Corrija el programa de
y enlazar el programa. aplicación de modo que coloque direcciones
v Se ha vinculado la aplicación con un archivo válidas en el SQLDA.
de vinculación resultante de una sqlcode: -822
precompilación distinta del programa de la
utilizada al producir el módulo del objeto sqlstate: 51004
enlazado en el módulo de la aplicación.
v Se ha vinculado una aplicación con el mismo SQL0840N Se han devuelto demasiados
nombre que un plan existente y se ha elementos en una lista de
ejecutado la aplicación (antigua) existente. SELECT.
Usuarios del sistema federado: Además de las Explicación: El número de elementos devueltos
causas citadas anteriormente, el problema en la lista de SELECT supera el máximo
también puede deberse a que no se vinculan los permitido. La cantidad máxima para las listas
paquetes en todas las fuentes de datos SELECT (que no sean expresiones comunes de
correspondientes. tablas) es de 1012. La cantidad máxima para las
listas SELECT en expresiones comunes de tablas
No se puede procesar la sentencia. es de 5000.
Respuesta del Usuario: Vuelva a vincular la No se puede procesar la sentencia.
aplicación, utilizando el archivo de vinculación
Respuesta del Usuario: Averigüe si realmente
del programa que coincide con el módulo de
es necesaria toda la información. (Tenga en
objeto. O ejecute el programa que corresponde al
cuenta que el número de elementos que se
paquete almacenado en la base de datos.
devuelve en una lista de SELECT * en la
Si está instalando la base de datos de ejemplo, sentencia de SQL SELECT * desde A, B, C es la
anote el número y el texto de este mensaje y suma del número de columnas de las tres tablas.)
póngase en contacto con el representante del Si es posible, vuelva a escribir la sentencia de
servicio técnico. SQL de modo que sólo se devuelvan los
elementos de información que necesite. Si toda la
Usuarios del sistema federado: Además de las
información es necesaria, divida la sentencia de
acciones citadas anteriormente, asegúrese de que
SQL en dos o más sentencias.
se vinculen los paquetes necesarios para servidor
federado en las fuentes de datos sqlcode: -840
correspondientes. Consulte el manual Installation
sqlstate: 54004
and Configuration Supplement para obtener más
información sobre cómo vincular paquetes y
fuentes de datos. SQL0842N La conexión con el servidor
“<nombre-servidor>” ya existe.
sqlcode: -818
Explicación: Está en vigor SQLRULES(STD) y
sqlstate: 51003
una sentencia CONNECT identifica una conexión
de SQL existente.
SQL0822N El SQLDA contiene una dirección
Respuesta del Usuario: La corrección depende
de datos o una dirección de
del error:
variable de indicador que no es
válida. v Si el nombre del servidor no es el que quería,
corríjalo.
Explicación: El programa de aplicación ha
v Si SQLRULES(STD) está en vigor y la
colocado una dirección no válida en el SQLDA.
sentencia CONNECT identifica una conexión
No se puede procesar la sentencia. de SQL existente, sustituya la sentencia

Capítulo 2. Mensajes SQL 147


CONNECT por SET CONNECTION o cambie v El tipo de datos de la columna asociada no era
la opción a SQLRULES(DB2). uno de los tipos de datos permitidos para una
columna de identidad. Se permiten los tipos
Corrija el error de la aplicación y vuelva a
de datos siguientes para una columna de
intentarlo.
identidad: SMALLINT, INTEGER, BIGINT y
DECIMAL con una escala de cero.
sqlcode: -842
v Se ha especificado un valor no válido para
INCREMENT BY. Este valor puede ser
sqlstate: 08002
cualquier valor positivo o negativo que se
pueda asignar a esta columna, pero no puede
SQL0843N El nombre de servidor no ser 0 ni puede sobrepasar el valor de una
especifica una conexión existente. constante de entero grande.
Explicación: Una sentencia, mandato o API ha v Se ha especificado un valor no válido para
especificado un nombre de servidor que no CACHE. El valor mínimo para CACHE es 2 y
identifica una conexión de SQL existente del el valor máximo es 32767.
proceso de aplicación. No se puede procesar la sentencia.
Esto puede haberse producido al utilizar: Respuesta del Usuario: Corrija la sintaxis y
v Una sentencia SET CONNECTION vuelva a someter la sentencia.
v Una sentencia RELEASE sqlcode: -846
v Una sentencia DISCONNECT
sqlstate: 42815
v Una sentencia SET o QUERY CLIENT
INFORMATION
SQL0859N El acceso a la Base de datos del
Respuesta del Usuario: La corrección depende Gestor de transacciones ha
del error: resultado anómalo con un
v Si el nombre del servidor no es el que quería, SQLCODE “<SQLCODE>”.
corríjalo.
Explicación: La aplicación se ha precompilado
v Asegúrese de que se ha establecido una con la opción SYNCPOINT(TWOPHASE) y
conexión con el servidor y de que está en un necesita una base de datos del gestor de
estado actual o latente antes de emitir la transacciones que coordine la confirmación de
petición para dicha conexión. dos fases. Entre las causas por las que la Base de
Corrija el error de la aplicación y vuelva a datos del Gestor de transacciones no está
intentarlo. disponible se encuentran las siguientes:
v No se ha creado.
sqlcode: -843 v El campo tm_database del archivo de
configuración del gestor de bases de datos no
sqlstate: 08003 se ha actualizado ni activado con el nombre de
la base de datos.
SQL0846N Especificación no válida de la v La base de datos existe, pero no se ha podido
columna identidad establecer comunicación con la misma.
“<nombre-columna>”. Respuesta del Usuario: Acciones posibles:
Explicación: Para una sentencia ALTER o v Consulte el SQLCODE que se ha devuelto
CREATE TABLE, la especificación de una junto con este mensaje y siga la acción
columna de identidad puede ser no válida por correctiva correspondiente a dicho SQLCODE.
uno de los motivos siguientes:

148 Consulta de mensajes, Volumen 2


v Compruebe que tm_database existe; si no es así, v La fuente de datos admite caracteres de un
cree una nueva base de datos o seleccione una solo byte y de doble byte, pero el sistema
base de datos existente para utilizarla como federado sólo admite caracteres de un solo
base de datos del TM. Se recomienda crear byte.
otra base de datos en el caso de que no haya
Respuesta del Usuario: No envíe sentencias ni
serias restricciones de almacenamiento en
mandatos de SQL que utilicen caracteres que no
disco.
sean comunes entre las páginas de códigos de la
v Actualice la configuración del gestor de bases aplicación y de la base de datos.
de datos para la base de datos del TM
utilizando el campo tm_database, si no se ha Usuarios del sistema federado: No envíe
hecho ya. sentencias ni mandatos de SQL que utilicen
caracteres que no sean comunes entre el sistema
v Compruebe que se puede establecer conexión
cliente, el sistema servidor y la fuente de datos.
con tm_database. Por ejemplo, intente la
conexión utilizando el procesador de línea de sqlcode: +863
mandatos.
sqlstate: 01539
v Asegúrese de que la tm_database seleccionada
no es una base de datos a la que se acceda a
través de DB2 Connect. SQL0865N El valor de tm_database no es
correcto.
sqlcode: -859
Explicación: La base de datos seleccionada
sqlstate: 08502 como tm_database en la configuración del gestor
de bases de datos no es válida. La base de datos
debe estar al nivel DB2 V2.1 o posterior y no
SQL0863W Se ha establecido una conexión puede ser una base de datos a la que se acceda a
satisfactoria, pero sólo se debe través de un protocolo DRDA (como por ejemplo
utilizar caracteres de un solo byte. DB2 Connect).
Explicación: La base de datos del servidor y la No se puede ejecutar la sentencia.
aplicación del cliente utilizan páginas de códigos
de distintos tipos de idioma, y todos aquellos Respuesta del Usuario:
caracteres que estén fuera del rango ASCII de 7 1. Actualice la configuración del gestor de bases
bits no están garantizados (porque sólo los de datos para especificar una base de datos
caracteres del rango ASCII de 7 bits existen en válida para el parámetro tm_database.
todas las páginas de códigos). Por ejemplo, 2. Emita db2stop y db2start para asegurarse de
puede establecerse conexión entre una página de que el cambio entra en vigor.
códigos del japonés y otra Latín-1, pero ninguno
de los caracteres japoneses estarán disponibles en sqlcode: -865
la página de códigos Latín-1, así que es preciso
evitarlos (aunque los caracteres del inglés sí que sqlstate: 08001
serían correctos).
Usuarios del sistema federado: Las causas SQL0866N La redirección de la conexión ha
posibles son: resultado anómala. Código de
v La base de datos federada admite caracteres de razón: “<código-razón>”
un solo byte y de doble byte, pero el sistema Explicación: La catalogación de directorio para
cliente de la base de datos sólo admite una base de datos ha hecho que se redireccione
caracteres de un solo byte. una conexión de una forma a la que no se da
soporte.
Los códigos de razón posibles son:

Capítulo 2. Mensajes SQL 149


01 Una conexión de base de datos implica sqlcode: -868
más de una redirección de un servidor a
otro; sólo se da soporte a la redirección sqlstate: 51022
de una conexión.
02 Se ha intentado realizar una conexión SQL0880N SAVEPOINT “<nombre-punto-
que implica tanto a un cliente o servidor salvaguarda>” no existe o no es
de la versión actual de DB2 como a un válido en este contexto.
cliente o servidor de la versión 1. Este
intento resulta anómalo porque no se da Explicación: Se ha producido un error al emitir
soporte a la redirección con clientes o una sentencia RELEASE o ROLLBACK TO
servidores de la versión 1. SAVEPOINT “<nombre-punto-salvaguarda>”. No
existe un punto de salvaguarda con ese nombre
Respuesta del Usuario: Las acciones a o se estableció fuera del contexto de ejecución
emprender, según el código de razón, son las atómico actual.
siguientes:
No se puede procesar la sentencia.
01 Vuelva a catalogar la base de datos de
modo que no haya más de un servidor Respuesta del Usuario: Corrija el nombre del
que redirija la conexión a otro servidor punto de salvaguarda en la sentencia y vuelva a
en la vía de acceso de la conexión. emitirla.

02 Vuelva a catalogar la base de datos de sqlcode: -880


modo que no haya ningún servidor sqlstate: 3B001
intermedio que redirija la conexión.

sqlcode: -866 SQL0881N Un SAVEPOINT con el nombre


“<nombre-punto-salvaguarda>” ya
existe, pero este nombre de punto
sqlstate: 08001
de salvaguarda no se puede
reutilizar.
SQL0868N Se ha intentado emitir un
Explicación: El nombre “<nombre-punto-
mandato CONNECT utilizando
salvaguarda>” ya se ha usado en una sentencia
una cláusula USER/USING en un
SAVEPOINT. El nombre del punto de
servidor con el que ya existe
salvaguarda no se puede reutilizar porque, como
conexión.
mínimo, una de las sentencias SAVEPOINT que
Explicación: Ya existe una conexión actual o usan este nombre también ha especificado la
latente sobre el servidor, por lo que no se puede palabra clave UNIQUE, que afirma que el
emitir un CONNECT sobre dicho servidor con la nombre debe ser exclusivo.
cláusula USER/USING.
No se puede procesar la sentencia. No se ha
Respuesta del Usuario: Acciones posibles: establecido el punto de salvaguarda nuevo. El
v Utilice la sentencia SET CONNECTION para punto de salvaguarda antiguo con el mismo
que la conexión pase de DORMANT nombre todavía existe.
(suspendida) a actual. Respuesta del Usuario: Escoja otro nombre para
v Utilice la sentencia CONNECT sin este punto de salvaguarda y vuelva a emitir la
USER/USING si la aplicación utiliza sentencia SAVEPOINT. Si este nombre de punto
SQLRULES(DB2). de salvaguarda que existe se tiene que reutilizar,
v Complete la unidad de trabajo actual, emita la sentencia RELEASE SAVEPOINT para
desconéctese y vuélvase a conectar utilizando liberarlo. Sin embargo, tenga en cuenta que la
USER/USING. sentencia RELEASE SAVEPOINT también libera
cualquier punto de salvaguarda que se hubiera

150 Consulta de mensajes, Volumen 2


establecido en la transacción desde el momento se permite emitir ROLLBACK TO SAVEPOINT
en que el punto de salvaguarda específico se sin especificar un nombre de punto de
estableció. Para obtener más información, salvaguarda específico cuando no existe ningún
consulte la publicación Consulta de SQL. punto de salvaguarda.
sqlcode: -881 No se puede procesar la sentencia.
sqlstate: 3B501 Respuesta del Usuario: Emita una sentencia
diferente o intente retrotraer toda la transacción
con la sentencia ROLLBACK.
SQL0882N El punto de salvaguarda no existe.
sqlcode: -882
Explicación: Se ha producido un error al emitir
una sentencia ROLLBACK TO SAVEPOINT. No sqlstate: 3B502

SQL0900 - SQL0999
dirigido al personal de soporte de IBM).
SQL0900N Hay un error en el estado de la
aplicación. No hay ninguna Respuesta del Usuario: Anote el número de
conexión con la base de datos. mensaje (SQLCODE) y la razón “<razón>”.
Explicación: No hay ninguna conexión a una Si estaba activo un rastreo, llame al Recurso de
base de datos. Esto puede ser debido a uno de Rastreo Independiente (Independent Trace
los siguientes motivos: Facility) desde el indicador de mandatos del
v Un error grave en el estado de la aplicación ha sistema operativo. Consulte el Recurso de
hecho que se perdiera la conexión a la base de Rastreo Independiente en la publicación
datos. Troubleshooting Guide para obtener información
sobre cómo utilizar este recurso. A continuación,
v Puede que se haya desconectado la aplicación
póngase en contacto con el representante del
de la base de datos y que no se haya
servicio técnico con la siguiente información:
establecido una nueva conexión antes de
ejecutar la siguiente sentencia de SQL. v Descripción del problema
v SQLCODE
Respuesta del Usuario: Vuelva a establecer una
conexión conmutando a una conexión existente v razón “<razón>”
suspendida (utilizando CONNECT TO o SET v Contenido del SQLCA, si es posible
CONNECTION) o establezca una nueva v Archivo de rastreo, si es posible.
conexión (mediante CONNECT).
Usuarios del sistema federado: localice el
sqlcode: -900 problema en la fuente de datos que impide
sqlstate: 08003 procesar la petición (consulte la publicación
Problem Determination Guide para determinar
qué fuente de datos impide procesar la sentencia
SQL0901N La sentencia de SQL ha fallado de SQL) y siga los pasos de diagnóstico
debido a un error del sistema que pertinentes para esa fuente de datos. Los
no es grave. Las siguientes procedimientos para la determinación de
sentencias de SQL posteriores problemas correspondientes a las fuentes de
pueden procesarse. (Código de datos pueden variar, por consiguiente, consulte
razón “<razón>”.) los manuales de fuente de datos pertinentes.
Explicación: Se ha producido un error debido a
un error del sistema. Se ha interrumpido el sqlcode: -901
proceso de la sentencia de SQL por la razón
“<razón>” (sólo está disponible en inglés y va sqlstate: 58004

Capítulo 2. Mensajes SQL 151


podido preparar la base de datos que se debía
SQL0902C Se ha producido un error del
confirmar. La sentencia COMMIT ha dado un
sistema (código de razón =
error y se ha retrotraído la transacción.
“<código-razón>”). No pueden
procesarse las sentencias de SQL Los códigos de razón posibles son:
posteriores.
01 Se ha perdido una conexión con una de
Explicación: Se ha producido un error del las bases de datos que participan en la
sistema. unidad de trabajo.
Respuesta del Usuario: Anote el número de Usuarios del sistema federado: Si la base
mensaje (SQLCODE) y el código de razón de este de datos a la que está conectado es una
mensaje. base de datos del servidor federado
donde se utilizan apodos, significa que
Si estaba activo un rastreo, llame al Recurso de
se ha perdido una conexión con una de
Rastreo Independiente (Independent Trace
las fuentes de datos necesarias para un
Facility) desde el indicador de mandatos del
apodo dentro de la base de datos.
sistema operativo. Consulte el Recurso de
Rastreo Independiente en la publicación 02 Se ha accedido a una de las bases de
Troubleshooting Guide para obtener información datos o a uno de los nodos que
sobre cómo utilizar este recurso. A continuación, participan en la unidad de trabajo, pero
póngase en contacto con el representante del no se ha podido preparar la
servicio técnico con la siguiente información: confirmación.
v Descripción del problema Usuarios del sistema federado: Si la base
v SQLCODE y código de razón incluido de datos a la que está conectado es una
v Contenido del SQLCA, si es posible base de datos del servidor federado en
la que se utilizan apodos, una de las
v Archivo de rastreo, si es posible.
fuentes de datos necesarias para un
Usuarios del sistema federado: localice el apodo no puede preparar una
problema en la fuente de datos que impide confirmación.
procesar la petición (consulte la publicación
03 Un DB2 Data Links Manager que
Problem Determination Guide para determinar
participa en la unidad de trabajo no ha
qué fuente de datos impide procesar la sentencia
podido preparar la confirmación.
de SQL) y siga los pasos de diagnóstico
pertinentes para esa fuente de datos. Los Respuesta del Usuario: Si se ha perdido una
procedimientos para la determinación de conexión a una base de datos, vuelva a establecer
problemas correspondientes a las fuentes de dicha conexión. Si el error no está relacionado
datos pueden variar, por consiguiente, consulte con conexiones, consulte los registros
los manuales de fuente de datos pertinentes. cronológicos de diagnóstico de errores del
sistema remoto para determinar la naturaleza del
sqlcode: -902 error y la acción correctiva necesaria. Vuelva a
ejecutar la aplicación.
sqlstate: 58005
sqlcode: -903
sqlstate: 40504
SQL0903N La sentencia COMMIT ha dado
un error, se ha retrotraído la
transacción. Código de razón:
“<código-razón>”
Explicación: Uno o más de los servidores que
participan en la unidad de trabajo actual no han

152 Consulta de mensajes, Volumen 2


unidades de servicio es ″<cantidad-límite2>″.
SQL0904N La ejecución no ha sido
satisfactoria porque faltaba un La fuente empleada para deducir la
recurso. Código de razón: cantidad-límite es ″<fuente-límite>″ y es el
″<código-razón>″, tipo de recurso: nombre de la tabla de especificación de límites
″<tipo-recurso>″ y nombre de de recursos o un ’parámetro del sistema’. Si la
recurso: ″<nombre-recurso>″. fuente es un parámetro del sistema, significa que
la tabla de especificación de límites de recursos
Explicación: La sentencia de SQL no se ha
no contenía ninguna entrada aplicable o bien que
podido ejecutar porque el recurso
se ha producido un error al acceder a la tabla. En
″<nombre-recurso>″ de tipo ″<tipo-recurso>″ no
cualquier caso, el límite se ha obtenido de un
estaba disponible en ese momento por la razón
parámetro de instalación (del sistema).
indicada por el ″<código-razón>″. Si desea
obtener una relación de los códigos de tipos de Respuesta del Usuario: Determine por qué esta
recursos, consulte la documentación sentencia de SQL ha sido tan larga y tome las
Determinación de Problemas de DB2 para MVS. medias oportunas. Observe las posibilidades
siguientes: simplificar la sentencia de SQL,
Respuesta del Usuario: Compruebe la
reestructurar las tablas e índices o ponerse en
identidad del recurso que no estaba disponible.
contacto con el responsable del grupo de
Para determinar por qué el recurso no estaba
instalación a fin de mantener las tablas de
disponible, consulte el ″<código-razón>″
especificación de los límites de recurso.
especificado.
Un programa de aplicación que recibe este
sqlcode: -904
código de retorno puede ejecutar sentencias de
sqlstate: 57011 SQL adicionales.
sqlcode: -905
SQL0905N La ejecución no ha sido posible
sqlstate: 57014
porque se ha sobrepasado el
límite de un recurso. Nombre de
recurso = ″<nombre-recurso>″, SQL0906N La sentencia de SQL no puede
límite = ″<límite-cantidad1>″ ejecutarse debido a un error
segundos de CPU previo en esta función que está
(″<límite-cantidad2>″ unidades de inhabilitada.
servicio) procedente de
″<fuente-límite>″. Explicación: No se ha podido ejecutar la
sentencia de SQL porque un error previo ha
Explicación: La ejecución de la sentencia de inhabilitado dicha función. Esta situación puede
SQL ha terminado de forma anómala porque se presentarse cuando el programa de aplicación
ha sobrepasado un límite de recursos. intercepta una terminación anómala (por
ejemplo, una condición ON ERROR en un
El nombre del recurso cuyo límite se ha excedido
programa PL/I) y continúa ejecutando las
es ″<nombre-recurso>″. También es el nombre de
sentencias de SQL. También puede darse esta
la columna de la tabla de especificación de
situación si una transacción CICS DB2, a pesar
límites de recursos, de la cual deriva el límite en
de encontrar un error de creación de hebra,
cuestión. El límite que se ha excedido en
continúa emitiendo peticiones de SQL sin emitir
segundos de CPU es ″<cantidad-límite1>″ y en
primero un SYNCPOINT ROLLBACK.
unidades de servicio es ″<cantidad-límite2>″. El
″<nombre-recurso>″ puede ser ASUTIME, que es Respuesta del Usuario: En general, el programa
el número de segundos de CPU admitidos por de aplicación debería interrumpirse si recibe este
cada sentencia de SQL. El número máximo de código de retorno. Todos los intentos posteriores
segundos de CPU admitido es que realice la aplicación para ejecutar otras
″<cantidad-límite1>″. El número máximo en sentencias de SQL también fracasarán con el

Capítulo 2. Mensajes SQL 153


mismo código de retorno. En el caso de una sqlstate: 23510
transacción CICS DB2, si el campo SQLERRP en
SQLCA contiene el módulo DSNCEXT1, es
SQL0909N El objeto se ha suprimido.
posible que la transacción emita un SYNCPOINT
ROLLBACK y siga procesándose. Si la Explicación: El programa de aplicación (1) ha
transacción se retrotrae (ROLLBACK) y sigue descartado una tabla y después ha tratado de
procesándose, ésta debe ser capaz de subsanar la acceder a ella, o bien (2) ha descartado un índice
situación que en primera instancia causó el error y después ha intentado acceder a la tabla del
en la creación de la hebra. objeto utilizando dicho índice.
sqlcode: -906 Respuesta del Usuario: Debe corregirse la
lógica del programa de aplicación de manera que
sqlstate: 24514, 51005, 58023
no intente acceder a un objeto o utilizarlo
después de haberlo descartado.
SQL0908N Error ″<tipo-vinculación>″ al
El descarte de índices dentro de un programa de
utilizar la autorización
aplicación resulta especialmente arriesgado,
″<id-autorización>″; no se permite
porque es imposible determinar si el plan
la autorización BIND, REBIND o
generado para la aplicación (mediante BIND o
AUTO_REBIND.
REBIND) utiliza realmente un índice concreto
Explicación: Para BIND y REBIND, el ID de para acceder a su tabla de objetos.
autorización indicado no se permite para realizar
sqlcode: -909
el ″<tipo-vinculación>″ indicado para un plan o
paquete. Hay una entrada en la tabla de sqlstate: 57007
especificación de límites de recursos que (RLST)
prohíbe las vinculaciones o revinculaciones que
utilizan este ID de autorización, o bien todos los SQL0910N La sentencia de SQL no puede
ID de autorización. En el caso de la autorización tener acceso a un objeto sobre el
AUTO-REBIND, el parámetro del sistema que que haya pendiente una
controla las operaciones de AUTO-REBIND está modificación.
definido de tal forma que prohíbe las Explicación: El programa de aplicación ha
operaciones de AUTO-REBIND. intentado acceder a un objeto dentro de la misma
tipo-vinculación unidad de trabajo en la que:
Tipo de operación de vinculación v El programa de aplicación ha emitido DROP
(BIND, REBIND o AUTO-REBIND). sobre el objeto o un objeto relacionado ([Link].
un índice de una tabla)
id-autorización
ID de autorización del invocador del v El programa de aplicación ha emitido una
submandato BIND, o bien ID de sentencia sobre el objeto, lo cual ha añadido o
autorización primario del invocador del descartado una restricción.
plan para las operaciones v El programa de aplicación ha emitido una
AUTO-REBIND. sentencia DROP TRIGGER o CREATE
TRIGGER que ha afectado directa o
Respuesta del Usuario: Si el ID de autorización indirectamente al objeto.
indicado debe poder realizar operaciones de
vinculación, cambie la entrada correspondiente v El programa de aplicación emitió una
de la tabla RLST activa. Si se inhabilitan las sentencia ROLLBACK TO SAVEPOINT que
operaciones AUTO-REBIND, vincule de nuevo el colocó el objeto en estado pendiente de
paquete antes de volver a ejecutarlo. modificación.

sqlcode: -908

154 Consulta de mensajes, Volumen 2


v El programa de aplicación emitió una de datos no puede procesar la sentencia de SQL)
sentencia que hizo que se eliminaran todas las y determine qué restricciones adicionales
filas de una tabla temporal declarada NOT existentes en la fuente de datos impiden el
LOGGED. acceso al objeto. Asegúrese de que la aplicación
no viole ninguna de estas restricciones.
Usuarios del sistema federado: además de las
causas mencionadas anteriormente, tal vez sqlcode: -910
existan otras restricciones específicas de la fuente
sqlstate: 57007
de datos que eviten el acceso al objeto.

No se puede procesar la sentencia de SQL. SQL0911N La transacción actual se ha


retrotraído a causa de una
Respuesta del Usuario: Modifique el programa
situación de punto muerto o por
de aplicación de modo que no intente acceder a
haberse excedido el tiempo de
un objeto dentro de la misma unidad de trabajo
espera. Código de razón
en la que la modificación se ha llevado a cabo.
“<código-razón>”.
Por lo general, se recomienda aislar las
sentencias del Lenguaje de definición de datos Explicación: La unidad actual estaba implicada
(DDL) en una unidad de trabajo diferente que las en una contienda no resuelta sobre el uso de un
sentencias del Lenguaje de manipulación de objeto, por lo que se ha tenido que retrotraer.
datos (DML) que acceden a los mismos objetos.
Los códigos de razón son los siguientes:
La unidad de trabajo debe confirmarse o
2 Se ha retrotraído la transacción debido a
retrotraerse antes de que la sentencia que ha
un punto muerto.
fallado pueda procesarse satisfactoriamente. Si la
modificación confirmada ha provocado el 68 Se ha retrotraído la transacción debido a
descarte de un objeto, entonces tal vez sea un tiempo de espera excedido.
preciso volver a crear el objeto para que la
sentencia de SQL pueda procesarse 72 Se ha retrotraído la transacción debido a
satisfactoriamente. un error relativo al DB2 Data Links
Manager que participa en la transacción.
Si el objeto se modifica dentro de SAVEPOINT,
modifique el programa de aplicación para que no Nota: Se tienen que volver a entrar los cambios
intente acceder al objeto después de que la asociados a la unidad de trabajo.
aplicación emita una sentencia ROLLBACK TO
SAVEPOINT. Cualquier cursor que acceda al La aplicación se ha retrotraído hasta la sentencia
objeto modificado y que esté abierto en el COMMIT anterior.
momento del ROLLBACK TO SAVEPOINT no
será accesible. Modifique la aplicación para que Respuesta del Usuario: Para evitar situaciones
cierre el cursor. de punto muerto o de tiempo de espera de
bloqueo, emita frecuentemente operaciones
Si falla una sentencia INSERT, DELETE o COMMIT, si es posible, para una aplicación de
UPDATE que implique una tabla temporal larga ejecución o para una aplicación donde
declarada NOT LOGGED, se eliminarán todas las parezca más probable que se detecten puntos
filas de dicha tabla. Cualquier cursor que se abra muertos.
para esa tabla temporal declarada en el momento
de la anomalía no será accesible y la aplicación Usuarios del sistema federado: El punto muerto
deberá cerrarlo. se puede producir en el servidor federado o en la
fuente de datos. No hay ningún mecanismo para
Usuarios del sistema federado: si la acción detectar puntos muertos que abarque fuentes de
anterior no resuelve el problema, localice la datos y, potencialmente, el sistema federado. Es
petición (consulte la publicación Problem posible identificar la fuente de datos que impide
Determination Guide para determinar qué fuente procesar la petición (consulte la publicación de

Capítulo 2. Mensajes SQL 155


determinación de problemas para determinar qué 68 La rama de la transacción ha fallado
fuente de datos impide procesar la sentencia de debido a un tiempo de espera de
SQL). bloqueo.
Al procesar determinadas combinaciones de 72 Se ha retrotraído la transacción debido a
sentencias de SQL es relativamente frecuente un error relativo al DB2 Data Links
encontrarse con situaciones de punto muerto. Se Manager que participa en la transacción.
recomienda diseñar aplicaciones para evitar
80 La sentencia ha fallado por haber
puntos muertos en el mayor grado posible.
excedido el tiempo de espera.
sqlcode: -911
Respuesta del Usuario:
sqlstate: 40001 v En el código de razón 80, la sentencia fallida
puede volver a intentarse sin necesidad de
SQL0912N Se ha alcanzado el número terminar la aplicación. Si la aplicación accede a
máximo de peticiones de bloqueos varias bases de datos remotas, tal vez sea
para la base de datos. mejor retrotraer la transacción con el fin de
evitar la posibilidad de un punto muerto
Explicación: Se ha alcanzado el número máximo global.
de bloqueos para la base de datos porque no hay
v En el resto de códigos de razón, emita una
suficiente memoria asignada a la lista de
petición para retrotraer la transacción. La
bloqueos.
transacción no puede llevarse a cabo porque
No se puede procesar la sentencia. ha fallado la rama de transacción actual.

Respuesta del Usuario: La aplicación debería v Para evitar que se produzcan puntos muertos
someter una sentencia COMMIT o ROLLBACK y que se excedan los tiempos de espera, emita
antes de someter otras sentencias de SQL. con frecuencia operaciones COMMIT, si es
Considere la posibilidad de aumentar el posible, para aplicaciones de ejecución larga o
parámetro de configuración de la base de datos para aplicaciones que necesiten datos a los que
(locklist) para que haya más espacio en la lista de se suele acceder simultáneamente
bloqueos. sqlcode: -913
sqlcode: -912
sqlstate: 57033
sqlstate: 57011

SQL0917N Un peticionario de aplicaciones


SQL0913N La ejecución no ha resultado DRDA no ha podido vincularse
satisfactoria porque se ha de manera remota.
originado una situación de punto
muerto o se ha excedido el tiempo Explicación: Se ha producido un error durante
de espera. Código de razón la vinculación remota de un peticionario de
“<código-razón>”. aplicaciones DRDA. Este error puede surgir
durante el proceso de vinculación o de
Explicación: La solicitud que se ha emitido confirmación.
estaba implicada en una contención no resuelta
sobre el uso de un objeto, y la ejecución ha Respuesta del Usuario: Este problema suele
resultado anómala. venir provocado por una sentencia de SQL que
no se ha podido vincular a causa de algún error.
Los códigos de razón son los siguientes: El usuario debe consultar el recurso de
2 La rama de la transacción ha fallado diagnósticos en el peticionario de aplicaciones
debido a un punto muerto. DRDA para determinar cuál es la sentencia
causante del error y poder corregirla.

156 Consulta de mensajes, Volumen 2


sqlcode: -917 SQL COMMIT estática, pero para ello se
necesita una sentencia de confirmación
sqlstate: 42969
específica para el entorno. Por ejemplo, en un
entorno CICS, ésta podría ser el mandato CICS
SQL0918N La aplicación debe ejecutar una SYNCPOINT.
retrotracción. v Una aplicación de DB2 que se ha
Explicación: Ya se ha retrotraído la unidad de precompilado o establecido para que utilice
trabajo en la base de datos, pero es posible que CONNECT 2 en un entorno de Supervisor no
otros gestores de recursos implicados en esta TP, ha emitido una sentencia de SQL COMMIT
unidad de trabajo no lo hayan hecho. Para dinámica, cuando sólo están permitidas las
asegurar la integridad de esta aplicación, se SQL COMMIT estáticas.
rechazarán todas las sentencias de SQL hasta que v Cuando se emite desde un procedimiento
la aplicación emita una retrotracción. almacenado, tampoco se admite la sentencia
de SQL COMMIT si el programa emisor se
Respuesta del Usuario: Se rechazarán todas las ejecuta en una unidad de trabajo distribuida o
peticiones de SQL hasta que la aplicación emita en un Entorno de proceso de transacciones
una retrotracción. Por ejemplo, en un entorno distribuidas.
CICS, se emitiría un mandato CICS SYNCPOINT
ROLLBACK. Respuesta del Usuario: Corrija el problema
mediante uno de los siguientes métodos:
sqlcode: -918
v Elimine dicha sentencia emitiendo el mandato
sqlstate: 51021 COMMIT y sustitúyala por otra que sí
contenga el equivalente válido para el entorno
SQL0920N No se puede acceder a los datos v En cuanto a una conexión de tipo 2 en un
de un sistema cliente de bases de entorno de Supervisor no TP, utilice solamente
datos desde otros sistemas clientes una sentencia COMMIT estática.
de bases de datos. v En cuanto a un procedimiento almacenado,
elimine la sentencia COMMIT.
Explicación: La estación de trabajo está
configurada como cliente o como un servidor con sqlcode: -925
clientes locales. Las bases de datos que se creen
en este sistema no se pueden compartir con otras sqlstate: 2D521
estaciones de trabajo.
No se puede procesar la función. SQL0926N SQL ROLLBACK no válido para
Respuesta del Usuario: Solicite datos sólo de el entorno de ejecución de la
estaciones de trabajo servidor. aplicación.

sqlcode: -920 Explicación: ROLLBACK no está permitido en


los casos siguientes:
sqlstate: 57019 1. En un Proceso de Transacciones Distribuidas
como el CICS se ha intentado una sentencia
SQL0925N SQL COMMIT no válido para el de SQL ROLLBACK estática, pero para ello se
entorno de ejecución de la necesita una sentencia de retrotracción
aplicación. específica para el entorno. Por ejemplo, en un
entorno CICS dicha sentencia sería el
Explicación: COMMIT no está permitido en los mandato CICS SYNCPOINT ROLLBACK.
casos siguientes:
2. Una aplicación de DB2 que se ha
v En un Proceso de Transacciones Distribuidas precompilado o establecido para que utilice
como el CICS se ha intentado una sentencia de CONNECT 2 ha emitido una sentencia de

Capítulo 2. Mensajes SQL 157


SQL ROLLBACK dinámica, cuando sólo están
SQL0931C Se ha producido un
permitidas las SQL ROLLBACK estáticas.
desbordamiento de la tabla de
3. Cuando se emite desde un procedimiento archivos del sistema operativo. No
almacenado, también se restringe la sentencia pueden procesarse las sentencias
de SQL ROLLBACK si el programa emisor se de SQL posteriores.
ejecuta en una unidad de trabajo distribuida
(CONNECT de tipo 2) o en un entorno de Explicación: Se ha alcanzado un límite del
Proceso de transacciones distribuidas. sistema operativo. No se permite que el
programa de aplicación emita sentencias de SQL
Respuesta del Usuario: adicionales. La base de datos necesita una
1. Elimine dicha sentencia emitiendo el mandato recuperación y ninguna de las aplicaciones que
ROLLBACK y sustitúyala por otra que sí utilizan la base de datos puede acceder a ella.
contenga el equivalente válido para el
Respuesta del Usuario: Interrumpa todas las
entorno.
aplicaciones que utilicen la base de datos.
2. En cuanto a una conexión de tipo 2, utilice Reinicie la base de datos.
solamente la sentencia COMMIT estática.
Para evitar que el problema vuelva a repetirse:
3. En cuanto a un procedimiento almacenado,
elimínelo inmediatamente. v Cambie el parámetro de configuración de la
base de datos MAXFILOP por un valor más
sqlcode: -926 pequeño (así se reducirá el uso de DB2 de la
tabla de archivos del sistema operativo), y/o
sqlstate: 2D521 v Interrumpa otras aplicaciones que estén
utilizando los archivos, si procede, y
SQL0930N No hay suficiente almacenamiento v Para aumentar el límite de la tabla de archivos
disponible para procesar la del sistema operativo, consulte la
sentencia. documentación del mismo. En la mayoría de
entornos UNIX, esto puede llevarse a cabo
Explicación: Se ha efectuado una solicitud a la
actualizando la configuración del kernel con
base de datos que hacía necesaria otra página de
un valor mayor. (En AIX, esto sólo puede ser
memoria pero el gestor de bases de datos no
posible aumentando la cantidad de memoria
dispone de más páginas de memoria.
de la máquina).
No se puede procesar la sentencia.
sqlcode: -931
Respuesta del Usuario: Las soluciones posibles
son: sqlstate: 58005
v Compruebe que el sistema tiene suficiente
memoria real y virtual. SQL0950N La tabla o el índice no se puede
v Eliminar los procesos de fondo. eliminar porque se está usando
v Si el error se produce durante la actualmente.
resincronización de DUOW, aumente el valor Explicación: No se puede emitir una sentencia
del parámetro maxagents de configuración del DROP TABLE o DROP INDEX cuando hay un
gestor de bases de datos y reduzca el valor del cursor abierto utilizando la tabla o el índice en
parámetro resync_interval. ese momento.
sqlcode: -930 No se puede procesar la sentencia. La tabla o el
índice no se ha descartado.
sqlstate: 57011
Respuesta del Usuario: Cierre los cursores que
sea necesario y vuelva a someter la sentencia.

158 Consulta de mensajes, Volumen 2


sqlcode: -950
SQL0954C No hay suficiente almacenamiento
sqlstate: 55006 disponible en la pila de aplicación
para procesar la sentencia.

SQL0951N El objeto “<nombre-objeto>” de Explicación: Se ha utilizado toda la memoria


tipo “<tipo-objeto>” no se puede disponible para la aplicación.
alterar porque está siendo
No se puede procesar la sentencia.
utilizado por el mismo proceso de
aplicación. Respuesta del Usuario: Interrumpa la
aplicación al recibir este mensaje. Aumente el
Explicación: No se puede emitir una sentencia
parámetro de configuración de la base de datos
ALTER o una sentencia SET INTEGRITY para un
(applheapsz) para que permita una pila de
objeto cuando está bloqueado o en uso.
aplicación más grande.
No se puede procesar la sentencia. El objeto no
sqlcode: -954
se altera.
sqlstate: 57011
Respuesta del Usuario: Cierre cualquier cursor
que dependa directa o indirectamente del objeto
“<nombre-objeto>” y vuelva a someter la SQL0955C No se puede asignar memoria de
sentencia. clasificación para procesar la
sentencia. Código de razón =
sqlcode: -951
“<código-razón>”.
sqlstate: 55007
Explicación: No hay suficiente memoria virtual
disponible para el proceso de clasificación del
SQL0952N Se ha cancelado el proceso debido agente de la base de datos tal como indica el
a una interrupción. código de razón:

Explicación: Es posible que el usuario haya 1 No hay suficiente memoria de proceso


pulsado la secuencia de teclas de interrupción. privada.

Se termina el proceso de la sentencia. Antes de 2 No hay suficiente memoria compartida


producirse la terminación, es posible que se en el área de memoria compartida de la
hayan aplicado algunos cambios a la base de base de datos amplia designada para el
datos, pero que éstos no se hayan confirmado. proceso de clasificación.

Usuarios del sistema federado: la fuente de datos


No se puede procesar la sentencia pero pueden
también puede detectar esta situación.
procesarse otras sentencias de SQL.
Respuesta del Usuario: Continúe con la
Respuesta del Usuario: Una o más de las
aplicación.
siguientes:
Si está instalando la base de datos de ejemplo, v Reduzca el valor del parámetro de pila de
elimínela e instálela de nuevo. clasificación (sortheap) en el archivo de
sqlcode: -952 configuración de la base de datos
correspondiente.
sqlstate: 57014 v Para el código de razón 1, aumente la
memoria virtual privada disponible, si es
posible. Por ejemplo, en sistemas UNIX puede
usar el mandato ulimit para aumentar el
tamaño máximo del área de datos para un
proceso.

Capítulo 2. Mensajes SQL 159


v Para el código de razón 2, aumente el tamaño
SQL0959C No hay suficiente almacenamiento
del área de memoria compartida de la base de
disponible en la pila de
datos amplia designada para el proceso de
comunicaciones del servidor para
clasificación aumentando el valor del
procesar la sentencia.
parámetro de configuración del gestor de la
base de datos (sheapthres). Explicación: Se ha utilizado toda la memoria
disponible en la pila de comunicaciones del
sqlcode: -955
servidor.

sqlstate: 57011 No se puede procesar el mandato o la sentencia.


Respuesta del Usuario: Interrumpa la
SQL0956C No hay suficiente almacenamiento aplicación al recibir este mensaje. Aumente el
disponible en la pila de base de tamaño del parámetro de la pila de
datos para procesar la sentencia. comunicaciones (comheapsz) en el archivo de
configuración del gestor de bases de datos de la
Explicación: Se ha utilizado toda la memoria estación de trabajo de tipo servidor.
disponible para la base de datos.
NOTA: Este mensaje sólo se puede aplicar a
No se puede procesar la sentencia. releases de DB2 anteriores a la Versión 2.
Respuesta del Usuario: Interrumpa la sqlcode: -959
aplicación al recibir este mensaje. Aumente el
parámetro de configuración de la base de datos sqlstate: 57011
(dbheap) para que permita una pila de base de
datos mayor. Si el número de servidores de E/S
SQL0960C Se ha alcanzado el número
está cerca del límite máximo, puede ser útil
máximo de archivos en la base de
reducir este número.
datos.
sqlcode: -956
Explicación: Se ha alcanzado el número máximo
sqlstate: 57011 de archivos de base de datos.
No se puede procesar la sentencia.
SQL0958C Se ha alcanzado el número
Respuesta del Usuario: Interrumpa la
máximo de archivos abiertos.
aplicación al recibir este mensaje. Desconecte de
Explicación: Ya se ha llegado al número la base de datos todas las aplicaciones activas y
máximo de archivos disponibles en la base de luego vuélvalas a conectar. Si el error sigue
datos. apareciendo, descarte de la base de datos las
tablas, los índices o ambas cosas, o bien divida la
No se puede procesar la sentencia. base de datos.
Respuesta del Usuario: Aumente cualquier Si está instalando la base de datos de ejemplo,
parámetro que afecte al número máximo de elimínela e instálela de nuevo.
archivos abiertos permitidos en la ubicación de la
base de datos. Esto incluye el aumento del sqlcode: -960
parámetro de configuración (maxfilop) para
sqlstate: 57011
permitir más manejadores de archivos para la
instancia y la terminación de otras sesiones para
reducir el número de manejadores de archivos SQL0964C La anotación cronológica de
que se utilicen. transacciones para la base de
datos está llena.
sqlcode: -958
Explicación: Se está utilizando todo el espacio
sqlstate: 57009
de la anotación cronológica de transacciones.

160 Consulta de mensajes, Volumen 2


En caso de utilizarse una anotación cronológica sqlstate: 57011
circular con archivos de anotación secundarios,
significa que ha habido un intento de asignarlas
SQL0965W No hay ningún texto de mensaje
para utilizarlas. Cuando el sistema de archivos
correspondiente al aviso de SQL
ya no disponga de más espacio, no se podrán
“<SQLCODE>” en el archivo de
utilizar las anotaciones secundarias.
mensajes de esta estación de
Si se utiliza una anotación cronológica de trabajo. Se ha devuelto el aviso
archivo, debe interpretarse que el sistema no ha del módulo “<nombre>” con las
proporcionado espacio para dar cabida a un señales originales “<lista
nuevo archivo de anotaciones cronológicas. señales>”.
No se puede procesar la sentencia. Explicación: El servidor de base de datos ha
devuelto el código ″<SQLCODE>″ a la
Respuesta del Usuario: Ejecute una operación
aplicación. El código de aviso no se corresponde
COMMIT o ROLLBACK al recibir este mensaje
con ningún mensaje del archivo de mensajes del
(SQLCODE) o vuelva a intentar la operación.
gestor de bases de datos de DB2 de esta estación
Si hay varias aplicaciones que están actualizando de trabajo.
simultáneamente la base de datos, vuelva a
Respuesta del Usuario: Consulte la
repetir la operación. Es posible que el registro
documentación del servidor de la base de datos
pueda disponer de más espacio cuando otra
para determinar la causa del ″<SQLCODE>″
aplicación finalice una transacción.
especificado.
Emita operaciones de confirmación con mayor
frecuencia. Si las transacciones no están
SQL0966N No es posible encontrar o no se
confirmadas, piense que confirmándolas puede
puede abrir el archivo de
disponer de más espacio libre en el registro. Al
correlación de errores “<nombre>”
diseñar una aplicación, tome en consideración el
especificado en el directorio
hecho de confirmar las transacciones de
Servicios de conexión de la base
actualización para evitar que el registro pueda
de datos.
llenarse.
Explicación: Se cumple una de las condiciones
Si se producen puntos muertos, compruebe su
siguientes:
existencia con mayor asiduidad. Esto puede
llevarse a cabo reduciendo el parámetro de v El archivo de correlación de errores no existe.
configuración DLCHKTIME de la base de datos. v El archivo de correlación de errores lo ha
De esta forma, se podrán detectar los puntos abierto actualmente otra aplicación.
muertos y darles solución con más rapidez v El archivo de correlación de errores no se
(mediante ROLLBACK), con el consiguiente encuentra en la vía de acceso esperada.
aumento del espacio de registro.
v El archivo de correlación de errores está
Si esta situación se produce con frecuencia, dañado.
aumente el parámetro de configuración de la
No se han podido recuperar los datos de
base de datos para permitir que el archivo de
correlación de errores.
anotaciones cronológicas sea mayor. De este
modo se necesitará más espacio, pero existe Respuesta del Usuario: Libere el archivo de la
menor necesidad de que las aplicaciones hayan aplicación en la que se ha abierto o vuelva a
de volver a intentar las operaciones. instalar o a restaurar el archivo original.
Si está instalando la base de datos de ejemplo, sqlcode: -966
elimínela e instálela de nuevo.
sqlstate: 57013
sqlcode: -964

Capítulo 2. Mensajes SQL 161


SQL0967N El formato del archivo de SQL0969N No hay ningún texto de mensaje
correlación de errores “<nombre>” correspondiente al error de SQL
especificado en el directorio “<error>” en el archivo de
Servicios de conexión de la base mensajes de esta estación de
de datos no es válido. trabajo. Se ha devuelto el error
del módulo “<nombre>” con las
Explicación: Se ha producido un error mientras
señales originales “<lista
el programa leía el archivo de correlación de
señales>”.
errores.
Explicación: El servidor de la base de datos ha
No se han podido recuperar los datos de
devuelto el error SQLCODE “<error>” a la
correlación de errores.
aplicación. El código de error no se corresponde
Respuesta del Usuario: Corrija todos los errores con ningún mensaje del archivo de mensajes de
de sintaxis que haya en el archivo de correlación DB2 de esta estación de trabajo.
de errores.
Respuesta del Usuario: Consulte la
sqlcode: -967 documentación del servidor de la base de datos
para determinar la causa del SQLCODE
sqlstate: 55031 especificado. Para solucionar este problema,
realice la acción que se especifique en la
SQL0968C El sistema de archivos está lleno. documentación del servidor de bases de datos.

Explicación: Uno de los sistemas de archivos Usuarios del sistema federado: Localice el
que contiene la base de datos está lleno. Este problema en la fuente de datos que impide
sistema de archivos puede contener el directorio procesar la petición (consulte la publicación
de bases de datos, los archivos de anotación Problem Determination Guide para determinar
cronológica de la base de datos o un contenedor qué fuente de datos impide procesar la sentencia
de espacio de tabla. de SQL). Busque el “<error>” en el manual
correspondiente de la fuente de datos. Si el
No se puede procesar la sentencia. problema depende de los datos, tal vez sea
Respuesta del Usuario: Consulte la anotación necesario examinar los datos que se estaban
cronológica de diagnósticos para determinar cuál procesando en la fuente de datos en el momento
es el sistema de archivos que está lleno. Borre los de producirse el error.
archivos no deseados para liberar espacio del
sistema. No borre los archivos de la base de SQL0970N El sistema intentó grabar en un
datos. En caso de necesitar espacio adicional, tal archivo de sólo lectura.
vez sea preciso eliminar las tablas y los índices
identificados como no necesarios. Explicación: Un archivo que la base de datos
utiliza está catalogado como de sólo lectura o no
En los sistemas basados en UNIX, esta condición existe. La base de datos necesita acceso de
de disco lleno puede deberse a que se ha grabación para este archivo.
sobrepasado el tamaño máximo de archivos
permitido para el ID de usuario actual. Actualice No se puede procesar la sentencia.
el fsize (tamaño de archivo) con el mandato Respuesta del Usuario: Interrumpa la
chuser. Tal vez sea preciso volver a arrancar la aplicación cuando reciba este mensaje
máquina. (SQLCODE). Asegúrese de que todos los archivos
sqlcode: -968 de la base de datos dispongan de acceso tanto de
lectura como de grabación. Compruebe los
sqlstate: 57011 espacios en blanco innecesarios dentro del
nombre de archivo especificado.

162 Consulta de mensajes, Volumen 2


sqlcode: -970 elimínela e instálela de nuevo.
sqlstate: 55009 sqlcode: -974
sqlstate: 57020
SQL0972N La unidad de la base de datos no
contiene el disquete correcto.
SQL0975N No es posible iniciar una
Explicación: El disquete de la unidad no es el transacción nueva porque el
disquete de la base de datos. usuario <nombreusuario>″ ha
inmovilizado la base de datos o la
No se puede procesar la sentencia.
instancia ″<nombre>″. Tipo de
Respuesta del Usuario: Coloque en la unidad el inmovilización: ″<tipo>″.
disquete adecuado. No retire ningún disquete
Explicación: Otro usuario ha inmovilizado la
cuando la aplicación empiece a utilizar una base
instancia o la base de datos que se trata de
de datos que reside en la misma.
utilizar y no se permiten más transacciones hasta
sqlcode: -972 que la instancia o la base de datos en cuestión
deje de estar inmovilizada.
sqlstate: 57019
El tipo de inmovilización ″<tipo>″ se refiere a la
instancia o a la base de datos ya inmovilizada,
SQL0973N No hay suficiente almacenamiento siendo ’1’ para la instancia y ’2’ para la base de
disponible en la pila datos.
″<nombre-pila>″ para procesar la
sentencia. Respuesta del Usuario: Póngase en contacto
con el usuario que tiene inmovilizada
Explicación: Se ha utilizado toda la memoria actualmente la instancia o la base de datos a fin
disponible para la pila. No se puede procesar la de determinar el momento en que dejará de estar
sentencia. inmovilizada DB2; acto seguido, trate de volver a
Respuesta del Usuario: Interrumpa la efectuar la solicitud.
aplicación al recibir este mensaje (SQLCODE). sqlcode: -975
Aumente el parámetro de configuración de
″<nombre-pila>″ para aumentar el tamaño de la sqlstate: 57046
pila.
sqlcode: -973 SQL0976N La puerta de la unidad de
disquetes está abierta.
sqlstate: 57011
Explicación: La puerta de la unidad de la base
de datos está abierta.
SQL0974N La unidad que contiene la base de
datos está bloqueada. No se puede procesar la sentencia.

Explicación: El sistema ha notificado que la Respuesta del Usuario: Cierre la puerta de la


unidad donde se encuentra la base de datos está unidad y repita la operación.
bloqueada.
sqlcode: -976
No se puede procesar la sentencia.
sqlstate: 57021
Respuesta del Usuario: Asegúrese de que en el
sistema no esté teniendo lugar otro proceso (por
SQL0977N Estado COMMIT desconocido.
ejemplo, CHKDSK) que pueda bloquear la
unidad. Vuelva a intentar la operación. Explicación: tm_database ha dejado de estar
disponible durante el proceso COMMIT, lo que
Si está instalando la base de datos de ejemplo,

Capítulo 2. Mensajes SQL 163


ha hecho que COMMIT sea desconocido. Se COMMIT que ha fallado para una o más de estas
producirá una resincronización de las bases de conexiones.
datos cuando tm_database pase a estar disponible.
Usuarios del sistema federado: Si una de las
Tenga en cuenta que es posible que se retrotraiga
conexiones anómalas es una base de datos del
la transacción durante la resincronización. Se
servidor federado donde se utilizan apodos,
pueden producir otras ejecuciones de sentencias
significa que ha fallado una confirmación
de SQL de forma segura, aunque es posible que
respecto a una de las fuentes de datos que era
se mantengan bloqueos hasta que finalice el
necesaria para un apodo.
proceso de resincronización.
Respuesta del Usuario: En función de la
Respuesta del Usuario: Compruebe que se
naturaleza de la aplicación y de los datos que se
puede establecer la conexión con tm_database,
estén actualizando, tal vez al usuario le venga
utilizando por ejemplo CLP. Si no es así, siga las
bien interrumpir el proceso que esté llevando a
acciones pertinentes para que el SQLCODE que
cabo, registrar la anomalía y emitir el SQL
se ha devuelto pueda establecer una conexión.
apropiado para asegurarse de que los cambios
sqlcode: -977 propuestos por la aplicación queden
constantemente reflejados en todas las bases de
sqlstate: 40003
datos implicadas.
Si no se puede devolver una lista completa de las
SQL0978N El disquete está protegido contra
bases de datos que se han visto afectadas por
grabación.
errores COMMIT, consulte el registro de
Explicación: Se ha tratado de efectuar una diagnóstico para obtener una lista completa.
operación de grabación en la base de datos, pero
sqlcode: -979
el disquete de la base de datos está protegido
contra grabación. sqlstate: 40003
No se puede procesar la sentencia.
SQL0980C Se ha producido un error de
Respuesta del Usuario: Compruebe que esté
disco. No pueden procesarse las
utilizando el disquete correcto. Si es necesario,
sentencias de SQL posteriores.
retire la protección del disquete.
Explicación: Se ha producido un error de disco
sqlcode: -978
que ha impedido ejecutar satisfactoriamente
sqlstate: 55009 tanto la sentencia actual de SQL como las
ulteriores. No se permite que el programa de
aplicación emita sentencias de SQL adicionales.
SQL0979N COMMIT ha fallado para Por ejemplo, una rutina de recuperación
″<núm>″ bases de datos de un relacionada con el programa de aplicación no
proceso de aplicación que se puede emitir sentencias de SQL adicionales. La
ejecuta con SYNCPOINT o base de datos necesita una recuperación y
NONE. Las anomalías incluyen ninguna de las aplicaciones que utilizan la base
los siguientes alias de bases de de datos puede acceder a ella.
datos y parejas de SQLSTATE (se
pueden devolver hasta un máximo No se puede procesar la sentencia.
de cuatro): ″<alias/SQLSTATE1>″,
Respuesta del Usuario: Anote toda la
″<alias/SQLSTATE2>″,
información de error del SQLCA, si es posible.
″<alias/SQLSTATE3>″,
Interrumpa todas las aplicaciones que utilicen la
″<alias/SQLSTATE4>″.
base de datos. Determine si el error es un error
Explicación: Una aplicación se ha conectado a de hardware y realice la acción adecuada tal
varias bases de datos y se ha emitido un como se especifica en la publicación

164 Consulta de mensajes, Volumen 2


Troubleshooting Guide para problemas de
SQL0984C Ni COMMIT ni ROLLBACK han
hardware. Reinicie la base de datos. Si la
sido satisfactorios. No pueden
recuperación no es posible, restaure la base de
procesarse las sentencias de SQL
datos a partir de una copia de seguridad.
posteriores.
Si está instalando la base de datos de ejemplo,
Explicación: Debido a un error del sistema, ha
elimínela e instálela de nuevo.
habido una operación de confirmación o de
sqlcode: -980 retrotracción que no se ha procesado de forma
satisfactoria. No se permite que el programa de
sqlstate: 58005 aplicación emita sentencias de SQL adicionales.
Por ejemplo, una rutina de recuperación
SQL0982N Se ha producido un error de relacionada con el programa de aplicación no
disco. Sin embargo, pueden puede emitir sentencias de SQL adicionales. La
procesarse las sentencias de SQL base de datos necesita una recuperación y
posteriores. ninguna de las aplicaciones que utilizan la base
de datos puede acceder a ella.
Explicación: Se ha producido un error de disco
al procesar un sistema temporal de archivos, que No se puede procesar la sentencia.
ha impedido ejecutar satisfactoriamente la Respuesta del Usuario: Si es posible, anote el
sentencia actual de SQL. Sin embargo, pueden número de mensaje (SQLCODE) y toda la
procesarse las sentencias de SQL posteriores. información de error de SQLCA. Interrumpa
No se puede procesar la sentencia. todas las aplicaciones que utilicen la base de
datos. Reinicie la base de datos. Si está
Respuesta del Usuario: Interrumpa la instalando la base de datos de ejemplo, elimínela
aplicación cuando reciba este mensaje e instálela de nuevo.
(SQLCODE).
Si la recuperación no es posible, restaure la base
sqlcode: -982 de datos a partir de una copia de seguridad.
sqlstate: 58004 Si estaba activo un rastreo, llame al Recurso de
Rastreo Independiente (Independent Trace
SQL0983N La anotación cronológica de Facility) desde el indicador de mandatos del
transacciones no pertenece a la sistema operativo. Consulte el Recurso de
base de datos actual. Rastreo Independiente en la publicación
Troubleshooting Guide para obtener información
Explicación: La firma almacenada en el archivo sobre cómo utilizar este recurso. Póngase en
de anotaciones cronológicas no coincide con la contacto con el representante del servicio técnico
firma dependiente de la base de datos. Este error aportando la siguiente información:
suele producirse cuando el usuario ha
especificado que el archivo de anotaciones Información necesaria:
cronológicas se almacene en un directorio v Descripción del problema
distinto al que contiene la base de datos. La v SQLCODE
redirección de archivos puede estar implicada.
v Contenido del SQLCA, si es posible
No se puede procesar la sentencia. v Archivo de rastreo, si es posible.
Respuesta del Usuario: Vuelva a someter el Usuarios del sistema federado: detecte el
mandato con el acceso adecuado al archivo de problema en la fuente de datos anómala que
anotaciones cronológicas. impide procesar la petición (consulte la
sqlcode: -983 publicación Problem Determination Guide para
determinar qué fuente de datos impide procesar
sqlstate: 57036 la sentencia de SQL) y realice los pasos de

Capítulo 2. Mensajes SQL 165


diagnóstico y realice los procedimientos de sqlstate: 58004
recuperación de bases de datos que sean
pertinentes para esa fuente de datos. Los
SQL0987C El conjunto de memoria
procedimientos para la determinación de
compartida del control de la
problemas y para la recuperación de bases de
aplicación no puede asignarse.
datos correspondientes a fuentes de datos varían
de un caso a otro, así que debe consultar los Explicación: El conjunto de memoria
manuales de la fuente de datos correspondiente. compartida del control de la aplicación no puede
asignarse. Este error se debe a la escasez de
sqlcode: -984 recursos de memoria para el gestor de bases de
datos o para el entorno donde se están
sqlstate: 58005 intentando las operaciones. Los recursos de
memoria que pueden causar este error son:

SQL0985C Se ha producido un error de v El número de identificadores de memoria


archivo al procesar los catálogos compartida asignados en el sistema.
de la base de datos. No puede v La cantidad de espacio de paginación e
usarse la base de datos. intercambio de que dispone el sistema.

Explicación: El sistema no puede recuperar un v La cantidad de memoria física de que dispone


error de E/S en un archivo del catálogo. el sistema.

El sistema no puede procesar ninguna sentencia Respuesta del Usuario: Realice una o más de
que utilice la base de datos. las acciones siguientes:
v Asegúrese de que haya suficientes recursos de
Respuesta del Usuario: Restaure la base de memoria disponibles para satisfacer las
datos a partir de una copia de seguridad. necesidades del gestor de bases de datos y las
Si está instalando la base de datos de ejemplo, de aquellos otros programas que se ejecuten en
elimínela e instálela de nuevo. el sistema.
v Reduzca los requisitos de memoria del gestor
sqlcode: -985
de bases de datos para este conjunto de
sqlstate: 58005 memoria, reduciendo para ello el parámetro de
configuración correspondiente de la base de
datos (app_ctl_heap_sz).
SQL0986N Se ha producido un error de
archivo al procesar una tabla de v Reduzca uno o más de los parámetros de
usuarios. Dicha tabla no puede configuración de la base de datos dbheap,
utilizarse. util_heap_sz y buffpage. Consulte la
publicación Administration Guide para obtener
Explicación: Los datos de la tabla ya no son información sobre los parámetros que afectan
válidos. la cantidad de memoria global de la base de
El sistema no puede procesar ninguna sentencia datos asignada.
que utilice dicha tabla. v Reduzca el parámetro de configuración del
gestor de la base de datos, sheapthres, si
Respuesta del Usuario: Si la base de datos no intra_parallel se establece en sí o establezca
es coherente, restaure la base de datos a partir de intra_parallel en no.
una copia de seguridad.
v Cuando sea necesario, detenga otros
Si está instalando la base de datos de ejemplo, programas que utilicen el sistema.
elimínela e instálela de nuevo.
sqlcode: -987
sqlcode: -986
sqlstate: 57011

166 Consulta de mensajes, Volumen 2


SQL0990C Se ha producido un error de SQL0993W La nueva vía de acceso para el
índice. Reorganice la tabla archivo de anotaciones
cronológicas (newlogparh) del
Explicación: Ha habido un índice que ha tenido
archivo de configuración de bases
una actividad considerable y que ha ocupado
de datos no es válida.
todo el espacio disponible para los índices.
Explicación: La vía de acceso al archivo de
Usuarios del sistema federado: la fuente de datos
anotaciones cronológicas no es válida por una de
también puede detectar esta situación.
las siguientes razones:
No se puede procesar la sentencia. v La vía de acceso no existe.
Respuesta del Usuario: Confirme el trabajo y v En la vía de acceso especificada se ha
vuelva a intentar el mandato. Si el error detectado un archivo con el nombre correcto
continúa, retrotraiga el trabajo. Si aún así sigue pero que no era un archivo de anotaciones
apareciendo, reorganice la tabla, si es posible. cronológicas para esta base de datos.

Usuarios del sistema federado: localice el v El ID de instancia del gestor de bases de datos
problema en la fuente de datos que impide no tiene permiso para acceder a la vía de
procesar la petición (consulte la publicación acceso o al archivo de anotaciones
Problem Determination Guide para determinar cronológicas.
qué fuente de datos impide procesar la sentencia El cambio solicitado no se lleva a cabo.
de SQL) y siga los procedimientos pertinentes
para volver a crear índices para esa fuente de Respuesta del Usuario: Para cambiar la vía de
datos. acceso al archivo de anotaciones cronológicas,
vuelva a someter el mandato de configuración
con un valor válido.
SQL0992C El número de release del
programa precompilado no es sqlcode: +993
válido. sqlstate: 01562
Explicación: El número de release del programa
(paquete) precompilado no es compatible con el SQL0994N Utilización no válida del punto de
número de release de la versión que hay grabación de la aplicación.
instalada del gestor de bases de datos.
Explicación: La función del punto de grabación
El programa (paquete) precompilado no se puede de la aplicación se ha empleado de forma
utilizar con la versión actual del gestor de bases incoherente. El programa ha intentado realizar
de datos. No se puede procesar el mandato. una de las siguientes acciones:
Respuesta del Usuario: Utilice sólo programas v Solicitar más de un punto de grabación activo.
que estén precompilados con un nivel de release v Emitir una llamada de punto de grabación
compatible con el del gestor de bases de datos. final sin un punto de grabación activo.
sqlcode: -992 v Emitir una llamada de punto de grabación de
retrotracción sin un punto de grabación activo.
sqlstate: 51008
No se puede procesar la función.
Respuesta del Usuario: Corrija el uso que se
hace en el programa del punto de grabación.

Capítulo 2. Mensajes SQL 167


sqlcode: -996
SQL0995W La vía de acceso actual al archivo
de anotaciones cronológicas (vía sqlstate: 58035
de acceso de registro) no es
válida. La vía de acceso al archivo
de anotaciones cronológicas se SQL0997W Mensaje de información general
restablece al valor por omisión. para el proceso de transacciones.
Código de razón =
Explicación: La vía de acceso al archivo de “<código-razón-XA>”.
anotaciones cronológicas no es válida por una de
las siguientes razones: Explicación: El SQLCODE 997 sólo se traspasa
entre componentes del gestor de bases de datos y
v La vía de acceso no existe. no se devolverá a la aplicación. Sirve para
v En la vía de acceso especificada se ha traspasar códigos de retorno XA en situaciones
detectado un archivo con el nombre correcto que no sean de error. Los códigos de razón
pero que no era un archivo de anotaciones posibles son:
cronológicas para esta base de datos. v XA_RDONLY (3) - La rama de transacciones
v El ID de instancia del gestor de bases de datos era de sólo lectura y se ha confirmado.
no tiene permiso para acceder a la vía de v 64 - La base de datos del TM indica la
acceso o al archivo de anotaciones transacción que se ha de confirmar durante la
cronológicas. resincronización DUOW
En las anotaciones cronológicas circulares, el v 65 - La base de datos del TM indica que se ha
archivo de anotaciones cronológicas se crea en la de retrotraer la transacción durante la
vía de acceso del registro por omisión. En las resincronización DUOW
anotaciones cronológicas de archivo, el archivo
de anotaciones cronológicas siguiente se crea en Respuesta del Usuario: No es necesaria
la vía de acceso de anotaciones cronológicas por ninguna acción.
omisión. El cambio solicitado no se lleva a cabo.
Respuesta del Usuario: Para cambiar la vía de SQL0998N Se ha producido un error durante
acceso al archivo de anotaciones cronológicas, la transacción o el proceso
vuelva a someter un mandato de configuración heurístico. Código de razón =
con un valor válido. ″<código-razón>″ Subcódigo =
″<subcódigo>″.
sqlcode: +995
Explicación: Se ha detectado un error al
sqlstate: 01563 procesar una transacción distribuida. La
transacción es:
SQL0996N No se pueden liberar páginas para v Ejecución bajo un entorno del tipo Proceso de
un objeto del espacio de la tabla. transacciones distribuidas (como el de CICS o
el de otros gestores de transacciones).
Explicación: Hay páginas internas corruptas de
v Realización de operaciones heurísticas.
bases de datos o bien errores lógicos internos en
un espacio de tabla. Si desea ver los detalles, v Actualización de varios apodos dentro de una
consulte la anotación cronológica de errores del base de datos federada, donde cada apodo
sistema y/o la anotación cronológica de errores actualizado representa una fuente de datos
del gestor de bases de datos. diferente. En este caso, significa que una de las
fuentes de datos ha fallado durante el proceso
Respuesta del Usuario: Deje de utilizar el de transacciones. El código de razón generado
objeto o el espacio de tabla. Póngase en contacto en este caso es la razón de la anomalía en la
con el servicio técnico de IBM para que fuente de datos y no en la base de datos
inspeccione el objeto y el espacio de tabla. federada.

168 Consulta de mensajes, Volumen 2


Los códigos de razón posibles (los – 02 - No se ha podido cargar la biblioteca
correspondientes a X/Open XA aparecen entre especificada en el parámetro de
paréntesis) son: configuración tp_mon_name.
v 01 - (XAER_ASYNC) la operación asíncrona ya v 10 - Se ha tratado de iniciar otra transacción
está pendiente. estando suspendida.
v 02 - (XAER_RMERR) se ha producido un error v 12 - la eliminación del registro (ax_unreg) con
del gestor de recursos en la rama de el gestor de transacciones no ha sido
transacciones. satisfactoria.
v 03 - (XAER_NOTA) el XID no es válido. v 13 - anomalía de interfaz ax: no se encuentran
v 04 - (XAER_INVAL) se han dado argumentos ax_reg() y ax_unreg().
incorrectos. Los subcódigos posibles son: v 14 - El registro para DB2 con Microsoft
– 01 - el puntero xa_info es incorrecto; p.e., la Distributed Transaction Coordinator ha fallado.
serie XAOpen. Es posible que el servicio MSDTC no esté en
funcionamiento. Debe terminar la transacción
– 02 - el nombre de la base de datos supera la
actual.
longitud máxima.
v 35 - Las operaciones heurísticas son incorrectas
– 03 - el nombre del usuario supera la
para las bases de datos que no sean de XA.
longitud máxima.
v 36 - El gestor de bases de datos no reconoce el
– 04 - la contraseña supera la longitud
XID.
máxima.
v 37 - La transacción ya se ha confirmado de
– 05 - se ha especificado el nombre del
modo heurístico.
usuario pero no la contraseña.
v 38 - La transacción ya se ha retrotraído de
– 06 - se ha especificado la contraseña pero
modo heurístico.
no el nombre del usuario.
v 39 - La transacción no es una transacción
– 07 - demasiados parámetros en la serie
dudosa.
xa_info.
v 40 - Sólo se permiten retrotracciones para esta
– 08 - varios xa_opens generan diferentes ID
transacción.
de RMA para el mismo nombre de base de
datos. v 41 - La transacción no está confirmada
heurísticamente en algunos nodos del
– 09 - no se ha especificado el nombre de la
subordinador MPP debido a una anomalía en
base de datos.
el nodo.
– 10 - exe_type no válido.
v 69 - Discrepancia del ID de registro de la base
v 05 - (XAER_PROTO) la rutina se ha invocado de datos durante la resincronización DUOW.
en un contexto inadecuado.
v 85 - Como resultado del proceso heurístico, la
v 06 - (XAER_RMFAIL) el gestor de recursos no transacción se ha confirmado parcialmente y se
está disponible. ha retrotraído.
v 07 - (XAER_DUPID) el XID ya existe. v 210 - Sólo se permiten confirmaciones
v 08 - (XAER_OUTSIDE) RM trabaja fuera de la heurísticas para esta transacción. Algunos
transacción global. nodos ya se encuentran en estado de
v 09 - la anotación (ax_reg) con el gestor de confirmación.
transacciones ha fallado. Los subcódigos v 221 - La versión de DBMS en el sistema
posibles son: principal necesita que todas las aplicaciones
– 01 - No se encuentra el XID de unión que participan en la misma transacción XA
usen el mismo ID de usuario para conectar
con la base de datos.

Capítulo 2. Mensajes SQL 169


v 222 - La versión de DBMS en el sistema transacciones dudosas a fin de verificar si
principal necesita que todas las aplicaciones todavía sigue siendo necesario llevar a cabo una
que participan en la misma transacción XA operación heurística.
tengan el mismo CCSID.
En el código de razón 39, el XID especificado es
v 223 - El soporte DB2 Connect XA sólo está para una transacción que ha finalizado y está
disponible para clientes locales o para clientes esperando a que empiece el proceso de
remotos que usan TCPIP para establecer la confirmación de dos fases. Las operaciones
conexión de entrada. heurísticas sólo pueden realizarse en
v 224 - El soporte DB2 Connect XA sólo está transacciones que hayan entrado en el proceso de
disponible para clientes que tienen como confirmación de dos fases y que se hayan
mínimo la versión 7.1. convertido en transacciones dudosas.
Respuesta del Usuario: Para los códigos de El código de razón 40 significa que se ha
razón del 1 al 8, se efectuará una entrada en la intentado una sentencia de SQL bajo una
anotación cronológica del sistema, porque a veces transacción que ha fallado. Un ejemplo de ello es
el SQLCA no se puede devolver al emisor. intentar una sentencia de SQL en una hebra de
transacciones que se ha registrado
Si el error se debe a un problema en la fuente de
satisfactoriamente después de que una hebra
datos asociada a un apodo, la ubicación de la
estrechamente acoplada que participa en la
fuente de datos anómala siempre aparecerá en el
misma transacción haya terminado
registro del sistema del servidor federado.
anormalmente.
En el código de razón 4 compruebe el contenido
Para el código de razón 41 puede obtener más
de la serie xa open y efectúe las correcciones
información sobre el problema en el archivo
pertinentes.
[Link]. Necesita reiniciar DB2 en los nodos
En el código de razón 9, subcódigo 02, asegúrese anómalos. Puede que sea necesario ponerse en
de que el parámetro de configuración contacto con el administrador del sistema para
tp_mon_name contiene el nombre de la solicitar ayuda.
biblioteca dinámica del producto externo que
Si el código de razón es 69, significa que la base
presenta la función ax_reg() utilizada para el
de datos del gestor de transacciones (TM), la
registro dinámico de las transacciones.
base de datos del gestor de recursos (RM) o bien
En el código de razón 14 asegúrese de que el ambas cosas son diferentes a las que había
servicio MSDTC está activo. cuando se ha generado la transacción dudosa. En
otras palabras, los nombres de las bases de datos
El código de razón 35 significa que ha habido un del TM o del RM podrían estar haciendo
intento de realizar una operación heurística referencia a instancias distintas de una base de
contra una base de datos que sólo participa en datos. Una de las siguientes puede ser la causa
calidad de gestor de recursos de sólo lectura en de la no coincidencia de los ID de anotación
una transacción global. Ejemplos de ello son cronológica:
cualquier base de datos DRDA, tales como DB2 o
MVS. Estos tipos de bases de datos que no son v El directorio de bases de datos para la base de
de XA no tendrían ninguna transacción dudosa. datos del TM en la aparición del Rm es
incorrecto.
Los códigos de razón 36, 37 y 38 significan que v La configuración puede haber cambiado
se ha tratado de realizar una operación heurística después de haberse generado la transacción
incorrecta en una operación dudosa. Se ha dudosa.
especificado el XID erróneo o bien se ha
producido una operación heurística o de v Puede que se haya descartado y vuelto a crear
resincronización después de haberse registrado la base de datos. En este caso, puede
este XID. Efectúe una solicitud de Consulta configurar o retrotraer de forma heurística la
Heurística para obtener la lista actual de transacción cuestionada.

170 Consulta de mensajes, Volumen 2


Si el código de razón es 85, significa que se están número de mensaje (SQLCODE), el código de
actualizando varias fuentes de datos y que razón y el subcódigo opcional del mensaje o bien
algunas de ellas se han confirmado o retrotraído en el SQLCA de anotaciones cronológicas del
heurísticamente, lo que ha dado lugar a que la sistema.
transacción se haya confirmado y retrotraído
parcialmente. Con este código de razón, los datos Si el problema radica en una base de datos
se hallan en un estado incoherente y para federada, también debe anotar la ubicación de la
corregirlos es necesario comprobar manualmente fuente de datos anómala que se halla en la
cada una de las fuentes de datos actualizadas anotación cronológica del sistema del servidor
por la transacción. federado.

Para el código de razón 210, algunos nodos ya se Si estaba activo un rastreo, llame al Recurso de
encuentran en estado de confirmación. Debe Rastreo Independiente (Independent Trace
realizar una confirmación heurística para resolver Facility) desde el indicador de mandatos del
la transacción dudosa. sistema operativo. Consulte el Recurso de
Rastreo Independiente en la publicación
Para el código de razón 221, asegúrese de que Troubleshooting Guide para obtener información
todas las aplicaciones que participan en la misma sobre cómo utilizar este recurso. A continuación,
transacción XA usen el mismo ID de usuario póngase en contacto con el representante del
para conectar con la base de datos. servicio técnico aportando la siguiente
información:
Para el código de razón 222, asegúrese de que v Descripción del problema
todas las aplicaciones que participan en la misma
v SQLCODE, código de razón incluido y
transacción XA usen el mismo CCSID.
subcódigo

Para el código de razón 223, modifique la v Contenido del SQLCA (si es posible)
configuración de la aplicación y del cliente para v Archivo de rastreo (si es posible)
utilizar clientes locales o, para clientes remotos, v Ubicación de la fuente de datos anómala si la
utilice TCPIP como el protocolo de comunicación anomalía procede de un servidor federado.
para conectar con la pasarela.
Tal vez haya información adicional en la consola
Para el código de razón 224, actualice el cliente a o en los registros cronológicos de mensajes del
la versión 7.1 o posterior. gestor de transacciones y del gestor de bases de
datos.
Procedimiento general de recopilación de
información: sqlcode: -998

Si no puede resolver el problema que se sqlstate: 58005


identifica mediante los códigos de razón, anote el

SQL1000 - SQL1099
de caracteres del gestor de la base de datos.
SQL1000N “<alias>” no es un nombre de
alias válido para una base de No se puede procesar el mandato.
datos.
Respuesta del Usuario: Vuelva a someter el
Explicación: El alias especificado en el mandato mandato con el alias correcto.
o en la api no es válido. El alias ha de contener
entre 1 y 8 caracteres (bytes en países con MBCS)
y todos los caracteres han de proceder del juego

Capítulo 2. Mensajes SQL 171


SQL1001N “<nombre>” no es un nombre de SQL1004C El sistema de archivos no dispone
base de datos válido. de suficiente almacenamiento para
procesar el mandato.
Explicación: La sintaxis del nombre de la base
de datos que se ha especificado en el mandato Explicación: No hay suficiente espacio en el
no es válido. Dicho nombre debe contener entre sistema de archivos especificado para poder
1 y 8 caracteres, teniendo que proceder todos procesar el mandato.
ellos del juego de caracteres básicos del gestor de
En un entorno de bases de datos particionadas
bases de datos.
en entornos OS/2 y Windows, cada nodo del
No se puede procesar el mandato. grupo de bases de datos particionadas debe tener
la misma especificación exacta de unidad de
Respuesta del Usuario: Vuelva a someter el
disco duro físico (letra) disponible y utilizable
mandato con el nombre correcto de una base de
(debe contener espacio aprovechable) para que el
datos.
mandato CREATE DATABASE se ejecute con
sqlcode: -1001 éxito. La letra de unidad de disco duro físico se
especifica en la configuración del gestor de bases
sqlstate: 2E000 de datos. Si este campo se deja en blanco, el
valor por omisión será la unidad de disco duro
SQL1002N “<unidad>” no es una unidad donde está instalado DB2 en la máquina
válida. propietaria de la instancia (sqllib path).

Explicación: La unidad especificada en el No se puede procesar el mandato.


mandato no es válida. La unidad debe consistir Respuesta del Usuario: Elija otro sistema de
en un solo carácter (de la A a la Z) que indique archivos o borre algunos archivos del sistema de
la unidad de disquetes o la partición de disco fijo archivos especificado que no pertenezcan a la
donde se encuentra la base de datos o el base de datos, con el fin de dejar espacio libre
directorio de la base de datos. para las funciones del gestor de bases de datos.
No se puede procesar el mandato. En un entorno de bases de datos particionadas,
Respuesta del Usuario: Vuelva a someter el en OS/2 y Windows, siga los siguientes pasos:
mandato con la unidad correcta. v Determine qué especificación de la unidad de
disco duro (letra) es necesaria. La letra de
unidad se especifica en el mensaje de error.
SQL1003N La contraseña no es válida porque
la sintaxis no es correcta, o bien la v Determine qué nodo/s de la partición de base
contraseña no coincide con la de datos registran el problema. Normalmente,
contraseña de la base de datos puede obtener esta información en el archivo
que se ha especificado. [Link] del nodo propietario de la
instancia.
Explicación: La longitud de la contraseña debe
v Corrija el problema de unidad en el nodo
ser, a lo sumo, de 18 caracteres. No obstante,
individual que registra el problema o cambie
cuando la contraseña ha de ser verificada para la
la especificación de unidad en la configuración
conversación de APPC, debe ser, como mucho,
del gestor de bases de datos para que haya la
de 8 caracteres.
misma unidad (y tenga suficiente espacio) en
Respuesta del Usuario: Asegúrese de que la cada uno de los nodos del grupo de bases de
contraseña no supera el límite de longitud datos particionadas.
permitido. v Vuelva a emitir el mandato.
sqlcode: -1003
sqlstate: 28000

172 Consulta de mensajes, Volumen 2


SQL1005N El alias de la base de datos SQL1006N La página de códigos “<página de
″<nombre>″ ya existe en el códigos>” de la aplicación no
directorio de la base de datos coincide con la página de códigos
local o el directorio de la base de “<página de códigos>” de la base
datos del sistema. de datos.
Explicación: El nombre de alias especificado ya Explicación: La aplicación no ha podido
se ha utilizado. Si no se ha especificado ningún conectarse con la base de datos porque la página
alias en el mandato Catalog Database, como alias de códigos activa es distinta a la que estaba
se emplea el nombre de la base de datos. Al activa cuando se había creado la base de datos.
crearse una base de datos, el nombre de alias es
No se puede procesar el mandato.
el mismo que el nombre de la base de datos.
Respuesta del Usuario: Salga del programa de
Este error puede originarse en el mandato
aplicación actual y vuelva al sistema operativo.
Catalog Database cuando el alias ya exista en el
Cambie la página de códigos del proceso y
directorio de la base de datos del sistema.
vuelva a iniciar el programa de aplicación.
En el mandato de creación de la base de datos,
este error se puede producir en una de las
SQL1007N Error al buscar páginas de un
siguientes situaciones:
objeto del espacio de tabla.
v El alias ya existe en el directorio de la base de
datos del sistema y en el directorio de la base Explicación: Hay páginas internas corruptas de
de datos local. bases de datos o bien errores lógicos internos
para un espacio de tabla. Si desea ver los
v El alias ya existe en el directorio de la base de
detalles, consulte la anotación cronológica de
datos del sistema pero no en el directorio de la
errores del sistema y/o la anotación cronológica
base de datos local.
de errores del gestor de bases de datos.
v El alias ya existe en el directorio de la base de
datos local pero no en el directorio de la base Respuesta del Usuario: Deje de utilizar el
de datos del sistema. objeto o el espacio de tabla. Póngase en contacto
con el servicio técnico de IBM para que
Respuesta del Usuario: Para el mandato inspeccione el objeto y el espacio de tabla.
Catalog Database, descatalogue el alias del
directorio de la base de datos del sistema y sqlcode: -1007
vuelva a someter el mandato original, o bien sqlstate: 58034
catalogue la base de datos con un nombre de
alias distinto.
SQL1008N El ID del espacio de tabla no es
Para el mandato de creación de la base de datos, correcto.
efectúe las siguientes operaciones con respecto a
las 3 situaciones mencionadas: Explicación: El ID del espacio de tabla
v Elimine la base de datos que utiliza el nombre especificado no existe. Es posible que dicho ID
de alias. Vuelva a someter el mandato original. sea más largo de lo permitido o que se haya
descartado el espacio de tabla.
v Descatalogue el alias. Vuelva a someter el
mandato original. Respuesta del Usuario: Deje de utilizar la base
v Catalogue el alias en el directorio de la base de de datos. Guarde la información de diagnóstico
datos del sistema. Elimine la base de datos que en la anotación cronológica de errores y póngase
utiliza el nombre de alias. Vuelva a someter el en contacto con el servicio técnico de IBM.
mandato original. sqlcode: -1008
sqlstate: 58036

Capítulo 2. Mensajes SQL 173


Respuesta del Usuario: Vuelva a someter el
SQL1009N El mandato no es válido.
mandato con la vía de acceso adecuada o cambie
Explicación: No se soporta el mandato cuando el tipo.
se emite en una estación de trabajo que sea sólo
cliente o bien para bases de datos remotas. Un
SQL1012N En un mandato CATALOG
ejemplo de este mandato es la catalogación de
DATABASE, no se ha especificado
una base de datos local.
el nombre del nodo para una
No se puede procesar el mandato. entrada remota.
Respuesta del Usuario: Las soluciones posibles Explicación: No se ha especificado ningún
son: parámetro nombrenodo en el mandato CATALOG
v Emitir el mandato especificado desde una DATABASE para una entrada remota. Las
estación de trabajo que sólo funcione como entradas remotas deben especificar el nombre del
cliente o bien desde la estación de trabajo nodo de la base de datos.
donde reside la base de datos. No se puede procesar el mandato.
v Comprobar que la base de datos esté
Respuesta del Usuario: Vuelva a someter el
catalogada correctamente.
mandato con el parámetro nombrenodo o con un
v Emitir un mandato distinto. tipo diferente.

SQL1010N “<tipo>” no es un parámetro de SQL1013N No se ha podido encontrar el


tipo válido. nombre de alias de la base de
Explicación: El tipo especificado en el mandato datos ni el nombre de la base de
del Entorno de la Base de Datos no es válido. datos ″<nombre>″.
Debe ser ’0’ para una base de datos indirecta o Explicación: El nombre o el alias de la base de
’1’ para una base de datos remota. datos que se ha especificado en el mandato no es
Además, en las plataformas Unix, OS/2, una base de datos existente o no se ha podido
Windows NT y Windows 95, el tipo puede ser ’3’ encontrar la base de datos en los directorios de la
para una base de datos que tenga un nombre base de datos (cliente o servidor).
global DCE. Respuesta del Usuario: Asegúrese de que el
No se puede procesar el mandato. nombre de la base de datos especificado existe en
el directorio de bases de datos del sistema. Si el
Respuesta del Usuario: Vuelva a someter el nombre de la base de datos no existe en el
mandato con un tipo que sea válido. directorio de bases de datos del sistema, significa
que no existe la base de datos o que no se ha
SQL1011N No se ha especificado ninguna vía catalogado el nombre de la base de datos.
de acceso en el mandato Si dicho nombre aparece en el directorio de bases
CATALOG DATABASE para una de datos del sistema principal y el tipo de
entrada indirecta. entrada es INDIRECT, asegúrese de que el tipo
Explicación: Se ha emitido un mandato de base de datos sea REMOTE, y después
CATALOG DATABASE para una entrada compruebe que la base de datos existe y que está
indirecta pero no se ha especificado la vía de catalogada en los directorios de bases de datos
acceso. En entradas indirectas es preciso del nodo remoto. Si el tipo de entrada es
especificar la vía de acceso en que reside la base REMOTE, asegúrese de que la base de datos
de datos. existe y que está catalogada en los directorios de
la base de datos del nodo del servidor.
No se puede procesar el mandato.
En el caso de CREATE DATABASE con la

174 Consulta de mensajes, Volumen 2


cláusula AT NODE, asegúrese de que el nombre
SQL1016N El alias de lu local “<nombre>”
de la base de datos está en el directorio de la
especificado en el mandato
base de datos del sistema con un tipo de entrada
CATALOG NODE no es válido.
de INDIRECT y con un número de nodo de
catálogo que no es igual a -1. Explicación: El alias de la unidad lógica local
(lu local) especificado en el mandato CATALOG
Usuarios del sistema federado: Aparte de lo
NODE no está permitido. El alias de la unidad
mencionado, compruebe que los nombres de la
lógica local, que es el alias de la unidad lógica
base de datos especificados en [Link]
local de SNA, debe tener entre 1 y 8 bytes y no
son todos válidos. Corrija cualquier entrada
puede contener caracteres en blanco.
[Link] para la que no exista la base
de datos especificada en dicha entrada. No se puede procesar el mandato.
sqlcode: -1013 Respuesta del Usuario: Compruebe que el alias
sea un nombre permitido para una unidad
sqlstate: 42705
lógica. Compruebe los caracteres que componen
el nombre. Vuelva a someter el mandato con un
SQL1014W No hay más entradas en el nombre válido para una unidad lógica.
directorio, archivo o lista que se
está explorando.
SQL1017N El parámetro de modalidad
Explicación: Ha finalizado el examen del “<modalidad>” especificado en el
directorio, archivo o lista. mandato CATALOG NODE no es
válido.
Respuesta del Usuario: No es necesaria
ninguna acción. Explicación: La modalidad especificada en el
mandato CATALOG NODE no está permitida.

SQL1015N Es necesario volver a iniciar la El parámetro de modalidad identifica el perfil de


base de datos porque la sesión comunicaciones que el Gestor de comunicaciones
anterior no ha concluido utiliza para establecer una sesión. La modalidad
normalmente. debe tener entre 1 y 8 caracteres. Los caracteres
válidos son las letras de la A a la Z (mayúsculas
Explicación: Es preciso volver a iniciar la base y minúsculas), los números del 0 al 9 y los
de datos debido a que la sesión anterior ha símbolos #, @ y $. El primer carácter debe ser
terminado anormalmente (por ejemplo, una alfabético. El sistema cambia los caracteres en
avería en el suministro eléctrico). minúsculas y los pone en mayúsculas.
No se puede procesar el mandato. No se puede procesar el mandato.
Respuesta del Usuario: Al recibir este mensaje Respuesta del Usuario: Compruebe que el
(SQLCODE), una aplicación puede enviar un nombre sea un nombre permitido de modalidad.
mensaje de aviso al usuario para que recupere la Compruebe los caracteres que componen el
base de datos. Para reiniciar la base de datos, nombre. Vuelva a someter el mandato con una
emita el mandato RESTART DATABASE. En un modalidad correcta.
entorno de servidor de base de datos
particionada, se debe emitir el mandato en todos
los nodos. SQL1018N El nombre de nodo “<nombre>”
especificado en el mandato
sqlcode: -1015 CATALOG NODE ya existe.
sqlstate: 55025 Explicación: El nombre de nodo especificado en
el parámetro nombrenodo del mandato CATALOG
NODE ya está catalogado en el directorio de

Capítulo 2. Mensajes SQL 175


nodos de este sistema de archivos. haya descatalogado, con lo que el proceso puede
continuar. De otro modo, vuelva a someter el
No se puede procesar el mandato.
mandato con el nombre de nodo correcto.
Respuesta del Usuario: Si el parámetro
nombrenodo se ha escrito correctamente, continúe
SQL1022C No hay suficiente memoria
el proceso.
disponible para procesar el
En caso de que la información catalogada del mandato.
nodo ya no sea válida, descatalogue el nodo
Explicación: No hay suficiente memoria de
catalogado en el directorio de nodos y vuelva a
acceso aleatorio (RAM) disponible para procesar
someter el mandato. Si la información catalogada
el mandato.
del nodo es válida, defina un nuevo nombre de
nodo y vuelva a someter el mandato utilizando Si se ha invocado un procedimiento remoto, el
un nuevo nombre de nodo. procedimiento remoto puede utilizar el espacio
de una variable local mayor que el máximo
permitido (4K).
SQL1019N El nombre de nodo “<nombre>”
especificado en el mandato no es Si la sentencia implica a una función definida
válido. por el usuario (UDF), es posible que el grupo de
memoria controlado por el parámetro de
Explicación: El nombre de nodo especificado en
configuración udf_mem_sz del gestor de bases de
el mandato no es válido. El nombre de nodo
datos sea mayor que la memoria disponible.
debe tener entre 1 y 8 caracteres y todos ellos
deben proceder del juego de caracteres básicos No se puede procesar el mandato.
del gestor de bases de datos.
Respuesta del Usuario: Detenga la aplicación.
No se puede procesar el mandato. Las soluciones posibles son:
Respuesta del Usuario: Vuelva a someter el v Cambiar la opción MEMMAN NO SWAP, NO
mandato con el nombre de nodo correcto. MOVE del archivo [Link] por SWAP,
MOVE.
v Eliminar los procesos de fondo.
SQL1020C El directorio de nodos está lleno.
v Reducir los valores de los parámetros de
Explicación: En el directorio de nodos no caben configuración que definen la asignación de
más entradas. memoria, incluido el udf_mem_sz en caso de
No se puede procesar el mandato. que en la sentencia anómala esté implicada
alguna UDF.
Respuesta del Usuario: Descatalogue las v Instalar más memoria de acceso aleatorio
entradas del directorio de nodos que no sean (RAM).
necesarias.
v Si se ha invocado un procedimiento remoto,
hay que asegurarse de que dicho
SQL1021N No se ha encontrado el nombre de procedimiento utiliza un espacio variable local
nodo “<nombre>” especificado en nunca mayor a 4K.
el mandato UNCATALOG NODE. v Si se utilizan los Servicios de Datos Remotos,
Explicación: El nombrenodo especificado en el debe aumentarse el tamaño de la pila de los
mandato no se ha podido encontrar en el Servicios de Datos Remotos (rsheapsz) en la
directorio de nodos. configuración tanto de cliente como de
servidor, ya que por cada aplicación se utiliza,
No se puede procesar el mandato. como mínimo, un bloque.
Respuesta del Usuario: Si el parámetro v En sistemas OS/2, cambie PROTECT por
nombrenodo es correcto, tal vez el nodo ya se NOPROTECT en la sentencia MEMMAN del

176 Consulta de mensajes, Volumen 2


archivo [Link]. De este modo, se siga con el proceso. Si el error se ha producido
obtiene más espacio de memoria para las en otra sentencia de SQL, emita la sentencia de
aplicaciones, aunque se inhabilitan ciertas SQL CONNECT y vuelva a someter el mandato
características de protección de OS/2. Consulte o la sentencia.
la documentación de OS/2 para obtener más
sqlcode: -1024
información y para poder determinar si será
beneficioso para su entorno. sqlstate: 08003
v En sistemas OS/2, aumente el valor del
parámetro de configuración min_priv_mem del SQL1025N El gestor de bases de datos no se
gestor de bases de datos. Esto hará que el ha detenido porque las bases de
gestor de bases de datos reserve más espacio datos aún están activas.
de memoria privada en el momento de
ejecutar db2start. Explicación: El mandato de detención del gestor
NOTA: Esto sólo se aplica en los releases de de bases de datos no se puede procesar si existe
DB2 anteriores a la Versión 2. alguna aplicación conectada a las bases de datos
bajo control del gestor de bases de datos, o bien
sqlcode: -1022 si se ha activado alguna base de datos.
No cabe emprender ninguna acción.
sqlstate: 57011
Respuesta del Usuario: Por lo general, no se
precisa ninguna acción. Para detener el gestor de
SQL1023C Anomalía en la conversación de
bases de datos, todas las aplicaciones activas
las comunicaciones.
deben desconectarse de todas las bases de datos
Explicación: Se ha producido un error en la que se estén utilizando. Como alternativa, el
conversación de comunicaciones. usuario puede utilizar el mandato FORCE para
desconectar las aplicaciones y el mandato
No se puede procesar el mandato.
DEACTIVATE para desactivar la base de datos.
Respuesta del Usuario: Vuelva a intentar el
mandato original. Si el error sigue apareciendo,
SQL1026N El gestor de bases de datos ya está
póngase en contacto con el administrador de
activo.
comunicaciones.
Explicación: El mandato de iniciar el gestor de
Usuarios del sistema federado: también la fuente
bases de datos ya está procesado.
de datos puede detectar esta situación.
No se puede procesar el mandato.
sqlcode: -1023
Respuesta del Usuario: Como el mandato ya
sqlstate: 08001
está procesado, la aplicación puede continuar
procesándose.
SQL1024N No hay ninguna conexión con la
base de datos.
SQL1027N No se encuentra el directorio de
Explicación: No hay ninguna conexión nodos.
establecida con la base de datos. No puede
Explicación: El mandato para listar el directorio
procesarse ninguna otra sentencia de SQL a no
de nodos no puede procesarse porque no se ha
ser que se haya ejecutado previamente SQL
encontrado el directorio de nodos.
CONNECT.
No se puede procesar el mandato.
No se puede procesar el mandato.
Respuesta del Usuario: Emita el mandato
Respuesta del Usuario: Si el error se ha
CATALOG NODE con los parámetros apropiados
producido al desconectarse de la base de datos,
y vuelva a someter el mandato actual.

Capítulo 2. Mensajes SQL 177


que especifica el directorio donde reside la base
SQL1029N El alias de lu asociada
de datos.
“<nombre>” que se ha
especificado en el mandato sqlcode: -1031
CATALOG NODE no es válido.
sqlstate: 58031
Explicación: No se había indicado el alias de lu
asociada especificado en el mandato CATALOG
NODE o bien contiene caracteres que no son SQL1032N No se ha emitido ningún mandato
válidos. El alias de lu asociada es el alias de la de iniciación del gestor de bases
unidad lógica SNA asociada y debe contener de datos.
entre 1 y 8 caracteres y no debe contener Explicación: El mandato de iniciación del gestor
caracteres en blanco. de bases de datos no se ha procesado. Es preciso
No se puede procesar el mandato. procesarlo antes de emitir un mandato de
detención del gestor de bases de datos, una
Respuesta del Usuario: Examine la lu asociada sentencia de SQL o cualquier programa de
por si hubiera algún error tipográfico. utilidad.
Compruebe que el alias sea un nombre permitido
para una unidad lógica. Compruebe los No se puede procesar el mandato.
caracteres que se emplean en el alias. Vuelva a Respuesta del Usuario: Emita una mandato
someter el mandato con una lu asociada correcta. para iniciar el gestor de bases de datos y vuelva
a emitir el mandato actual.
SQL1030C El directorio de bases de datos Si se utilizan varios nodos lógicos, asegúrese de
está lleno. haber definido correctamente la variable de
Explicación: En el directorio de la base de datos entorno DB2NODE. La variable de entorno
del sistema o en el directorio de la base de datos DB2NODE indica el nodo con el que intentará
local ya no caben más entradas. conectarse la aplicación. DB2NODE debe
definirse con el número de nodo de uno de los
No se puede procesar el mandato. nodos definidos en el mismo sistema principal
que la aplicación.
Respuesta del Usuario: Descatalogue las
entradas del directorio que no sean necesarias. Si sqlcode: -1032
el directorio de la base de datos local está lleno,
cree nuevas bases de datos en otro sistema de sqlstate: 57019
archivos.
SQL1033N No es posible acceder al directorio
SQL1031N El directorio de la base de datos de la base de datos porque se está
no se encuentra en el sistema de utilizando en este momento.
archivos que se ha especificado. Explicación: No se puede acceder al directorio
Explicación: No se ha podido encontrar el de la base de datos porque alguien lo está
directorio de la base de datos del sistema o el actualizando en este momento. Asimismo, no se
directorio de la base de datos local. Hay una puede acceder al directorio para actualizarlo si
base de datos que no se ha creado o que no se ya se ha accedido a él por alguna otra razón.
ha catalogado correctamente. Esta situación es aplicable tanto al directorio de
la base de datos del sistema como al directorio
No se puede procesar el mandato. de la base de datos local.
Respuesta del Usuario: Compruebe que la base No se puede procesar el mandato.
de datos se haya creado con la especificación
correcta de la vía de acceso. El mandato Catalog Respuesta del Usuario: Espere hasta que haya
Database tiene un parámetro de vía de acceso

178 Consulta de mensajes, Volumen 2


tenido lugar el acceso y, a continuación, vuelva a Es posible que este mandato tenga que ejecutarse
someter el mandato. varias veces para tener la certeza de que se
hayan resuelto todas las transacciones dudosas.
sqlcode: -1033
sqlstate: 57019 Si está instalando la base de datos de ejemplo,
elimínela e instálela de nuevo.
SQL1034C La base de datos está dañada. La
sqlcode: -1034
aplicación se ha desconectado de
la base de datos. Todas las
aplicaciones que procesan la base sqlstate: 58031
de datos se han detenido.
Explicación: La base de datos ha quedado SQL1035N La base de datos se está
dañada. No puede utilizarse hasta haber resuelto utilizando en estos momentos.
el problema. Todas las aplicaciones que están Explicación: Se ha producido una de las
conectadas a la base de datos se han condiciones siguientes:
desconectado y todos los procesos que ejecutan
v Se ha solicitado el uso exclusivo, pero otro
dichas aplicaciones en la base de datos se han
usuario ya está utilizando la base de datos a
detenido.
modo de base de datos compartida (en el
No se puede procesar el mandato. mismo proceso).
Respuesta del Usuario: Emita el mandato v Se ha solicitado el uso exclusivo, pero la base
RESTART DATABASE para recuperar la base de de datos ya se está utilizando como una base
datos. Si el mandato RESTART también falla de datos exclusiva. (Hay dos procesos
constantemente, tal vez sea preciso restaurar la diferentes que están tratando de acceder a la
base de datos a partir de una copia de seguridad. misma base de datos.)
En un entorno de servidor de base de datos v Se ha alcanzado el número máximo de
particionada, compruebe syslog para saber si el conexiones en la base de datos.
mandato RESTART ha fallado debido a v Otro usuario está utilizando la base de datos
anomalías de comunicaciones o del nodo antes en otro sistema.
de restaurar la base de datos desde una copia de
v Actualmente está en curso una operación de
seguridad. En tal caso, asegúrese de que el gestor
activar o desactivar la base de datos.
de bases de datos está activo y funciona
correctamente y que la comunicación está No se puede procesar el mandato.
disponible entre todos los nodos; acto seguido,
Respuesta del Usuario: Las soluciones posibles
vuelva a someter el mandato de reinicio.
son:
Si ha encontrado este error durante el proceso de v Vuelva a someter el mandato más adelante
recuperación en avance, debe restaurar la base de cuando nadie utilice la base de datos.
datos desde una copia de seguridad y volver a
v Cambie la autorización de modo que coincida
realizar la recuperación en avance.
con el usuario actual o bien espere a que nadie
Tenga en cuenta que, en un entorno de servidor utilice la base de datos.
de bases de datos particionada, el mandato v Espere a que la base de datos deje de tener un
RESTART de la base de datos se ejecuta nodo uso exclusivo.
por nodo. Para asegurarse de que la base de
v Espere a que otros usuarios que trabajan en
datos sea restaurada en todos los nodos, utilice el
otro sistema se hayan desconectado de la base
mandato:
de datos.
db2_all db2 restart database <nombre_base_datos>
sqlcode: -1035

Capítulo 2. Mensajes SQL 179


sqlstate: 57019 sqlcode: -1036
sqlstate: 58030
SQL1036C Se ha producido un error de E/S
al acceder a la base de datos.
SQL1037W El directorio de nodos está vacío.
Explicación: Por lo menos hay un archivo de
Explicación: Se ha tratado de leer el contenido
base de datos que tiene un error de E/S:
del directorio de nodos, pero no había ninguna
v El sistema no puede abrir, leer ni grabar un entrada.
archivo de la base de datos.
Respuesta del Usuario: No es necesaria
v El sistema no puede crear la base de datos
ninguna acción.
porque se ha producido un error al tratar de
crear un archivo o un directorio de la base de sqlcode: +1037
datos.
sqlstate: 01606
v El sistema no puede desactivar la base de
datos porque se ha producido un error
mientras el sistema trataba de suprimir un SQL1038C Se ha producido un error de E/S
archivo de base de datos o un directorio de la al acceder al directorio de nodos.
base de datos.
Explicación: No se ha podido acceder al
v El sistema no puede crear la base de datos directorio de nodos debido a un error de E/S.
porque se ha recibido una interrupción
mientras el sistema creaba o suprimía un No se puede procesar el mandato.
archivo de base de datos o un directorio de la Respuesta del Usuario: Vuelva a someter el
base de datos. mandato. Si el error sigue apareciendo, elimine el
v El sistema no puede localizar el subdirectorio directorio de nodos (sqlnodir bajo el directorio
de la base de datos o el archivo de sqllib) y vuelva a catalogar los nombres de nodo
configuración de la base de datos durante el de la red.
proceso de conexión.
sqlcode: -1038
La base de datos no puede utilizarse.
sqlstate: 58031
Respuesta del Usuario: Si el error se ha
producido durante el proceso de una base de
SQL1039C Se ha producido un error de E/S
datos, vuelva a someter el mandato. Si el error
al acceder al directorio de la base
sigue apareciendo, restaure la base de datos a
de datos.
partir de una copia de seguridad.
Explicación: No se puede acceder al directorio
Si el error se ha producido durante CREATE
de la base de datos del sistema o bien al
DATABASE o DROP DATABASE, los archivos y
directorio de la base de datos local. Este error
directorios que queden pendientes por la
puede originarse no sólo cuando el sistema está
ejecución no satisfactoria del mandato CREATE
catalogando o descatalogando una base de datos,
DATABASE O DROP DATABASE serán
sino también cuando trata de acceder a una base
suprimidos si se emite posteriormente otro
de datos que está catalogada en el directorio.
mandato CREATE DATABASE o DROP
DATABASE. No se puede procesar el mandato.
Si está instalando la base de datos de ejemplo, Respuesta del Usuario: Las soluciones posibles
elimínela e instálela de nuevo. son:
Si el error se ha producido al tratar de conectarse v Si el error se ha producido en un sistema de
a una base de datos, efectúe un rastreo y solicite disquetes, compruebe que sea correcto el
ayuda a IBM para ver si puede recuperarla. disquete que hay en la unidad y que esté listo

180 Consulta de mensajes, Volumen 2


para ser utilizado. Compruebe que el disquete valor será efectivo una vez se haya vuelto a
no esté protegido contra grabación. iniciar satisfactoriamente el gestor de bases de
v Si el directorio de la base de datos está datos.
dañado, restaure las bases de datos sqlcode: -1041
catalogadas a partir de una copia de
seguridad. sqlstate: 57032

Si está instalando la base de datos de ejemplo,


elimínela e instálela de nuevo. SQL1042C Se ha producido un error
inesperado del sistema.
sqlcode: -1039 Explicación: Se ha producido un error del
sistema. Una posible razón de este error es que el
sqlstate: 58031 gestor de bases de datos no esté instalado
correctamente o que el entorno no esté
SQL1040N La base de datos ya tiene establecido correctamente.
conectadas el número máximo de En OS/2, cuando se intenta iniciar el gestor de
aplicaciones. bases de datos, la causa más común de este error
Explicación: El número de aplicaciones que hay es que el archivo [Link] esté dañado.
conectadas a la base de datos es ya el valor No se puede procesar el mandato.
máximo que aparece definido en el archivo de
configuración de la base de datos. Respuesta del Usuario: Si el error se ha
producido en OS/2 al tratar de iniciar el gestor
No se puede procesar el mandato. de bases de datos y se sospecha del archivo
Respuesta del Usuario: Espere a que otras [Link], sustituya los archivos [Link] del
aplicaciones se desconecten de la base de datos. sistema por los que contiene el disquete 1 de los
Si es necesario ejecutar más aplicaciones a la vez, disquetes de instalación de DB2 para OS/2.
aumente el valor de maxappls. Una vez Si el error se ha producido al tratar de conectarse
desconectadas todas las aplicaciones de la base a una base de datos, efectúe un rastreo (consulte
de datos y reiniciada la base de datos, el nuevo las instrucciones que figuran más abajo) y solicite
valor cobrará efecto. soporte técnico a IBM.
sqlcode: -1040 Si el problema se debe a algún otro motivo
sqlstate: 57030 distinto de los anteriormente apuntados,
asegúrese de que la hora y la fecha del sistema
estén correctamente definidos y compruebe que
SQL1041N Ya se ha iniciado el número el sistema dispone de suficiente memoria y
máximo de bases de datos espacio de intercambio/paginación.
simultáneas.
Vuelva a someter el mandato actual.
Explicación: La aplicación ha tratado de iniciar
una base de datos inactiva, pero el número de Si el error sigue apareciendo, detenga el gestor
bases de datos que hay activas ya es igual al de bases de datos y vuelva a iniciarlo.
valor máximo que aparece definido en el archivo Si aún así no se soluciona, vuelva a instalar el
de configuración del sistema. gestor de bases de datos.
No se puede procesar el mandato. Si estaba activo un rastreo, llame al Recurso de
Respuesta del Usuario: Espere a que quede Rastreo Independiente (Independent Trace
inactiva alguna de las bases de datos. Si es Facility) desde el indicador de mandatos del
preciso tener activas al mismo tiempo más bases sistema operativo. Consulte el Recurso de
de datos, aumente el valor de numdb. El nuevo Rastreo Independiente en la publicación

Capítulo 2. Mensajes SQL 181


Troubleshooting Guide para obtener información – SQLCODE o número del mensaje e
sobre cómo utilizar este recurso. Póngase en identificador del usuario
contacto con el representante del servicio técnico – Contenido del SQLCA, si es posible
aportando la siguiente información:
– Archivo de rastreo, si es posible.
Información necesaria:
v Descripción del problema SQL1044N Se ha cancelado el proceso debido
v SQLCODE o número del mensaje a una interrupción.
v Contenido del SQLCA, si es posible Explicación: Es posible que el usuario haya
v Archivo de rastreo, si es posible. pulsado la secuencia de teclas de interrupción.
Usuarios del sistema federado: Si es necesario, El proceso se ha detenido.
localice el problema en la fuente de datos que
Usuarios del sistema federado: también la fuente
rechaza la petición (consulte la guía de
de datos puede detectar esta situación.
determinación de problemas para saber qué
procedimientos hay que seguir para identificar la Respuesta del Usuario: Siga procesando para
fuente de datos anómala). Si el problema radica manejar la interrupción.
en una fuente de datos siga los procedimientos
para la determinación de problemas para dicha Si está instalando la base de datos de ejemplo,
fuente de datos. elimínela e instálela de nuevo.
Si está iniciando el gestor de bases de datos,
sqlcode: -1042 emita un mandato db2stop antes de emitir
ningún otro mandato de db2.
sqlstate: 58004
sqlcode: -1044
sqlstate: 57014
SQL1043C El gestor de bases de datos no ha
podido inicializar los catálogos
del sistema. Se ha devuelto el SQL1045N No se ha encontrado la base de
error “<error>”. datos porque no estaba catalogada
correctamente.
Explicación: El mandato CREATE DATABASE
ha fallado al inicializar los catálogos del sistema. Explicación: Hay una entrada de directorio de
la base de datos que apunta a otra entrada que
Respuesta del Usuario: Anote el número de
no está en el directorio local (HOME).
mensaje (SQLCODE) y el error que aparece en
este mensaje. No se puede procesar el mandato.
Si estaba activo un rastreo, llame al Recurso de Respuesta del Usuario: Verifique las entradas
Rastreo Independiente (Independent Trace de todos los directorios de bases de datos
Facility) desde el indicador de mandatos del asociados con los mandatos de exploración de
sistema operativo. Consulte el Recurso de directorios.
Rastreo Independiente en la publicación
Troubleshooting Guide para obtener información sqlcode: -1045
sobre cómo utilizar este recurso. A continuación, sqlstate: 58031
póngase en contacto con el representante del
servicio técnico con la siguiente información:
SQL1046N El ID de autorización no es
v Entorno: aplicación
válido.
v Información necesaria:
Explicación: La autorización especificada
– Descripción del problema
durante la conexión no es válida para la fuente

182 Consulta de mensajes, Volumen 2


de datos o el gestor de bases de datos. Se ha
SQL1048N El parámetro de uso
producido una de las siguientes condiciones:
“<parámetro>” de los mandatos
v La autorización contiene más de 30 caracteres START USING DATABASE o
para plataformas Windows u 8 caracteres para CONNECT TO no es válido. Debe
otras plataformas. ser una ″S″ para el acceso
v La autorización contiene caracteres que no son compartido, una ″X″ para el uso
válidos para una autorización. Los caracteres exclusivo o una ″N″ para el uso
válidos son de la A a la Z (minúsculas y exclusivo en un solo nodo. En
mayúsculas), del 0 al 9, y los símbolos #, @ y conexiones DB2, sólo se da
$. soporte a S. Únicamente se da
v La autorización es PUBLIC o pública. soporte a N en la configuración
MPP.
v La autorización comienza por SYS, sys, IBM,
ibm, SQL o sql. Explicación: El parámetro de uso del mandato
v La autorización vulnera algún convenio de START USING DATABASE o el mandato
denominación específico de fuente de datos. CONNECT TO ha de ser una S para uso
compartido y una X para uso exclusivo. Si está
No se puede procesar el mandato. conectándose a una base de datos utilizando DB2
Connect, sólo se permite el acceso compartido.
Respuesta del Usuario: Conéctese con un ID de
Para estos valores se suministran nemotécnicos
autorización que sea válido.
equivalentes en el archivo SQLENV.H.
Usuarios del sistema federado: si es necesario,
No se puede procesar el mandato.
localice el problema en la fuente de datos que
rechaza la petición (consulte la publicación Respuesta del Usuario: Vuelva a someter el
Problem Determination Guide para saber qué mandato con un parámetro de uso válido
procedimientos hay que seguir para identificar la (preferiblemente, de los equivalentes
fuente de datos anómala) y utilice un ID de nemotécnicos).
autorización válido para dicha fuente de datos.
sqlcode: -1046 SQL1049C Hay un error en el estado de la
aplicación. La conexión con la
sqlstate: 28000
base de datos se ha perdido.
Explicación: Se ha perdido la conexión con la
SQL1047N La aplicación ya está conectada a
base de datos.
otra base de datos.
No se puede procesar el mandato.
Explicación: Una aplicación no puede crear
ninguna base de datos mientras se encuentre Respuesta del Usuario: Emita una sentencia
conectada a otra base de datos. CONNECT RESET.
No está permitido vincular un archivo de enlace
a una base de datos mientras esté conectado a SQL1050N La base de datos no puede
otra base de datos. descatalogarse porque se trata de
una base de datos local.
No se puede procesar el mandato.
Explicación: La base de datos especificada en el
Respuesta del Usuario: Desconéctese de la base
mandato UNCATALOG DATABASE es una base
de datos activa y vuelva a someter el mandato.
de datos local. Las bases de datos locales no
pueden descatalogarse porque las entradas de
directorio correspondientes quedan suprimidas al
desactivar la base de datos.

Capítulo 2. Mensajes SQL 183


No se puede procesar el mandato. En un entorno de bases de datos particionadas,
en OS/2 y Windows, siga los siguientes pasos:
Respuesta del Usuario: En caso de que el
nombre de la base de datos estuviera v Determine qué especificación de la unidad de
especificado correctamente, siga con el proceso. disco duro (letra) es necesaria. La letra de
unidad se especifica en el mensaje de error.
v Determine qué nodo/s de la partición de base
SQL1051N La vía de acceso “<vía de acceso>”
de datos registran el problema. Normalmente,
correspondiente al directorio de la
puede obtener esta información en el archivo
base de datos no existe.
[Link] del nodo propietario de la
Explicación: La vía de acceso especificada en el instancia.
parámetro del mandato correspondiente al v Corrija el problema de unidad en el nodo
directorio de la base de datos o bien en la individual que registra el problema o cambie
entrada de directorio de base de datos no es la especificación de unidad en la configuración
válida. No hay ningún sistema de archivos con del gestor de bases de datos para que haya la
ese nombre. misma unidad (y tenga suficiente espacio) en
No se puede procesar el mandato. cada uno de los nodos del grupo de bases de
datos particionadas.
Respuesta del Usuario: Vuelva a someter el v Vuelva a emitir el mandato.
mandato con la vía de acceso correcta para el
directorio de la base de datos.
SQL1053N Ya se está procesando una
sqlcode: -1051 interrupción.
sqlstate: 57019 Explicación: El sistema está procesando en estos
momentos una interrupción, así que se hace caso
SQL1052N La vía de acceso ″<vía de acceso>″ omiso de cualquier otra.
de la base de datos no existe. La solicitud de interrupción se pasa por alto.
Explicación: La vía de acceso especificada en el Respuesta del Usuario: Espere a que finalice el
parámetro path del mandato no es válida. No hay proceso actual de interrupción y vuelva a
ninguna vía de acceso con ese nombre. someter el mandato.
En un entorno de bases de datos particionadas
en entornos OS/2 y Windows, cada nodo del SQL1054N Hay un COMMIT en curso y no
grupo de bases de datos particionadas debe tener puede interrumpirse.
la misma especificación exacta de unidad de
disco duro físico (letra) disponible y utilizable Explicación: El sistema está procesando en estos
(debe contener espacio aprovechable) para que el momentos un COMMIT. El usuario ha entrado
mandato CREATE DATABASE se ejecute con una secuencia de teclas de interrupción.
éxito. La letra de unidad de disco duro físico se
La solicitud de interrupción se pasa por alto.
especifica en la configuración del gestor de bases
de datos. Si este campo se deja en blanco, el Usuarios del sistema federado: también la fuente
valor por omisión será la unidad de disco duro de datos puede detectar esta situación.
donde está instalado DB2 en la máquina
Respuesta del Usuario: Espere a que finalice
propietaria de la instancia (sqllib path).
COMMIT y vuelva a enviar la petición.
No se puede procesar el mandato.
Respuesta del Usuario: Vuelva a someter el
mandato con la vía de acceso correcta a la base
de datos.

184 Consulta de mensajes, Volumen 2


mandato OPEN DIRECTORY SCAN o del
SQL1055N Hay un ROLLBACK en curso y no
mandato OPEN NODE DIRECTORY SCAN.
puede interrumpirse.
No se puede procesar el mandato.
Explicación: El sistema está procesando un
ROLLBACK. El usuario ha entrado una Respuesta del Usuario: Vuelva a someter el
secuencia de teclas de interrupción. mandato con un parámetro handle válido.
La solicitud de interrupción se pasa por alto.
SQL1059N No se puede procesar ningún
Usuarios del sistema federado: también la fuente
mandato Get Next porque no se
de datos puede detectar esta situación.
ha emitido el parámetro Open
Respuesta del Usuario: Espere a que finalice Scan.
ROLLBACK y vuelva a enviar la petición.
Explicación: Se ha emitido un mandato de
exploración de directorio antes de abrir la
SQL1056N Ya hay abiertas ocho exploración.
exploraciones del directorio de la
No se puede procesar el mandato.
base de datos.
Respuesta del Usuario: Emita el mandato
Explicación: Ya hay abiertas ocho exploraciones
OPEN DIRECTORY SCAN o el OPEN NODE
del directorio de la base de datos. No se permite
DIRECTORY SCAN y vuelva a someter el
tener abiertas más de ocho exploraciones.
mandato actual.
No se puede procesar el mandato.
Respuesta del Usuario: Emita uno o más SQL1060N El usuario “<ID-autorización>” no
mandatos CLOSE DIRECTORY SCAN y vuelva a tiene el privilegio CONNECT.
someter el mandato.
Explicación: La autorización especificada no
sqlcode: -1056 tiene el privilegio CONNECT para acceder a la
base de datos. Para que el usuario se pueda
sqlstate: 54029
conectar con una base de datos, es preciso
conceder primero el privilegio CONNECT.
SQL1057W El directorio de la base de datos
Usuarios del sistema federado: también la fuente
del sistema está vacío.
de datos puede detectar esta situación.
Explicación: Se ha tratado de leer el contenido
No se puede procesar el mandato.
del directorio de la base de datos del sistema,
pero no había ninguna entrada. Respuesta del Usuario: Póngase en contacto
con el administrador del sistema o con el
Respuesta del Usuario: No es necesaria
administrador de bases de datos de la base de
ninguna acción.
datos y solicite un GRANT CONNECT para el
sqlcode: +1057 ID de autorización. Vuelva a someter el mandato.

sqlstate: 01606 Usuarios del sistema federado: si es necesario,


aisle el problema en la fuente de datos que
rechaza la petición (consulte la publicación
SQL1058N El parámetro de manejadores Problem Determination Guide para saber qué
(HANDLE) del mandato Directory procedimientos hay que seguir para identificar la
Scan no es válido. fuente de datos anómala) y asegúrese de que se
Explicación: El parámetro handle especificado en han concedido los privilegios correctos para la
el mandato Directory Scan no es válido. El fuente de datos.
parámetro handle debe ser el que se devuelva del sqlcode: -1060

Capítulo 2. Mensajes SQL 185


sqlstate: 08004
SQL1062N No se ha encontrado la vía de
acceso “<vía de acceso>” de la
SQL1061W El mandato RESTART se ha base de datos.
completado de manera
Explicación: El parámetro path de la base de
satisfactoria, pero existen
datos que aparece especificado en el mandato no
transacciones dudosas contra la
existe. En caso de no especificar la vía de acceso,
base de datos.
o si ésta no existe, se utiliza la que aparece
Explicación: El mandato RESTART se ha definida por omisión en el archivo de
completado de manera satisfactoria, pero se han configuración del sistema.
encontrado transacciones dudosas. La base de
En un entorno de bases de datos particionadas
datos es utilizable, pero si las transacciones
en entornos OS/2 y Windows, cada nodo del
dudosas no se resuelven antes de que se elimine
grupo de bases de datos particionadas debe tener
la última conexión a la base de datos, ésta
la misma especificación exacta de unidad de
solicitará de nuevo un mandato RESTART antes
disco duro físico (letra) disponible y utilizable
de que se pueda volver a utilizar.
(debe contener espacio aprovechable) para que el
Respuesta del Usuario: Resuelva las mandato CREATE DATABASE se ejecute con
transacciones dudosas o prepárese para reiniciar éxito. La letra de unidad de disco duro físico se
(RESTART) la base de datos siempre que desee especifica en la configuración del gestor de bases
utilizarla. Si el gestor de transacciones (TM) que de datos. Si este campo se deja en blanco, el
estaba utilizando la base de datos (en un entorno valor por omisión será la unidad de disco duro
XA/DTP) está disponible, el administrador donde está instalado DB2 en la máquina
debería dar instrucciones al TM para solucionar propietaria de la instancia (sqllib path).
las transacciones dudosas. De forma alternativa y
No se puede procesar el mandato.
con extrema precaución, el administrador puede
utilizar el CLP para finalizar las transacciones de Respuesta del Usuario: Compruebe la vía de
forma heurística. acceso, la que haya especificada o la que figure
por omisión, para asegurarse de que existe.
Tenga en cuenta que, en un entorno de servidor
Vuelva a someter el mandato.
de bases de datos particionada, el mandato
RESTART de la base de datos se ejecuta nodo En un entorno de bases de datos particionadas,
por nodo. Para asegurarse de que la base de en OS/2 y Windows, siga los siguientes pasos:
datos sea restaurada en todos los nodos, utilice el v Determine qué especificación de la unidad de
mandato: disco duro (letra) es necesaria. La letra de
db2_all db2 restart database <nombre_base_datos> unidad se especifica en el mensaje de error.
v Determine qué nodo/s de la partición de base
Si todos los nodos son operativos, emitiendo este de datos registran el problema. Normalmente,
mandato se resolverá cualquier transacción puede obtener esta información en el archivo
dudosa. [Link] del nodo propietario de la
instancia.
Es posible que este mandato tenga que ejecutarse v Corrija el problema de unidad en el nodo
varias veces para tener la certeza de que se individual que registra el problema o cambie
hayan resuelto todas las transacciones dudosas. la especificación de unidad en la configuración
del gestor de bases de datos para que haya la
misma unidad (y tenga suficiente espacio) en
cada uno de los nodos del grupo de bases de
datos particionadas.
v Vuelva a emitir el mandato.

186 Consulta de mensajes, Volumen 2


conectarse al servidor. Las causas posibles son
SQL1063N El proceso de iniciación del gestor
éstas:
de bases de datos ha sido
satisfactorio. v La estación de trabajo no está conectada con el
servidor de archivos NetWare.
Explicación: El mandato para iniciar el gestor
v La estación de trabajo carece de autorización
de bases de datos ha finalizado
para crear un objeto en la base de seguridad
satisfactoriamente.
(Bindery) del servidor de archivos NetWare.
v Otro gestor de bases de datos de la red está
SQL1064N El proceso de detención del gestor utilizando el mismo nombre de objeto que hay
de bases de datos ha finalizado especificado en el archivo de configuración del
satisfactoriamente. gestor de bases de datos.
Explicación: El mandato para detener el gestor Respuesta del Usuario: Asegúrese de que la
de bases de datos ha finalizado de manera estación de trabajo esté conectada al servidor de
satisfactoria. archivos NetWare, y de que tenga la autorización
adecuada para crear un objeto en el Bindery del
SQL1065W La base de datos se ha creado, servidor de archivos. El usuario debe estar
pero se ha producido un error en conectado en calidad de SUPERVISOR o
uno o varios archivos de equivalente. Asimismo, asegúrese de que el
vinculación de la lista nombre del objeto que se haya especificado en el
“<nombre-lista>”. No se han archivo de configuración del gestor de bases de
vinculado los siguientes archivos: datos sea único en todos los gestores de bases de
“<lista>”. datos de la red. Realice las correcciones
oportunas, ejecute DB2STOP y a continuación,
Explicación: No se ha vinculado uno o más ejecute de nuevo DB2START.
programas de utilidad a la base de datos. El
archivo de lista “<nombre-lista>” contiene una Si el problema persiste, en el indicador de
lista de los archivos de vinculación. Los números mandados del sistema operativo escriba DB2TRC
que aparecen en “<lista>” indican las posiciones ON -L 0X100000. Vuelva a ejecutar DB2START y
relativas de los archivos no vinculados en el luego en el indicador de mandatos escriba
archivo de lista. DB2TRC DUMP nombrearchivo para guardar la
información de rastreo. Para desactivar el rastreo,
Los archivos de vinculación de programas de escriba DB2TRC OFF. Póngase en contacto con el
utilidad que aparecen en la lista no están coordinador de servicio y proporciónele la
vinculados a la base de datos que se ha creado información de rastreo.
recientemente.
Respuesta del Usuario: El usuario puede SQL1067N El proceso de DB2STOP no ha
vincular los programas de utilidad mencionados sido satisfactorio. El soporte del
a la base de datos. La opción del formato no protocolo IPX/SPX no se ha
debe utilizarse en la llamada de enlace. detenido de forma satisfactoria.
Explicación: El soporte del protocolo IPX/SPX
SQL1066N El proceso de DB2START no ha no se ha detenido de forma satisfactoria. Las
sido satisfactorio. El soporte del causas posibles son éstas:
protocolo IPX/SPX no se ha
v La estación de trabajo no está conectada con el
arrancado satisfactoriamente.
servidor de archivos NetWare.
Explicación: El soporte al protocolo IPX/SPX no v La estación de trabajo carece de autorización
se ha iniciado de forma satisfactoria. Los clientes para suprimir un objeto en el Bindery del
remotos no pueden utilizar IPX/SPX para servidor de archivos NetWare.

Capítulo 2. Mensajes SQL 187


Respuesta del Usuario: Asegúrese de que la de datos especificado no es correcto, vuelva a
estación de trabajo esté conectada al servidor de someter el mandato con el nombre adecuado. Si
archivos NetWare, y de que tenga la autorización el nombre de la base de datos especificado era
adecuada para suprimir un objeto en el Bindery correcto y y la intención era eliminar el nombre
del servidor de archivos. El usuario debe estar de la base de datos del directorio de bases de
conectado en calidad de SUPERVISOR o datos, utilice el mandato UNCATALOG
equivalente. Efectúe las correcciones oportunas y DATABASE.
ejecute de nuevo DB2STOP.
Si el problema persiste, en el indicador de SQL1070N La dirección del parámetro
mandados del sistema operativo escriba DB2TRC correspondiente al nombre de la
ON -L 0X100000. Vuelva a ejecutar DB2STOP y base de datos no es válida.
luego en el indicador de mandatos escriba
Explicación: El programa de aplicación ha
DB2TRC DUMP nombrearchivo para guardar la
empleado una dirección que no es válida para el
información de rastreo. Para desactivar el rastreo,
parámetro correspondiente al nombre de la base
escriba DB2TRC OFF. Póngase en contacto con el
de datos. La dirección apunta a un
coordinador de servicio y proporciónele la
almacenamiento intermedio no asignado o la
información de rastreo.
serie de caracteres del almacenamiento
intermedio no termina con un nulo.
SQL1068N El dominio que tiene el ID de
No se puede procesar el mandato.
usuario “<ID-usuario>” para la
sentencia CONNECT o ATTACH Respuesta del Usuario: Corrija el programa de
no está definido en la variable del aplicación para poder utilizar una aplicación
entorno B2DOMAINLIST. correcta y un terminador nulo para la serie de
entrada.
Explicación: Un ID de usuario en una sentencia
CONNECT TO o ATTACH TO no pertenece a un
dominio definido en la variable del entorno SQL1071N La dirección del parámetro
B2DOMAINLIST. correspondiente al nombre de
alias de la base de datos no es
Respuesta del Usuario: Especifique el nombre
válida.
del dominio que tiene el ID de usuario en la
variable del entorno DB2DOMAINLIST Explicación: El programa de aplicación ha
utilizando el mandato DB2SET. utilizando una dirección que no es válida para
este parámetro. La dirección apunta a un
sqlcode: -1068
almacenamiento intermedio no asignado o la
sqlstate: 08004 serie de caracteres del almacenamiento
intermedio no termina con un nulo.
SQL1069N La base de datos “<nombre>” no No se puede procesar el mandato.
es una base de datos inicial.
Respuesta del Usuario: Asegúrese de que en el
Explicación: La base de datos no es una base de programa de aplicación se utilice una dirección
datos local. Hay una base de datos local que está correcta y de que la serie de entrada termine con
catalogada como indirecta en el directorio de la un nulo.
base de datos del sistema y esta entrada hace
referencia a una entrada local en el directorio de
la base de datos local del mismo nodo. Las bases
de datos remotas no pueden eliminarse.
No se puede procesar el mandato.
Respuesta del Usuario: Si el nombre de la base

188 Consulta de mensajes, Volumen 2


v Elimine todos los procesos del gestor de bases
SQL1072C Los recursos del gestor de bases
de datos que se ejecuten bajo el id de instancia
de datos tienen el estado de
(en sistemas basados en UNIX, puede utilizar
incoherentes. Es posible que el
″ps -eaf -u <id instancia> | grep db2″ para
gestor de bases de datos haya
listar todos los procesos del gestor de bases de
terminado de forma incorrecta o
datos que se ejecuten bajo el id de instancia y
bien que otra aplicación esté
el mandato ″kill -9 <id proceso>″ para
utilizando recursos del sistema de
eliminarlos).
tal forma que entre en conflicto
con el modo en que está haciendo v Compruebe que no haya otra aplicación
uso de ellos el gestor de bases de ejecutándose bajo el id de instancia y luego
datos. Tal vez sea necesario elimine todos los recursos de los que es
limpiar los recursos del sistema. propietario el id de instancia (en sistemas
basados en UNIX, puede utilizar el mandato
Explicación: La solicitud ha fallado porque los ″ipcs | grep <id instancia>″ para listar todos
recursos del gestor de bases de datos se los recursos de IPC de los que es propietario el
encuentran en el estado de incoherentes. Esto id de instancia y el mandato ″ipcrm -[q|m|s]
puede ocurrir si: <id>″ para eliminarlos).
v DB2 se ha terminado de forma incorrecta (en v Si hay otra instancia del gestor de bases de
sistemas basados en UNIX, por ejemplo, esto datos ejecutándose, y se encuentra en un
puede suceder si los procesos se han sistema de archivos diferente, y se sospecha un
terminado con el mandato ″kill″ en lugar de conflicto de nodos-i, cambie los nodos-i de la
hacerlo con el mandato de detención del forma siguiente:
gestor de bases de datos).
– cree otro directorio al mismo nivel que
v Es posible que otra aplicación u otro usuario sqllib
hayan eliminado los recursos del gestor de
– mueva todos los elementos de sqllib al
bases de datos (en sistemas basados en UNIX,
directorio nuevo
por ejemplo, un usuario con privilegio
suficiente puede haber eliminado – suprima sqllib
accidentalmente un recurso IPC – cambie el nombre del nuevo directorio por
(Comunicación entre procesos) cuyo sqllib
propietario es el gestor de bases de datos, v Vuelva a iniciar la instancia del gestor de bases
utilizando el mandato ″ipcrm″). de datos.
v El uso de los recursos del sistema por parte de
otra aplicación está en conflicto con el uso de
los recursos del sistema por parte del gestor de SQL1073N El número de release del
bases de datos (en sistemas basados en UNIX, directorio de nodos no es correcto.
tal vez otra aplicación esté utilizando las Explicación: El número de release del directorio
mismas claves que el gestor de bases de datos de nodos no coincide con el número de release
utiliza para crear recursos IPC). correspondiente al producto. El directorio de
v Otra instancia del gestor de bases de datos nodos podría proceder de un release anterior.
puede estar utilizando los mismos recursos.
Respuesta del Usuario: Vuelva a catalogar
Esto podría ocurrir en sistemas basados en
todas las entradas de nodo y vuelva a intentar el
UNIX si las dos instancias están en sistemas de
mandato.
archivos diferentes y los directorios sqllib
tienen el mismo nodo-i (los nodos-i suelen
obtener las claves de IPC). SQL1074N La dirección del parámetro de la
contraseña no es válida.
Respuesta del Usuario: Tal vez sea necesario
hacer limpieza del sistema: Explicación: El programa de aplicación ha
utilizando una dirección que no es válida para

Capítulo 2. Mensajes SQL 189


este parámetro. La dirección apunta a un una dirección válida en el programa de
almacenamiento intermedio no asignado o la aplicación.
serie de caracteres del almacenamiento
intermedio no termina con un nulo.
SQL1078N La dirección del parámetro del
No se puede procesar el mandato. almacenamiento intermedio no es
válida.
Respuesta del Usuario: Asegúrese de que en el
programa de aplicación se utilice una dirección Explicación: El programa de aplicación ha
correcta y de que la serie de entrada termine con utilizado una dirección que no es válida para el
un nulo. parámetro buffer.
No se puede procesar el mandato.
SQL1075N La dirección del parámetro de
Respuesta del Usuario: Asegúrese de utilizar
comentario de la base de datos no
una dirección válida en el programa de
es válida.
aplicación.
Explicación: El programa de aplicación ha
utilizando una dirección que no es válida para
SQL1079N La dirección del parámetro
este parámetro. La dirección apunta a un
correspondiente al nombre de
almacenamiento intermedio no asignado o la
nodo no es válida.
serie de caracteres del almacenamiento
intermedio no termina con un nulo. Explicación: El programa de aplicación ha
empleado una dirección de parámetro nname que
No se puede procesar el mandato.
no es válida. La dirección apunta a un
Respuesta del Usuario: Asegúrese de que en el almacenamiento intermedio no asignado o la
programa de aplicación se utilice una dirección serie de caracteres del almacenamiento
correcta y de que la serie de entrada termine con intermedio no termina con un nulo.
un nulo.
No se puede procesar el mandato.
Respuesta del Usuario: Asegúrese de que en el
SQL1076N La dirección del parámetro del
programa de aplicación se utilice una dirección
recuento no es válida.
correcta y de que la serie de entrada termine con
Explicación: El programa de aplicación ha un nulo.
empleado una dirección que no es válida para el
parámetro count.
SQL1080N La dirección de parámetro del
No se puede procesar el mandato. nombre de lu local no es válida.
Respuesta del Usuario: Asegúrese de utilizar Explicación: El programa de aplicación ha
una dirección válida en el programa de empleado una dirección que no es válida para el
aplicación. parámetro de nombre local_lu. La dirección
apunta a un almacenamiento intermedio no
asignado o la serie de caracteres del
SQL1077N La dirección del parámetro del
almacenamiento intermedio no termina con un
manejador no es válida.
nulo.
Explicación: El programa de aplicación ha
No se puede procesar el mandato.
utilizado una dirección que no es válida para el
parámetro handle. Respuesta del Usuario: Asegúrese de que en el
programa de aplicación se utilice una dirección
No se puede procesar el mandato.
correcta y de que la serie de entrada termine con
Respuesta del Usuario: Asegúrese de utilizar un nulo.

190 Consulta de mensajes, Volumen 2


No se puede procesar el mandato.
SQL1081N La dirección del parámetro de lu
asociada no es válida. Respuesta del Usuario: Corrija el error y vuelva
a someter el mandato.
Explicación: El programa de aplicación ha
empleado una dirección que no es válida para el
parámetro partner_lu. La dirección apunta a un SQL1084C Los segmentos de memoria
almacenamiento intermedio no asignado o la compartida no pueden asignarse.
serie de caracteres del almacenamiento
intermedio no termina con un nulo. Explicación: El gestor de bases de datos no ha
podido asignar segmentos mientras procesaba un
No se puede procesar el mandato. mandato del Entorno de la Base de Datos o una
sentencia de SQL CONNECT.
Respuesta del Usuario: Asegúrese de que en el
programa de aplicación se utilice una dirección Es posible que el parámetro ’dbheap’ sea
correcta y de que la serie de entrada termine con demasiado pequeño.
un nulo.
Respuesta del Usuario: Anote el número de
mensaje (SQLCODE). Tal vez la causa de este
SQL1082N La dirección del parámetro de la error radique en que no hay recursos de
modalidad no es válida. memoria suficientes, ya sea para el gestor de
bases de datos o bien para el entorno donde se
Explicación: El programa de aplicación ha
esté realizando la operación del gestor de bases
empleado una dirección que no es válida para el
de datos. Asegúrese de que haya suficientes
parámetro mode. La dirección apunta a un
recursos de memoria para satisfacer los requisitos
almacenamiento intermedio no asignado o la
del gestor de bases de datos. Existe la
serie de caracteres del almacenamiento
posibilidad, además, de cerrar todos aquellos
intermedio no termina con un nulo.
procesos de fondo que no sea preciso mantener
No se puede procesar el mandato. activos.
Respuesta del Usuario: Asegúrese de que en el Si existen suficientes recursos de memoria y el
programa de aplicación se utilice una dirección problema todavía persiste, llame al Recurso de
correcta y de que la serie de entrada termine con Rastreo Independiente (Independent Trace
un nulo. Facility) desde el indicador de mandatos del
sistema operativo. Consulte el Recurso de
Rastreo Independiente en la publicación
SQL1083N El bloque de descripción de bases
Troubleshooting Guide para obtener información
de datos no se puede procesar,
sobre cómo utilizar este recurso. Póngase en
código de razón=“<código-
contacto con el representante del servicio técnico
razón>”.
aportando la siguiente información:
Explicación: La aplicación ha emitido un
Información necesaria:
mandato CREATE DATABASE, pero el bloque
descriptor de bases de datos (DBDB) no se ha v Descripción del problema
podido procesar debido a uno de los códigos de v SQLCODE o número del mensaje
razón siguientes: v Contenido del SQLCA, si es posible
v La dirección de DBDB no es válida (código de v Archivo de rastreo, si es posible.
razón 01).
sqlcode: -1084
v El valor del campo SQLDBDID de DBDB no es
válido (código de razón 02). Debería
establecerse en el valor SQLDBDB1. sqlstate: 57019

v El valor del campo SQLDBCSS de DBDB no es


válido (código de razón 04).

Capítulo 2. Mensajes SQL 191


subdirectorio bnd del subdirectorio sqllib.
SQL1085N La pila de aplicaciones no puede
asignarse. Los archivos de enlace de programas de utilidad
no están vinculados a la base de datos que se ha
Explicación: La aplicación no se ha conectado a
creado recientemente.
la base de datos porque el gestor de bases de
datos no ha podido asignar el número de Respuesta del Usuario: Vincule los programas
páginas de 4K de la pila de aplicaciones que se de utilidad a la base de datos. No utilice la
especifican en el archivo de configuración de la opción de formato en la llamada del vinculador.
base de datos. El sistema está fuera de las 4K.
No se puede procesar el mandato.
SQL1088W La base de datos se ha creado,
Respuesta del Usuario: Las soluciones posibles pero se ha producido un error al
son: vincular los programas de
v Reducir el tamaño de la pila de aplicaciones utilidad. Los programas de
(applheapsz) en el archivo de configuración de utilidad no están vinculados a la
la base de datos. base de datos.
v Reducir el número máximo de aplicaciones en Explicación: CREATE DATABASE o MIGRATE
el archivo de configuración de la base de DATABASE no han vinculado a la base de datos
datos. los archivos de enlace del programa de utilidad.
v Eliminar los procesos de fondo. Los archivos de enlace del programa de utilidad
v Instalar más memoria. no están vinculados a la base de datos que se
acaba de crear o migrar.
sqlcode: -1085
Respuesta del Usuario: Vincule los programas
sqlstate: 57019 de utilidad a la base de datos. No utilice la
opción de formato en la llamada del vinculador.
SQL1086C Se ha producido un error
“<error>” del sistema operativo. SQL1089W La base de datos se ha creado,
pero la vinculación de los
Explicación: El mandato ha recibido un error
programas de utilidad se ha
procedente del sistema operativo que impide
interrumpido. Los programas de
seguir procesando.
utilidad no están vinculados a la
No se puede procesar el mandato. base de datos.

Respuesta del Usuario: Consulte las Explicación: CREATE DATABASE ha quedado


publicaciones del sistema operativo dirigidas al interrumpido al tratar de vincular los programas
usuario a fin de determinar la naturaleza del de utilidad a la base de datos. Es posible que se
error. haya pulsado la secuencia de teclas de
interrupción.

SQL1087W Se ha creado la base de datos, Los archivos de enlace de programas de utilidad


pero se ha producido un error al no están vinculados a la base de datos que se ha
abrir el archivo de lista creado recientemente.
“<nombre>”. Los programas de
Respuesta del Usuario: Vincule los programas
utilidad no están vinculados a la
de utilidad a la base de datos. No utilice la
base de datos.
opción de formato en la llamada del vinculador.
Explicación: CREATE DATABASE no ha podido
abrir el archivo de lista que contenía la lista de
archivos de enlace de programas de utilidad. El
archivo de lista debería encontrarse en el

192 Consulta de mensajes, Volumen 2


código de gestor de bases de datos.
SQL1090C El número de release del
programa de aplicación Respuesta del Usuario: Utilice únicamente
precompilado o del programa de bases de datos que se hayan creado con un
utilidad no es válido. release compatible del gestor de bases de datos.
Si el error se ha producido durante un Migrate o
Explicación: El número de release del programa
un Restore, primero es preciso migrar la base de
de aplicación precompilado o del programa de
datos a un release que pueda migrarse con el
utilidad no es compatible con el número de
release actual de la base de datos del gestor de
release de la versión que hay instalada del gestor
bases de datos. Si el error se ha producido en la
de bases de datos.
primera conexión después de eliminar un fixpak,
El error también se producirá si el programa de la base de datos debería restaurarse a partir de
aplicación está utilizando bibliotecas de gestor de una copia de seguridad anterior al uso del
base de datos de nivel inferior o DLL al acceder programa de utilidad para actualizar la base de
a la versión instalada del archivo de datos al nivel de fixpak.
configuración del gestor de la base de datos.
sqlcode: -1091
No se puede procesar el mandato.
sqlstate: 08004
Respuesta del Usuario: Compruebe que no
haya una versión anterior de las bibliotecas de
SQL1092N “<ID-autorización>” no dispone
gestor de la base de datos o DLL que se elegirán
de autorización para ejecutar el
para el proceso de las aplicaciones.
mandato solicitado.
Si el problema persiste, repita el proceso de
Explicación: El usuario ha tratado de ejecutar
precompilación, si es posible, con el gestor de
un mandato o una operación sin tener la
bases de datos actual y utilice únicamente
autorización adecuada para ese mandato u
programas de aplicación precompilados con un
operación.
nivel de release compatible del gestor de bases
de datos. No se puede procesar el mandato.
Usuarios del sistema federado: también la fuente
SQL1091C El número de release de la base de datos puede detectar esta situación.
de datos no es válido.
Respuesta del Usuario: Conéctese como usuario
Explicación: El número de release de la base de con la autorización correcta y trate de volver a
datos no es compatible con el número de release enviar el mandato u operación que había fallado.
de la versión que hay instalada del gestor de En la corrección de la autorización pueden estar
bases de datos. Este número puede ser el número implicadas SYSADM, SYSCTRL, SYSMAINT y
de release cuando se creó la base de datos, el DBADM. DBADM se concede en bases de datos
número de release la última vez que se migró la y el resto de autorizaciones vienen determinadas
base de datos o la versión, release, modificación por la pertenencia a uno de los grupos definidos
y nivel fixpak más reciente definido en el en la configuración del gestor de bases de datos
catálogo. (por ejemplo, si sysctrl_group está definido como
’beatles’ en el archivo de configuración del gestor
No se puede procesar el mandato. Si el error se
de bases de datos, entonces hay que pertenecer
ha producido durante un Migrate o un Restore,
al grupo ’beatles’ para tener la autorización
es porque se está tratando de migrar o restaurar
SYSCTRL). Consulte Consulta de mandatos o
un release incompatible de la base de datos. Si el
Consulta de SQL para obtener una lista de las
error se ha producido en la primera conexión
autorizaciones necesarias para el mandato o la
después de eliminar un fixpak, significa que se
operación en cuestión.
está intentando conectar a una base de datos que
está definida para utilizar un nivel más alto del Si está utilizando la autentificación Kerberos en

Capítulo 2. Mensajes SQL 193


un entorno Windows 2000, asegúrese de que sqlstate: 51017
inicia la sesión en la máquina usando la cuenta
del dominio. Sólo los usuarios del dominio
SQL1094N No se puede acceder al directorio
pueden usar la autentificación Kerberos en un
de nodos porque se está
entorno Windows 2000.
actualizando.
Si se está utilizando soporte LDAP, asegúrese de
Explicación: El directorio de nodos no se puede
que el usuario o la pasarela de DB2 Connect
explorar ni utilizar mientras se esté sometiendo a
tiene la autoridad de llevar a cabo los mandatos
actualización. Asimismo, no se puede acceder al
CATALOG DATABASE, NODE y DCS
directorio para actualizarlo si ya se ha accedido a
DATABASE. Invoque el mandato ″UPDATE DBM
él por alguna otra razón.
CFG USING CATALOG_NOAUTH YES″ en el
cliente o pasarela para corregir el problema. No se puede procesar el mandato.
Usuarios del sistema federado: si es necesario, Respuesta del Usuario: Vuelva a someter el
aisle el problema en la fuente de datos que mandato una vez finalizada la actualización.
rechaza la petición (consulte la publicación
Problem Determination Guide para saber qué sqlcode: -1094
procedimientos hay que seguir para identificar la sqlstate: 57009
fuente de datos anómala) y asegúrese de que el
id de autorización especificado tiene la
autorización correcta en dicha fuente de datos. SQL1095N Ya hay abiertas ocho
exploraciones del directorio de
Si desea obtener asesoramiento para la solicitud nodos.
de autorizaciones, póngase en contacto con el
administrador del sistema. No trate de ejecutar Explicación: En este proceso ya hay abiertas
ningún mandato si antes no cuenta con la debida ocho exploraciones del directorio de nodos, que
autorización. es el número máximo.
No se puede procesar el mandato.
SQL1093N El usuario no está conectado. Respuesta del Usuario: Emita uno o varios
Explicación: Para poder procesar una mandatos CLOSE NODE DIRECTORY SCAN.
autorización necesaria de un mandato, primero Vuelva a someter el mandato.
debe haber un usuario conectado. Las causas sqlcode: -1095
posibles de este error son:
sqlstate: 54029
v No poder obtener un ID de usuario.
v Un error inesperado del sistema operativo que
se produce al intentar conectarse. SQL1096N El mandato no es válido para este
tipo de nodo.
v La aplicación se está ejecutando en un proceso
subordinado. Explicación: Se ha enviado un mandato a un
v El usuario ha cancelado un intento de nodo que no da soporte a dicho mandato, o bien
conexión. se ha detectado que el entorno del sistema no
está debidamente preparado para este tipo de
No se puede procesar el mandato. nodo. Por ejemplo, puede haber una base de
Respuesta del Usuario: Conéctese con un ID de datos catalogada como LOCAL en un nodo
usuario que sea válido y vuelva a someter el cliente.
mandato. Si hay varios procesos que tratan de No se puede procesar el mandato.
conectarse al mismo tiempo, espere unos
segundos y repita el procedimiento de conexión. Respuesta del Usuario: Compruebe que el
mandato y los parámetros sean adecuados para
sqlcode: -1093

194 Consulta de mensajes, Volumen 2


el tipo de nodo. Paralelamente, verifique también mandato CATALOG NODE para ese nodo.
que el entorno donde haya de procesarse el
sqlcode: -1097
mandato sea el correcto. Vuelva a someter el
mandato. sqlstate: 42720

SQL1097N El nombre del nodo no se SQL1098N La aplicación ya está conectada a


encuentra en el directorio de esta base de datos.
nodos.
Explicación: Se ha solicitado una conexión con
Explicación: O bien el nombre de nodo listado una base de datos pero la aplicación ya está
en el directorio de la base de datos para una base conectada a la base de datos en cuestión.
de datos remota o el nombre de nodo
especificado en el mandato de conexión no se No se puede procesar el mandato.
habían catalogado en el directorio de nodos. Respuesta del Usuario: No es necesaria
No se puede procesar el mandato. ninguna acción.

Usuarios del sistema federado: también la fuente sqlcode: -1098


de datos puede detectar esta situación. sqlstate: 53056
Respuesta del Usuario: Compruebe que el
nombre de nodo listado en el directorio de la SQL1099N El disquete está protegido contra
base de datos, o listado como mandato de grabación.
conexión, se haya catalogado en el directorio de
nodos. Si el nodo no aparece en la lista del Explicación: Se ha intentado realizar una
directorio de nodos, emita el mandato CATALOG operación en una base de datos que reside en un
NODE. disquete que está protegido contra grabación.

Usuarios del sistema federado: además de las No se puede procesar la sentencia.


acciones mencionadas, verifique también que los Respuesta del Usuario: Asegúrese de utilizar el
nombres de nodo listados en todas las entradas disquete correcto. Si es necesario, retire la
[Link] son correctos. Si el nodo no protección del disquete.
figura en el directorio de nodos y el servidor es
un miembro de la familia DB2, emita un

SQL1100 - SQL1199
Respuesta del Usuario: Emita el mandato
SQL1100W El nombre de nodo “<nombre>”
CATALOG NODE.
especificado en el mandato
Catalog Database no se ha
catalogado en el directorio de SQL1101N No se ha podido acceder a la base
nodos. de datos remota “<nombre>” del
nodo “<nombre-nodo>” con el ID
Explicación: El mandato Catalog Database
de autorización y la contraseña
especificaba el nombre de nodo “<nombre>”
que se han especificado.
pero éste no está catalogado en el directorio de
nodos. Para poder utilizar la base de datos Explicación: Se ha solicitado una conexión con
remota, primero hay que catalogar el nombre de la base de datos remota “<nombre>” del nodo
nodo. “<nombre-nodo>”, y el nodo remoto no acepta la
combinación de ID de autorización/contraseña
El mandato CATALOG DATABASE ha finalizado
especificada para ese nodo (ya sea en las tablas
de forma satisfactoria.

Capítulo 2. Mensajes SQL 195


de autorizaciones remotas o durante el tiempo de
SQL1105N La sentencia de SQL CONNECT
ejecución).
RESET no está permitida en un
No se puede procesar la solicitud. Procedimiento de interfaz de
aplicación remota.
Respuesta del Usuario: Vuelva a someter la
solicitud con una combinación válida de ID de Explicación: El procedimiento de la aplicación
autorización y contraseña para el sistema remoto. remota contiene una sentencia de SQL
CONNECT RESET.

SQL1102N No se ha especificado ningún Al procedimiento remoto no se le permite


nombre de base de datos. continuar.

Explicación: No se ha proporcionado el nombre Respuesta del Usuario: Elimine la sentencia de


de ninguna base de datos para seguir adelante SQL CONNECT RESET y vuelva a intentar el
con la migración. procedimiento remoto.

No se puede procesar la sentencia. sqlcode: -1105

Respuesta del Usuario: Especifique el nombre sqlstate: 38003


de una base de datos para migrarla.
SQL1106N Se ha cargado el módulo de DLL
SQL1103W El proceso del mandato Migrate “<nombre>” especificado, pero no
Database ha sido satisfactorio. se ha podido ejecutar la función
“<función>”.
Explicación: El mandato Migrate ha finalizado
satisfactoriamente. Explicación: No se encuentra la función dentro
de la DLL (biblioteca de enlace dinámico).
Tenga en cuenta que este mensaje también se
devolverá si la base de datos ya se encontraba en No se puede procesar el mandato.
el nivel actual y no necesitaba migrarse.
Respuesta del Usuario: Asegúrese de que el
El proceso continúa. módulo de DLL se haya elaborado
correctamente. Consulte el módulo en el archivo
Respuesta del Usuario: No es necesaria de definiciones.
ninguna acción.
sqlcode: -1106

SQL1104N La dirección del parámetro del sqlstate: 42724


nombre del programa no es
válida.
SQL1107N Se ha recibido una interrupción al
Explicación: El programa de aplicación ha tratar de cargar la DLL
empleado una dirección para el nombre del “<nombre>” que se ha
programa que no es válida. especificado.
No se puede procesar el mandato. Explicación: Al cargar el módulo de DLL
(biblioteca de enlace dinámico), el mandato se ha
Respuesta del Usuario: Debe utilizarse una interrumpido, quizás por haber pulsado
dirección correcta en el programa de aplicación. Control+Pausa.
El proceso se ha detenido.
Respuesta del Usuario: Vuelva a someter el
mandato.
sqlcode: -1107

196 Consulta de mensajes, Volumen 2


sqlstate: 42724
SQL1110N El área de datos proporcionada es
incorrecta y no ha podido
SQL1108N Se ha recibido un error utilizarse.
inesperado de E/S o un error del
Explicación: El área de datos no se ha
sistema operativo al cargar la DLL
inicializado correctamente.
especificada “<nombre>”.
No se puede procesar el mandato.
Explicación: Se ha producido un error
inesperado al tratar de cargar el módulo de DLL Respuesta del Usuario: Asegúrese de que los
(biblioteca de enlace dinámico) especificado en el campos del SQLDA de entrada y SQLDA de
campo correspondiente al nombre del programa. salida se hayan inicializado correctamente.
No se puede procesar el mandato.
SQL1111N El nombre de programa
Respuesta del Usuario: Vuelva a someter el
“<nombre>” especificado no es
mandato actual. Si el error persiste, vuelva a
válido.
instalar el gestor de bases de datos.
Explicación: La sintaxis del nombre del
Si aun habiéndolo instalado nuevamente el error
programa o del módulo de DLL (biblioteca de
no desaparece, anote el número del mensaje
enlace dinámico) no es correcta.
(SQLCODE) y toda la información posible que
haya en SQLCA. No se puede procesar el mandato.
Si estaba activo un rastreo, llame al Recurso de Respuesta del Usuario: Asegúrese de que la
Rastreo Independiente (Independent Trace DLL o el nombre del programa esté especificado
Facility) desde el indicador de mandatos del correctamente.
sistema operativo. Consulte el Recurso de
sqlcode: -1111
Rastreo Independiente en la publicación
Troubleshooting Guide para obtener información sqlstate: 42724
sobre cómo utilizar este recurso. Luego póngase
en contacto con el representante del servicio
técnico. SQL1112N No hay suficientes recursos del
sistema para cargar la DLL
sqlcode: -1108 “<nombre>” especificada.
sqlstate: 42724 Explicación: No hay suficiente memoria de
acceso aleatorio (RAM) para cargar el módulo de
DLL (biblioteca dinámica de enlaces)
SQL1109N No se ha podido cargar la DLL
especificado.
especificada “<nombre>”.
No se puede procesar el mandato.
Explicación: No se ha encontrado el módulo de
DLL (biblioteca de enlace dinámico) especificado. Respuesta del Usuario: Detenga la aplicación.
Las soluciones posibles son:
No se puede procesar el mandato.
v Cambiar la opción MEMMAN NO SWAP, NO
Respuesta del Usuario: Asegúrese de que el MOVE del archivo [Link] por SWAP,
archivo especificado se encuentre en un MOVE.
subdirectorio que esté identificado en el sistema
v Eliminar los procesos de fondo.
LIBPATH.
v Reducir los valores de los parámetros de
sqlcode: -1109 configuración que definen la asignación de
sqlstate: 42724 memoria.
v Instalar más memoria de acceso aleatorio
(RAM).

Capítulo 2. Mensajes SQL 197


sqlcode: -1112
SQL1115N El número de variables de SQL
del SQLDA de salida ha pasado
sqlstate: 42724 de “<cantidad 1>” a “<cantidad
2>”.
SQL1113N El tipo de datos de la variable de Explicación: El procedimiento remoto ha
SQL “<n>” en el SQLDA de cambiado el campo ’sqld’ en el SQLDA de salida,
salida ha pasado de “<tipo 1>” a siendo ’sqld’ el número de variables de SQL
“<tipo 2>”. utilizadas en el SQLDA.
Explicación: El procedimiento almacenado El procedimiento almacenado no devuelve
remoto ha modificado el tipo de datos de la ningún dato.
variable de SQL n del SQLDA de salida; n es el
número de secuencia de la primera variable SQL Respuesta del Usuario: Corrija el procedimiento
discordante. almacenado remoto para que el campo ’sqld’ en
el SQLDA de salida no cambie.
El procedimiento almacenado no devuelve
ningún dato. sqlcode: -1115

Respuesta del Usuario: Corrija el procedimiento sqlstate: 39502


almacenado remoto para que la información del
tipo de datos que se encuentra en el SQLDA de
SQL1116N No se puede realizar una conexión
salida no cambie.
o activación de la base de datos
sqlcode: -1113 “<nombre>” debido a BACKUP
PENDING.
sqlstate: 39502
Explicación: La base de datos especificada
necesita efectuar una copia de seguridad para
SQL1114N La longitud de los datos de la establecer un punto inicial para la recuperación
variable de SQL “<n>” del en avance.
SQLDA de salida ha pasado de
“<longitud 1>” a “<longitud 2>”. La conexión no se ha establecido.

Explicación: El procedimiento almacenado Respuesta del Usuario: Efectúe una copia de


remoto ha modificado la longitud de los datos de seguridad llamando a la rutina BACKUP o, si no
la variable SQL n del SQLDA de salida; n es el se necesita la configuración en avance, desactive
número de secuencia de la primera variable los parámetros de configuración de base de datos
discordante. tanto de la salida del usuario como del
mantenimiento de anotaciones cronológicas.
El procedimiento almacenado no devuelve
ningún dato. sqlcode: -1116

Respuesta del Usuario: Corrija el procedimiento sqlstate: 57019


almacenado remoto para que la longitud de los
datos informativos en el SQL de salida no se
SQL1117N No se puede realizar una conexión
cambie.
o activación de la base de datos
sqlcode: -1114 “<nombre>” debido a
ROLL-FORWARD PENDING.
sqlstate: 39502
Explicación: La base de datos especificada está
habilitada para la recuperación en avance y,
aunque se ha restaurado, no ha realizado la
dicha recuperación.

198 Consulta de mensajes, Volumen 2


La conexión no se ha establecido. sqlstate: 57019
Usuarios del sistema federado: también la fuente
de datos puede detectar esta situación. SQL1119N No se puede realizar una conexión
o activación de la base de datos
Respuesta del Usuario: Efectúe una
“<nombre>” debido a una
recuperación en avance de la base de datos o
restauración anterior incompleta.
indique que no desea dicha recuperación
mediante el mandato ROLLFORWARD. Tenga en Explicación: La base de datos tiene un estado
cuenta que si no recupera en avance la base de de incoherente porque se ha producido un error
datos, los registros anotados con posterioridad a del sistema durante una función de restauración.
la última copia de seguridad de la misma no se
La conexión no se ha establecido.
aplicarán a dicha base de datos.
Usuarios del sistema federado: también la fuente
Usuarios del sistema federado: si es preciso, aísle
de datos puede detectar esta situación.
el problema en la fuente de datos que rechaza la
petición (consulte el manual Problem Respuesta del Usuario: Emita el mandato
Determination Guide para saber qué RESTORE y vuelva a emitir el mandato.
procedimientos hay que seguir para identificar la
fuente de datos anómala) y realice la acción de Usuarios del sistema federado: si es preciso, aísle
recuperación pertinente de dicha fuente de datos el problema en la fuente de datos que rechaza la
para establecerla en un punto de coherencia. petición (consulte el manual Problem
Determination Guide para ver los procedimientos
sqlcode: -1117 a seguir para identificar la fuente de datos
anómala) y emita el mandato RESTORE en la
sqlstate: 57019
fuente de datos antes de volver a intentar el
mandato.
SQL1118N No se puede realizar una conexión
sqlcode: -1119
o activación de la base de datos
“<nombre>” debido a una copia sqlstate: 57019
de seguridad anterior incompleta.
Explicación: La base de datos tiene un estado SQL1120N No se puede realizar una conexión
de incoherente porque se ha producido un error o activación de la base de datos
del sistema durante una función de copia de “<nombre>” debido a una copia
seguridad. de seguridad o restauración
anterior incompleta.
La conexión no se ha establecido.
Explicación: La base de datos está en estado de
Usuarios del sistema federado: también la fuente
incoherente porque se ha producido un error del
de datos puede detectar esta situación.
sistema durante una función de copia de
Respuesta del Usuario: Emita el mandato seguridad o de restauración. No puede
BACKUP y vuelva a intentar el mandato. determinarse si la copia de seguridad o la
restauración se estaba procesando.
Usuarios del sistema federado: si es preciso, aísle
el problema en la fuente de datos que rechaza la La conexión no se ha establecido.
petición (consulte el manual Problem
Usuarios del sistema federado: también la fuente
Determination Guide para ver los procedimientos
de datos puede detectar esta situación.
a seguir para identificar la fuente de datos
anómala) y emita el mandato BACKUP en la Respuesta del Usuario: Emita el mandato
fuente de datos antes de volver a intentar el BACKUP o RESTORE y vuelva a intentar el
mandato. mandato.
sqlcode: -1118 Usuarios del sistema federado: si es preciso, aísle

Capítulo 2. Mensajes SQL 199


el problema en la fuente de datos que rechaza la
SQL1123N El protocolo “<tipo>” no es
petición (consulte el manual Problem
válido.
Determination Guide para ver los procedimientos
a seguir para identificar la fuente de datos Explicación: El tipo de protocolo que se ha
anómala) y emita el mandato BACKUP o especificado en la estructura de nodos para el
RESTORE en la fuente de datos antes de volver a mandato Catalog no representa ningún valor
intentar el mandato. reconocido. Los tipos de protocolos válidos están
definidos en los archivos de la cabecera sqlenv.
sqlcode: -1120
No se puede procesar el mandato.
sqlstate: 57019
Respuesta del Usuario: Compruebe el tipo de
protocolo de la estructura de nodos y vuelva a
SQL1121N La dirección del parámetro de la
someter el mandato.
estructura de nodos no es válida.
Explicación: La aplicación ha empleado una
SQL1124N El nombre de la estación de
dirección para el parámetro de la estructura de
trabajo remota “<nombre>” no es
nodos que no es válida. La dirección apunta a un
válido.
almacenamiento intermedio que no se ha
asignado o bien el almacenamiento intermedio Explicación: El nombre de la estación de trabajo
no es lo bastante grande como para albergar la remota que se ha especificado en la estructura de
entrada solicitada. protocolos NETBIOS para el mandato Catalog no
está especificado, o bien contiene caracteres que
No se puede procesar el mandato.
no son válidos. El nombre de la estación de
Respuesta del Usuario: Compruebe que el trabajo debe contener entre 1 y 8 caracteres. Los
programa asigna el área de almacenamiento caracteres válidos son de la A a la Z (minúsculas
intermedio adecuada y vuelva a someter el y mayúsculas), el 0 al 9, y los símbolos #, @ y $.
mandato. El primer carácter debe ser alfabético o un
carácter especial: #, @ o $. El sistema cambia los
caracteres que están en minúsculas y los pone en
SQL1122N La dirección del parámetro de la mayúsculas.
estructura de protocolos no es
válida. No se puede procesar el mandato.

Explicación: La aplicación ha empleado una Respuesta del Usuario: Compruebe los


dirección para el parámetro de la estructura de caracteres especificados en el nombre de la
protocolos que no es válido. O la dirección estación de trabajo remota. Vuelva a someter el
apunta a un almacenamiento intermedio no mandato con un nombre válido de una estación
asignado o la dirección apunta a un de trabajo.
almacenamiento intermedio de protocolos
incorrecto.
SQL1125N El número de adaptador
No se puede procesar el mandato. “<número>” no es válido.
Respuesta del Usuario: Compruebe que el Explicación: El número de adaptador que se ha
programa asigne el área de almacenamiento especificado en la estructura de protocolo
intermedio necesaria atendiendo al campo de NETBIOS para el mandato Catalog no es válido.
protocolos de la estructura de nodos y, acto
No se puede procesar el mandato.
seguido, vuelva a someter el mandato.
Respuesta del Usuario: Compruebe que sea
válido el número de adaptador y vuelva a
someter el mandato.

200 Consulta de mensajes, Volumen 2


iniciarse porque no hay suficientes recursos para
SQL1126N El ID de red “<ID>” no es válido.
crear un nuevo proceso.
Explicación: El ID de red especificado en la
Respuesta del Usuario: Realice una de las
estructura de protocolo APPN para el mandato
acciones siguientes:
Catalog no es válido. El ID de red identifica la
red SNA donde reside la unidad lógica remota v Reduzca el número de usuarios que utilizan
(LU). El ID de red debe contener entre 1 y 8 DB2
caracteres. Los caracteres válidos son de la A a la v Aumente el límite de procesos del sistema.
Z (minúsculas y mayúsculas), el 0 al 9, y los
símbolos #, @ y $. El primer carácter debe ser sqlcode: -1129
alfabético o un carácter especial: #, @ o $. El
sistema cambia los caracteres que están en sqlstate: 42724
minúsculas y los pone en mayúsculas.
No se puede procesar el mandato. SQL1130N El nuevo proceso DARI
(procedimiento almacenado) no ha
Respuesta del Usuario: Compruebe los podido iniciarse porque ya se ha
caracteres especificados en el ID de red. Vuelva a llegado al número máximo de
someter el mandato con un nombre válido de un procesos DARI que pueden tener
ID de red. lugar al mismo tiempo en el
servidor.
SQL1127N El nombre de la LU remota Explicación: El nuevo proceso DARI
“<nombre>” no es válido. (procedimiento almacenado) no ha podido
Explicación: El nombre de la unidad lógica (LU) iniciarse porque ya se ha llegado al número
remota que está especificado en la estructura de máximo de procesos DARI que pueden tener
protocolo APPN para el mandato Catalog no es lugar al mismo tiempo en el servidor.
válido. El nombre de la LU remota el es nombre Respuesta del Usuario: Aumente el número
de la unidad lógica de SNA, y debe contener máximo de procesos DARI en el parámetro de
entre 1 y 8 caracteres. Los caracteres válidos son configuración maxdari. Consulte el parámetro de
de la A a la Z (minúsculas y mayúsculas), el 0 al configuración de la base de datos maxdari para
9, y los símbolos #, @ y $. El primer carácter obtener más información.
debe ser alfabético o un carácter especial: #, @ o
$. El sistema cambia los caracteres que están en sqlcode: -1130
minúsculas y los pone en mayúsculas. sqlstate: 42724
No se puede procesar el mandato.
Respuesta del Usuario: Compruebe los SQL1131N El proceso DARI (procedimiento
caracteres especificados en el nombre de la LU almacenado) ha concluido de
remota. Vuelva a someter el mandato con el forma anómala.
nombre de una LU remota. Explicación: La razón puede ser una de las
siguientes:
SQL1129N El nuevo proceso DARI v Había un error de codificación (p.e., violación
(procedimiento almacenado) no ha de la segmentación) dentro de la rutina DARI.
podido iniciarse porque no hay v El proceso DARI se ha visto interrumpido por
suficientes recursos para crear un otro proceso mediante el uso de una señal.
nuevo proceso.
Respuesta del Usuario: Vuelva a iniciar la
Explicación: El nuevo proceso DARI solicitud DARI si:
(procedimiento almacenado) no ha podido

Capítulo 2. Mensajes SQL 201


v El procedimiento DARI no presenta errores de
SQL1134N Para el tipo CLIENT de
programación.
autentificación de bases de datos,
v Ningún usuario está enviando al proceso el mandato no está permitido
DARI una señal de terminación. dentro del ámbito de DARI
sqlcode: -1131 (procedimiento almacenado).
Explicación: Cuando el tipo de autentificación
sqlstate: 38503 de bases de datos es CLIENT, no se permite
ejecutar todos los mandatos SYSADM dentro de
DARI (procedimiento almacenado).
SQL1132N El mandato no está permitido para
ejecutar en DARI (procedimiento El procedimiento almacenado no devuelve
almacenado). ningún dato.
Explicación: Se ha emitido un mandato ilegal Al procedimiento DARI no se le permite
dentro del ámbito de DARI (procedimiento continuar.
almacenado).
Respuesta del Usuario: Elimine el mandato no
Al procedimiento DARI no se le permite permitido en el procedimiento DARI y vuelva a
continuar. intentarlo.
Respuesta del Usuario: Elimine el mandato no sqlcode: -1134
permitido en el procedimiento DARI y vuelva a
intentarlo. sqlstate: 38003

sqlcode: -1132
SQL1135N Se ha especificado un valor
sqlstate: 38003 incorrecto para el número de
segmentos al crear una base de
datos.
SQL1133N Una dirección de puntero que hay
en una variable SQL ( índice = Explicación: El valor que se ha especificado
“<n>” ) del SQLDA de salida se para el número de segmentos quedaba fuera del
ha modificado dentro de la rango permitido. El rango válido es de 1 a 256.
función DARI (procedimiento
almacenado). Respuesta del Usuario: Vuelva a especificar el
número de segmentos y trate de volver a crear la
Explicación: El puntero “sqlind” o “sqldata” base de datos.
perteneciente a la variable SQL de SQLDA de
salida se ha alterado dentro de la función DARI
preparada por el usuario. SQL1136N Se ha especificado un valor
incorrecto para el tamaño por
El procedimiento almacenado no devuelve omisión del espacio de tabla
ningún dato. (dft_extentsize) al crear una base
de datos.
Respuesta del Usuario: Corrija la utilización de
la variable SQL indicada dentro del SQLDA de Explicación: El valor que se ha especificado
salida para que las direcciones de puntero no se para el tamaño por omisión del espacio de tabla
modifiquen en la rutina de la función DARI (dft_extentsize) estaba fuera del rango permitido.
(procedimiento almacenado). El rango válido es de 2 a 256.
sqlcode: -1133 Respuesta del Usuario: Corrija el tamaño del
espacio de tabla y vuelva a intentarlo.
sqlstate: 39502

202 Consulta de mensajes, Volumen 2


sqlcode: +1138
SQL1137W El gestor de bases de datos no ha
podido eliminar la vía de acceso sqlstate: 01550
de la base de datos o algún
contenedor cuando se descartaba
la base de datos “<aliasdb>”. Es SQL1139N El tamaño total del espacio de
necesario efectuar una limpieza. tabla es demasiado grande.

Explicación: No se ha podido acceder a la lista Explicación: El tamaño del espacio de tabla


de contenedores o se ha producido alguna actual es demasiado [Link] tamaño de un
anomalía al intentar eliminar los contenedores o espacio de tabla REGULAR o USER
el directorio de la base de datos. TEMPORARY se limita a 0xFFFFFF (16777215)
páginas mientras que el tamaño de un espacio de
Respuesta del Usuario: Los contenedores tabla SYSTEMA TEMPORARY o LONG se limita
gestionados por el sistema (directorios) y los a 2 tera bytes (2 TB).
contenedores de archivo gestionados por la base
de datos se pueden eliminar manualmente Respuesta del Usuario: Compruebe los detalles
mediante los mandatos del sistema operativo. en el archivo de anotaciones cronológicas de
Para liberar contenedores de dispositivo, póngase diagnóstico [Link]. Reduzca el tamaño del
en contacto con el representante del servicio IBM. espacio de tabla y corrija la sentencia de SQL.

Si el directorio de anotaciones cronológicas se sqlcode: -1139


había cambiado a través del parámetro de sqlstate: 54047
configuración de la Nueva vía de acceso de
anotaciones cronológicas, desmonte
manualmente el sistema de archivos del SQL1140W El coste estimado de procesador
directorio de anotaciones cronológicas y elimine de ″<cantidad-estimada1>″
los directorios tanto de la base de datos como de segundos de procesador
anotaciones cronológicas. (″<cantidad-estimada2>″ unidades
de servicio) en la categoría de
coste ″<categoría-coste1>″
SQL1138W El índice exclusivo “<nombre>” se sobrepasa el umbral de aviso del
ha migrado para poder realizar la límite del recurso de
comprobación diferida de ″<cantidad-límite>″ unidades de
exclusividad. No se ha creado el servicio.
índice nuevo.
Explicación: La preparación de una sentencia de
Explicación: Se ha tratado de realizar una SQL dinámica INSERT, UPDATE, DELETE o
operación CREATE INDEX en un índice SELECT ha dado como resultado la estimación
existente. Como el índice aún no se había de un coste que ha sobrepasado el valor de
migrado para poder realizar la comprobación umbral de aviso indicado en la tabla de
diferida de exclusividad, la migración se ha especificación de límites de recursos (RLST).
producido.
También se emite este aviso si el valor de
El formato migrado del índice exclusivo categoría de coste de DB2 es ″B″ y la acción por
permitirá realizar varias actualizaciones de las omisión especificada en la columna
filas para comprobar la exclusividad de las RLF_CATEGORY_B de la RLST es de emitir un
columnas del índice al final de la sentencia de aviso.
actualización y no en el momento de actualizarse
cada fila. cantidad_estimada1
La estimación (en segundos de
Respuesta del Usuario: No es necesaria procesador) del coste que habrá si la
ninguna acción. sentencia preparada INSERT, UPDATE,
DELETE o SELECT se ejecuta.

Capítulo 2. Mensajes SQL 203


cantidad_estimada2 sqlstate: 01616
La estimación (en unidades de servicio)
del coste que habrá si la sentencia
SQL1145N No se soporta la sentencia
preparada INSERT, UPDATE, DELETE o
PREPARE cuando se usa un
SELECT se ejecuta.
concentrador de pasarela. Código
categoría-coste de razón : “<código-razón>”.
La categoría de coste de DB2 para esta
Explicación: La sentencia ha fallado debido a
sentencia de SQL. Los valores posibles
una de las razones siguientes, basadas en
son A o B.
“<código-razón>”.
cantidad-límite
1 Cuando el dispositivo del concentrador
El umbral de aviso (en unidades de
de la pasarela está en ON, no se da
servicio) especificado en la columna
soporte a sentencias preparadas
RLFASUWARN de la RLST.
dinámicamente de SQL incorporado. En
esta configuración, sólo se da soporte a
La preparación de la sentencia dinámica INSERT,
las sentencias preparadas
UPDATE, DELETE o SELECT ha sido
dinámicamente si el cliente es una
satisfactoria. Puede que se emita un SQLCODE
aplicación CLI.
-905 si la ejecución de la sentencia preparada
sobrepasa el valor de ASUTIME especificado en 2 Cuando el dispositivo del concentrador
la RLST. de la pasarela está en ON, no se da
soporte a sentencias SET preparadas
Respuesta del Usuario: Asegúrese de que haya
dinámicamente.
una lógica en la aplicación que se encargue del
aviso de manera que se permita o se impida la Respuesta del Usuario: Basándose en el código
ejecución de la sentencia. Si se ha devuelto este de razón, realice las acciones siguientes:
SQLCODE porque el valor de categoría de coste
1 Modifique la aplicación para usar CLI
es ″B″, puede ser que la sentencia utilice
en sentencias de SQL dinámicas o
marcadores de parámetro o que no estén
modifique la aplicación para usar SQL
disponibles determinadas estadísticas para las
estáticas.
tablas y columnas referidas. Asegúrese de que el
administrador haya ejecutado el programa de 2 Use EXECUTE IMMEDIATE para
utilidad RUNSTATS para las tablas referidas. sentencias SET.
También es posible que se invoquen UDF cuando
se ejecute la sentencia, o, en el caso de las sqlcode: -1145
sentencias INSERT, UPDATE o DELETE, que se
definan activadores en la tabla modificada. sqlstate: 560AF
Compruebe si esta sentencia se encuentra en la
DSN_STATEMNT_TABLE o en el registro IFCID
22 con el fin de averiguar las razones por las que SQL1150N La dirección del parámetro del ID
dicha sentencia de SQL se ha colocado en la de usuario no es correcta.
categoría de coste ″B″. Explicación: El programa de aplicación ha
Si el aviso es debido a una sentencia de SQL que utilizando una dirección que no es válida para
va a causar un excesivo consumo del recurso del este parámetro. La dirección apunta a un
procesador, intente volver a escribirla para que almacenamiento intermedio no asignado o la
pueda rendir de una manera más eficiente. Otra serie de caracteres del almacenamiento
opción es solicitar al administrador el aumento intermedio no termina con un nulo.
del valor de umbral de aviso de la RLST. No se puede procesar el mandato.
sqlcode: +1140 Respuesta del Usuario: Asegúrese de que en el

204 Consulta de mensajes, Volumen 2


programa de aplicación se utilice una dirección tabla a fin de poder utilizar nombres de
correcta y de que la serie de entrada termine con identificadores largos.
un nulo.
sqlcode: -1163
sqlstate: 42997
SQL1160N No se ha cargado el TSR
″<protocolo red>″ de DOS:
SQL1164N El SQLDA o variables del sistema
Explicación: El controlador de red TSR
principal, de tipo ″<tipo>″,
(’Terminate and Stay Resident’) para el protocolo
utilizadas en la sentencia de SQL
de comunicaciones especificado no se ha
no son válidas. El código de razón
cargado. Para poder utilizar las comunicaciones
es ″<código-razón>″, variable
de red, es preciso cargar el TSR.
sistema principal/número
Respuesta del Usuario: Asegúrese de que el SQLVAR ″<número-var>″.
TSR para el protocolo de comunicaciones que se
Explicación: Se ha producido un error al
ha especificado se haya cargado de forma
procesar el SQLDA o la(s) variable(s) del sistema
satisfactoria; acto seguido, vuelva a ejecutar la
principal en la sentencia de SQL.
aplicación.
Es posible que la lista de parámetros de llamada,
que crea el precompilador, no sea correcta si el
SQL1163N No se puede habilitar la tabla
programador de la aplicación ha modificado la
para la captura de datos porque el
salida del precompilador, ha utilizado un nombre
nombre de identificador
de variable que empieza por SQL en el programa
“<nombre-ident>” de tipo
de aplicación o ha sobregrabado la lista de
“<tipo-ident>” es demasiado
parámetros de llamada de alguna otra forma.
largo.
Además, si la aplicación ha pasado directamente
Explicación: No se da soporte a la captura de
SQLDA, es posible que no se haya inicializado
datos con determinados tipos de identificadores
correctamente.
que superan longitudes determinadas. Al
procesar el cambio, se ha detectado que el Tipos de variables del sistema principal/SQLDA:
identificador “<nombre-ident>” del tipo
“<tipo-ident>” es demasiado largo. Los tipos de 1 variables del sistema principal de
identificadores y las longitudes máximas entrada o SQLDA
permitidas para la habilitación de captura de 2 variables del sistema principal de salida
datos son los siguientes: o SQLDA
1. columna. Los nombres de columnas no
pueden tener más de 18 bytes para poder En sentencias de SQL con variables del lenguaje
habilitar la captura de datos. principal, utilice el número de variable del
2. tabla. Los nombres de tablas no pueden tener lenguaje principal para contar desde el principio
más de 18 bytes para poder habilitar la de la sentencia (o subsentencia, en el caso de
captura de datos. SQL compuesto) y así localizar la variable del
lenguaje principal no válida. En sentencias que
3. esquema. Los nombres de los esquemas no
utilizan un SQLDA, se utiliza el número de
pueden tener más de 18 bytes para poder
SQLVAR para localizar la SQLVAR no válida. En
habilitar la captura de datos.
un SQLDA de entrada, únicamente cuente las
Respuesta del Usuario: Si se debe habilitar la variables del lenguaje principal de entrada o
captura de datos para esta tabla, asegúrese de SQLVAR, y del mismo modo para las de salida.
que los identificadores no superan los límites Tenga en cuenta que este número está basado en
máximos definidos anteriormente. De lo 1 y es posible que no se pueda aplicar a todos
contrario, inhabilite la captura de datos para la

Capítulo 2. Mensajes SQL 205


los códigos de razón. Los códigos de razón se 10 El puntero SQLDATALEN no es válido
interpretan del modo siguiente: o apunta a un almacenamiento
insuficiente.
1 [Link] es menor que
[Link] 11 Se prevé un número específico de
variables del sistema principal de
2 [Link] no es válido.
entrada/SQLVARS para la sentencia de
3 La longitud especificada en SQL actual.
[Link] o
[Link] no es correcta No se puede procesar la sentencia.
para el tipo de SQL suministrado en
Respuesta del Usuario: Revise el programa de
[Link].
aplicación para detectar si tiene anotado algún
4 Existe un SQLVAR de objeto grande, error. El programador no debería intentar
pero el campo SQLDOUBLED de modificar la salida del precompilador.
[Link] no se ha establecido
sqlcode: -1164
en ’2’.
sqlstate: 07002
5 Se ha suministrado un varchar cuya
longitud actual (desde el campo de
longitud del propio varchar) es mayor SQL1165W No puede asignarse ningún valor
que la longitud máxima. La longitud a una variable del sistema
máxima la determina la declaración (en principal porque el valor no está
el caso de una variable del sistema dentro del rango permitido del
principal) o la definición de tipo de datos de la variable del
[Link] (en el caso de un sistema principal.
SQLDA definido por el usuario).
Explicación: La sentencia FETCH, VALUES o
6 Se pasa un Objeto grande de entrada SELECT de una lista de variables del sistema
cuya longitud actual (en el campo de principal ha fallado porque la variable del
longitud del propio LOB, o tal como sistema principal no es lo suficientemente grande
indica el puntero como para mantener el valor que se ha
[Link]) sea mayor recuperado.
que la longitud máxima. La longitud
máxima la determina la declaración (en La sentencia ha seguido procesándose y ha
el caso de una variable del sistema generado el indicador nulo -2.
principal) o la definición de Respuesta del Usuario: Compruebe que las
[Link] (en el caso de definiciones de tabla sean las actuales y que la
un SQLDA definido por el usuario). variable del sistema principal tenga el tipo de
7 Un objeto grande de caracteres de doble datos correcto. Para ver los rangos de tipos de
byte tiene un valor impar según indica datos SQL, consulte el manual Consulta de SQL.
el puntero [Link], sqlcode: +1165
que siempre es, en términos de bytes,
par para los DBCLOB. sqlstate: 01515

8 El puntero SQLDATA no es válido o


apunta a un almacenamiento SQL1166W Se ha intentado realizar una
insuficiente. división por cero.

9 El puntero SQLIND no es válido o Explicación: El proceso de una expresión


apunta a un almacenamiento aritmética ha dado lugar a una división por cero.
insuficiente. Es posible que se haya emitido este aviso con
una fila distinta a la fila que ha ocasionado el

206 Consulta de mensajes, Volumen 2


aviso. Por ejemplo, esto puede producirse en
SQL1178N El “<tipo-objeto>” federado
expresiones aritméticas que tengan predicados o
llamado “<nombre-objeto>” no
en los casos en los que la consulta se procese
hace referencia a un apodo o a
mediante tablas temporales del sistema. El aviso
una función de tabla OLE DB.
puede volverse a emitir ya que también se
devuelve cuando una variable de indicador nulo Explicación: El objeto de tipo “<tipo-objeto>”
se ha establecido en -2. identificado por el “<nombre-objeto>” se define
mediante el uso de la palabra clave
La sentencia ha seguido procesándose, utilizando
FEDERATED, pero la selección completa en la
el valor nulo como resultado de la expresión de
sentencia no hace referencia a un apodo o a una
división y probablemente devolverá un indicador
función de tabla OLE DB.
nulo de -2.
No se puede procesar la sentencia.
Respuesta del Usuario: Revise la sentencia de
SQL para determinar la causa del problema. Si el Respuesta del Usuario: Elimine la palabra clave
problema depende de los datos, deberá revisar FEDERATED de la sentencia.
los datos procesados cuando se produjo el error.
sqlcode: -1178
sqlcode: +1166
sqlstate: 429BA
sqlstate: 01564
SQL1179W El “<tipo-objeto>” llamado
SQL1167W Se ha producido un “<nombre-objeto>” puede
desbordamiento aritmético u otra necesitar al invocador para tener
excepción aritmética. los privilegios necesarios en los
objetos de fuente de datos.
Explicación: El proceso de una expresión
aritmética ha dado lugar a un desbordamiento, Explicación: El objeto identificado mediante
subdesbordamiento u otro tipo de excepción “<nombre-objeto>” hace referencia a un apodo o
aritmética. Es posible que se haya emitido este a una función de tabla OLE DB donde los datos
aviso con una fila distinta a la fila que ha propiamente dichos existen en una fuente de
ocasionado el aviso. Por ejemplo, esto puede datos. Cuando se accede a los datos de fuente de
producirse en expresiones aritméticas que tengan datos, la correlación de usuario y la
predicados o en los casos en los que la consulta comprobación de la autentificación se basa en el
se procese mediante tablas temporales del usuario que ha iniciado la operación.
sistema. El aviso puede volverse a emitir ya que
Si el “<tipo-objeto>” es SUMMARY TABLE, la
también se devuelve cuando una variable de
operación está renovando los datos de la tabla de
indicador nulo se ha establecido en -2.
resumen. El usuario que ha invocado la sentencia
La sentencia ha seguido procesándose, utilizando REFRESH TABLE o SET INTEGRITY que hace la
el valor nulo como resultado de la expresión de renovación puede que sea necesario para tener
división y probablemente devolverá un indicador los privilegios necesarios para acceder al objeto
nulo de -2. de fuente de datos subyacentes en la fuente de
datos.
Respuesta del Usuario: Revise la sentencia de
SQL para determinar la causa del problema. Si el Si el “<tipo-objeto>” es VIEW, cualquier usuario
problema depende de los datos, deberá revisar de la vista puede ser necesario para tener los
los datos procesados cuando se produjo el error. privilegios necesarios para acceder al objeto de
Consulte el manual Consulta de SQL para ver fuente de datos de la fuente de datos.
rangos válidos para los tipos de datos.
En cualquier caso, puede que se produzca un
sqlcode: +1167 error de autentificación al intentar acceder al
objeto de fuente de datos.
sqlstate: 01519

Capítulo 2. Mensajes SQL 207


Respuesta del Usuario: Puede que no sea pasado al método es distinto del
suficiente otorgar los privilegios para la tabla de número de argumentos que ha aceptado
resumen o vista para dar soporte a operaciones el método.
que acceden a los datos desde la fuente de datos.
Serie de clase no válida (0x800401F3):
Puede que sea necesario otorgar accesos de
Los ProgID o CLSID especificados no
usuario en la fuente de datos para los objetos de
son válidos.
fuente de datos subyacentes de la tabla de
resumen o vista. Clase no registrada (0x80040154):
No se ha registrado correctamente
sqlcode: +1179
CLSID.
sqlstate: 01639
Aplicación no encontrada (0x800401F5):
EXE de servidor local no encontrado.
SQL1180N La rutina ″<nombre-rutina>″
No se ha encontrado DLL para clase
(nombre específico
(0x800401F8):
″<nombre-específico>″) ha
No se ha encontrado DLL de proceso
ocasionado un error OLE.
interno.
HRESULT=″<resulth>″. Texto de
diagnóstico: ″<texto del Ha fallado la ejecución del servidor
mensaje>″. (0x80080005):
Ha fallado la creación del objeto OLE.
Explicación: DB2 ha recibido un código de error
OLE al intentar comunicarse con el servidor de Respuesta del Usuario: Consulte el manual
automatización OLE de la función definida por OLE Programmer’s Reference Guide para obtener
usuario (UDF) o con el procedimiento toda la documentación necesaria, incluido el
almacenado ″<nombre-rutina>″ (nombre significado de la terminología especial.
específico ″<nombre-específico>″). HRESULT
″<resulth>″ es el código de error de OLE y sqlcode: -1180
″<texto del mensaje>″ es el mensaje de error sqlstate: 42724
recuperado.
La siguiente es una lista parcial de mensajes de SQL1181N La rutina ″<nombre-rutina>″
error, HRESULTS y las causas posibles. Es (nombre específico
posible que OLE cambie el texto del mensaje del ″<nombre-específico>″) ha
error y que añada nuevos códigos de error activado una excepción con la
Interfaz desconocida (0x80020001): descripción ″<texto del mensaje>″.
El objeto OLE especificado no soporta la Explicación: La función definida por el usuario
interfaz IDispatch. (UDF) o procedimiento almacenado
Discrepancia de tipo (0x80020005): ″<nombre-rutina>″ (nombre específico
Uno o más tipos de datos SQL no ″<nombre-específico>″) ha activado una
coinciden con los tipos de datos de los excepción. El texto del mensaje muestra la
argumentos de método. descripción de contexto de la excepción que ha
devuelto la rutina.
Nombre desconocido (0x80020006):
No se ha encontrado el nombre de Respuesta del Usuario: El usuario deberá
método especificado para el objeto OLE comprender el significado de la excepción.
especificado. Póngase en contacto con el autor de la rutina.

Número de parámetros no válido (0x8002000E): sqlcode: -1181


El número de argumentos que se ha sqlstate: 38501

208 Consulta de mensajes, Volumen 2


SQL1182N La función definida por el usuario SQL1183N La función definida por el usuario
“<nombre-función>” no ha “<nombre-función>” ha recibido
podido inicializar el objeto de un error de OLE DB procedente
fuente de datos del proveedor del proveedor OLE DB
OLE DB especificado. especificado.
HRESULT=“<resulth>”. Texto de HRESULT=“<resulth>”. Texto de
diagnóstico: “<texto-mensaje>”. diagnóstico: “<texto-mensaje>”.
Explicación: No se ha podido inicializar el Explicación: El proveedor OLE DB especificado
objeto de fuente de datos OLE DB del proveedor ha devuelto un código de error OLE DB.
OLE DB especificado. “<resulth>” es el código “<resulth>” es el código de error OLE DB
de error OLE DB devuelto y “<texto-mensaje>” devuelto y “<texto-mensaje>” es el mensaje de
es el mensaje de error recuperado. error recuperado.
A continuación se muestra una lista parcial de A continuación se muestra una lista parcial de
HRESULTS y causas posibles. HRESULTS y causas posibles.
0x80040154 0x80040E14
Clase (proveedor OLE DB) no El mandato contenía uno o más errores,
registrada. por un error de sintaxis del texto del
mandato de paso a través.
0x80040E73
La serie de inicialización especificada no 0x80040E21
cumple con la especificación. Se han producido errores; por ejemplo,
el ID de columna suministrado no es
0x80004005
válido (DB_INVALIDCOLUMN).
Error no especificado (durante la
inicialización). 0x80040E37
La tabla especificada no existe.
Respuesta del Usuario: Compruebe que el
proveedor OLE DB esté correctamente registrado Respuesta del Usuario: Consulte el manual
y que se han inicializado correctamente los Microsoft OLE DB Programmer’s Reference and
parámetros de la serie de conexión. Consulte el Data Access SDK para obtener la documentación
manual Microsoft OLE DB Programmer’s completa de los códigos HRESULT.
Reference and Data Access SDK para obtener la
sqlcode: -1183
documentación completa de los códigos
HRESULT y la sintaxis de la serie de conexión de sqlstate: 38506
la API de enlace de datos de los componentes
centrales de OLE DB.
SQL1184N No se han creado una o más
sqlcode: -1182 tablas EXPLAIN utilizando la
versión actual de DB2.
sqlstate: 38506
Explicación: EXPLAIN no podrá insertar en
estas tablas hasta que se migren mediante
DB2EXMIG o se descarten y se vuelvan a crear
con el script [Link] CLP para la versión
actual de DB2.
Respuesta del Usuario: Migre estas tablas
mediante DB2EXMIG o elimínelas y vuélvalas a
crear con el script [Link] CLP para la
versión actual de DB2. Vuelva a emitir el
mandato.

Capítulo 2. Mensajes SQL 209


sqlcode: -1184 especificar FEDERATED YES para enlazar el
paquete.
sqlstate: 55002
Si el “<valor>” es YES, ninguna sentencia de
SQL estática en el paquete incluye una referencia
SQL1185N El “<valor>” FEDERATED no se
a un apodo o a una función de tabla OLE DB o a
usa correctamente al enlazar el
un procedimiento OLE DB. Es este caso, se debe
paquete.
especificar FEDERATED NO para enlazar el
Explicación: Si el “<valor>” es NO, como paquete.
mínimo, una sentencia de SQL estática en el
No se ha creado el paquete.
paquete incluye una referencia a un apodo o a
una función de tabla OLE DB o a un Respuesta del Usuario: Especifique la opción
procedimiento OLE DB. Es este caso, se debe FEDERATED correcta.

SQL1200 - SQL1299
SQLE_DATABASE
SQL1200N El parámetro del objeto no es
Han de recopilarse el estado del sistema
válido.
y el estado de la base de datos.
Explicación: El valor especificado para el
SQLE_ALL
parámetro del objeto en la llamada a la función
Han de recopilarse el estado del sistema,
COLLECT DATABASE STATUS no es válido. Los
el estado de la base de datos y el estado
valores válidos son:
del usuario.
SQLE_DATABASE
Se ha de recopilar el estado para una No se puede procesar el mandato.
sola base de datos.
Respuesta del Usuario: Corrija el parámetro del
SQLE_DRIVE estado y vuelva a emitir la llamada a la función
Se ha de recopilar el estado para todas COLLECT DATABASE STATUS.
las bases de datos locales en una sola
vía de acceso.
SQL1202N El estado no se ha recopilado.
SQLE_LOCAL
Se ha de recopilar el estado para todas Explicación: El valor especificado para el
las bases de datos locales. parámetro handle de las llamadas de función GET
NEXT DATABASE STATUS BLOCK o FREE
DATABASE STATUS RESOURCES no es válido.
No se puede procesar el mandato.
El manejador debe ser el valor que la llamada de
Respuesta del Usuario: Corrija el parámetro del función COLLECT DATABASE STATUS
objeto y vuelva a someter la llamada a la función devuelva como valor de función positivo.
COLLECT DATABASE STATUS.
Esta es la segunda llamada de COLLECT
DATABASE STATUS realizada desde el proceso.
SQL1201N El parámetro del estado no es La primera llamada de COLLECT DATABASE
válido. STATUS se interrumpe y el manejador ya no
puede volver a utilizarse.
Explicación: El valor especificado para el
parámetro del estado en la llamada a la función No se puede procesar el mandato.
COLLECT DATABASE STATUS no es válido. Los
Respuesta del Usuario: Corrija el parámetro
valores válidos son:
handle y vuelva a emitir la llamada a la función
SQLE_SYSTEM COLLECT DATABASE STATUS.
Ha de recopilarse el estado del sistema.

210 Consulta de mensajes, Volumen 2


SQL1203N La base de datos no tiene usuarios SQL1205N La página de códigos “<página de
conectados. códigos>” y/o código de país
“<país>” que se ha especificado
Explicación: Se ha efectuado una petición para
no son válidos.
conocer el estado de los usuarios de una base de
datos, pero no hay ningún usuario conectado a la Explicación: Esta versión de DB2 no
base de datos. proporciona soporte para la página de códigos ni
para el código del país, según se especifica en el
No se puede procesar el mandato.
mandato Create Database.
Respuesta del Usuario: Verifique el nombre de
No se puede procesar el mandato.
la base de datos y el estado de conexión. Vuelva
a someter el mandato con una base de datos que Respuesta del Usuario: Consulte el mandato
se esté utilizando actualmente. Create Database en la publicación Consulta de
mandatos para obtener información sobre las
páginas de códigos y las parejas de códigos de
SQL1204N La página de códigos “<página
país válidos a los que DB2/2 proporciona
códigos>” y/o código del país
soporte.
“<código país>” no se soporta en
la versión instalada del gestor de
bases de datos. SQL1206N PRUNE LOGFILE no se soporta
en la configuración de esta base
Explicación: Esta versión del gestor de bases de
de datos.
datos no proporciona soporte ni para la página
de códigos ni para el código de país. Explicación: La petición PRUNE LOGFILE no
se soporta si:
No se puede procesar el mandato.
1. LOGRETAIN y USEREXIT están establecidos
Elija una página de códigos activa y un código en NO o
de país que estén soportados por esta versión del
2. la vía de acceso del archivo de anotaciones
gestor de bases de datos.
cronológicas activo está establecida en un
Usuarios del sistema federado: Si es preciso, aisle dispositivo sin procesar.
el problema en la fuente de datos que rechaza la
Respuesta del Usuario: No emita el mandato
petición (consulte la publicación Problem
PRUNE LOGFILE para esta base de datos.
Determination Guide para saber qué
procedimientos hay que seguir a fin de
identificar la fuente de datos anómala) y elija SQL1207N No es posible encontrar el archivo
una página de códigos activa y un código de de configuración “<nombre>” del
país que estén soportados por el servidor Communication Manager.
federado y de fuente de datos.
Explicación: El nombre del archivo de
Respuesta del Usuario: Salga del programa configuración del Communication Manager que
actual y vuelva al sistema operativo. se ha especificado en el mandato CATALOG
NODE no se encuentra en la vía de acceso
sqlcode: -1204
especificada o en el directorio CMLIB de la
sqlstate: 22522 unidad por omisión.
No se puede procesar el mandato.
Respuesta del Usuario: Vuelva a someter el
mandato con el nombre y vía de acceso correctos
del archivo de configuración.

Capítulo 2. Mensajes SQL 211


nombre de sistema es válido y vuelva a someter
SQL1209W El nombre de la lu asociada
el mandato.
“<nombre>” especificado en la
función CATALOG NODE no
existe. Se ha creado uno. SQL1212N El nombre de instancia
″<nombre>″ no es válido.
Explicación: El nombre de la unidad lógica
asociada que se ha especificado en la función Explicación: El nombre de la instancia
CATALOG NODE no existe en el archivo de especificado para el mandato Catalog no es
configuración del Communication Manager, que válido. Dicho nombre puede estar compuesto a
se encuentra en el directorio CMLIB de la unidad lo sumo por 8 caracteres.
por omisión.
No se puede procesar el mandato.
Se ha creado un perfil del nombre especificado
de la unidad lógica. Respuesta del Usuario: Compruebe que el
nombre de la instancia es válido y vuelva a
Respuesta del Usuario: No es necesaria someter el mandato.
ninguna acción.

SQL1213N El nombre de la LU de cambio de


SQL1210W Se han devuelto valores por contraseña “<nombre>” no es
omisión para uno o varios válido.
parámetros del archivo de
configuración del Peticionario Explicación: El nombre de la unidad lógica (LU)
Windows/Peticionario DOS. para cambio de contraseña especificado en la
estructura de protocolo APPN para el mandato
Explicación: Se han devuelto valores por CATALOG no es válido.
omisión para uno o más parámetros del archivo
de configuración del Peticionario El nombre de la LU de cambio de contraseña es
DOS/Peticionario WINDOWS. Es posible que el el nombre de la LU de SNA remota y ha de tener
parámetro no esté definido en el archivo de entre 1 y 8 caracteres. Los caracteres válidos son
configuración del Peticionario DOS/Peticionario de la A a la Z (minúsculas y mayúsculas), el 0 al
WINDOWS o que el archivo de configuración no 9, y los símbolos #, @ y $. El primer carácter ha
se haya podido abrir o que se haya producido un de ser alfabético o un carácter especial: #, @ o $.
error al leer el archivo. El sistema cambia los caracteres que están en
minúsculas y los pone en mayúsculas.
Respuesta del Usuario: Asegúrese de que el
archivo de configuración del Peticionario de No se puede procesar el mandato.
Windows/Peticionario de DOS exista en la vía Respuesta del Usuario: Compruebe los
de acceso adecuada y que los parámetros estén caracteres especificados en el nombre de la LU
definidos explícitamente. de cambio de contraseña.
Vuelva a emitir el mandato con un nombre de la
SQL1211N El nombre de sistema ″<nombre>″ LU de cambio de contraseña válido.
no es válido.
Explicación: El nombre del sistema que se ha SQL1214N El nombre de programa de
especificado en la estructura del protocolo NPIPE transacción “<nombre>” no es
para el mandato Catalog no es válido. Dicho válido.
nombre puede estar compuesto a lo sumo por 15
caracteres. Explicación: El nombre de programa de
transacción (TP) especificado en la estructura de
No se puede procesar el mandato. protocolo APPN para el mandato CATALOG no
Respuesta del Usuario: Compruebe que el es válido.

212 Consulta de mensajes, Volumen 2


El nombre TP es el nombre TP de la aplicación sqlstate: 56031
SNA y ha de contener entre 1 y 64 caracteres.
Los caracteres válidos son de la A a la Z
SQL1217N La base de datos de destino no da
(minúsculas y mayúsculas), el 0 al 9, y los
soporte al tipo de datos REAL.
símbolos #, @ y $. El primer carácter ha de ser
alfabético o un carácter especial: #, @ o $. Explicación: Hay una operación de SQL que
utiliza el tipo de datos REAL (número de coma
No se puede procesar el mandato.
flotante de precisión simple) como variable de
Respuesta del Usuario: Compruebe los entrada o de salida. El tipo de datos REAL no se
caracteres especificados en el nombre de TP. soporta en la base de datos de destino para esta
petición.
Vuelva a someter el mandato con un nombre de
TP. La sentencia no ha podido procesarse.
Respuesta del Usuario: Sustituya la declaración
SQL1215N La dirección del adaptador de la de todas aquellas variables del sistema principal
LAN “<dirección>” no es válida. que se correspondan con el tipo de datos REAL
del SQL por una declaración que se corresponda
Explicación: La dirección del adaptador de la
con un tipo de datos DOUBLE del SQL en la
LAN especificada en la estructura de protocolo
aplicación.
APPN para el mandato CATALOG no es válida.
sqlcode: -1217
La dirección del adaptador de la LAN es la
dirección del adaptador de la LAN SNA y ha de sqlstate: 56099
ser un número con dígitos 12 hexadecimales.
No se puede procesar el mandato. SQL1218N En la actualidad no hay páginas
disponibles en la agrupación de
Respuesta del Usuario: Compruebe la dirección
almacenamientos intermedios
del adaptador de la LAN.
″<núm-
Vuelva a someter el mandato con una dirección agrupaciónalmaceninterm>″.
de adaptador de la LAN válida.
Explicación: Actualmente se están utilizando
todas las páginas de la agrupación de
SQL1216N Esta base de datos no da soporte a almacenamientos intermedios. Ha fallado una
los datos de gráficos ni a las petición de utilizar otra página.
funciones gráficas.
No se puede procesar la sentencia.
Explicación: La página de códigos de la base de
Respuesta del Usuario: La agrupación de
datos no da soporte a los datos gráficos. Los
almacenamientos intermedios no es lo
tipos de datos GRAPHIC, VARGRAPHIC y
suficientemente grande para facilitar páginas a
LONG VARGRAPHIC no son válidos para esta
todas las hebras o procesos de la base de datos
base de datos. Las funciones GRAPHIC literal y
en este momento. La agrupación de
VARGRAPHIC escalar no son válidas en esta
almacenamientos intermedios es demasiado
base de datos.
pequeña o hay demasiadas hebras o procesos
No se puede procesar la sentencia. activos.

Usuarios del sistema federado: también la fuente Es posible que la sentencia resulte satisfactoria si
de datos puede detectar esta situación. se ejecuta de nuevo. Si este error se produce con
frecuencia, algunas de las siguientes acciones o
Respuesta del Usuario: Vuelva a someter el todas ellas pueden evitar más anomalías:
mandato con tipos de datos válidos.
1. aumentar el tamaño de la agrupación de
sqlcode: -1216 almacenamientos intermedios

Capítulo 2. Mensajes SQL 213


2. disminuir el número máximo de agentes y/o recursos de memoria que pueden causar este
conexiones de agentes de la base de datos error son:
3. disminuir el grado máximo de paralelismo v El número de identificadores de memoria
4. disminuir el tamaño de búsqueda y carga compartida asignados en el sistema.
previa para los espacios de tabla que están en v La cantidad de espacio de paginación o
esta agrupación de almacenamientos intercambio que hay disponible en el sistema.
intermedios v La cantidad de memoria física disponible en el
5. mover algunos espacios de tablas a otras sistema.
agrupaciones de almacenamientos
Respuesta del Usuario: Realice una o más de
intermedios.
las acciones siguientes:
sqlcode: -1218 v Asegúrese de que se dispone de suficientes
recursos del sistema para satisfacer los
sqlstate: 57011 requisitos del gestor de bases de datos, así
como los de los programas que se ejecutan en
SQL1219N La solicitud ha fallado porque no el sistema.
se ha podido asignar la memoria v Reduzca el requisito de memoria del gestor de
virtual privada. bases de datos para este conjunto de memoria,
reduciendo para ello los parámetros de
Explicación: La sesión no ha podido asignar configuración del gestor de bases de datos que
suficiente memoria virtual privada para procesar puedan afectarlo. Éstos son: maxagents, maxdari
la solicitud. Puede ser resultado de asignaciones y numdb.
de memoria compartida realizadas en otros
procesos (no relacionados). v Cuando sea necesario, detenga otros
programas que utilicen el sistema.
Respuesta del Usuario: El problema puede
corregirse:
SQL1221N La pila de la Capa de Soporte de
v En OS/2, aumentando el parámetro de Aplicaciones no puede asignarse.
configuración min_priv_mem. De esta manera,
se reservará más memoria virtual privada al Explicación: No se puede asignar la pila de la
iniciar la instancia. Capa de Soporte de Aplicaciones. La causa de
v Deteniendo otras aplicaciones que se ejecutan este error puede ser que no haya suficientes
en la máquina, especialmente aquellas que recursos de memoria, ya sea para el gestor de
utilizan gran cantidad de memoria compartida. bases de datos o para el entorno donde tienen
lugar las operaciones. Los recursos de memoria
sqlcode: -1219 que pueden causar este error son:
v El número de identificadores de memoria
sqlstate: 57011 compartida asignados en el sistema.
v La cantidad de espacio de paginación o
SQL1220N El conjunto de memoria intercambio que hay disponible en el sistema.
compartida del gestor de bases de v La cantidad de memoria física disponible en el
datos no se ha podido asignar. sistema.
Explicación: El gestor de bases de datos no ha Respuesta del Usuario: Realice una o más de
podido asignar su conjunto de memoria las acciones siguientes:
compartida. La causa de este error puede radicar
v Asegúrese de que se dispone de suficientes
en que no hay suficientes recursos de memoria,
recursos del sistema para satisfacer los
ya sea para el gestor de bases de datos o para el
entorno en que la operación se lleva a cabo. Los

214 Consulta de mensajes, Volumen 2


requisitos del gestor de bases de datos, así
SQL1224N No se ha podido iniciar un agente
como los de los programas que se ejecutan en
de la base de datos para atender
el sistema.
una solicitud o bien se ha
v Reduzca el parámetro de configuración interrumpido como resultado de
aslheapsz. un mandato shutdown (concluir) o
v Cuando sea necesario, detenga otros force (forzar) de la base de datos.
programas que utilicen el sistema.
Explicación: Es posible que el mensaje se deba a
sqlcode: -1221 alguno de los casos siguientes.
v El gestor de bases de datos no se ha iniciado
sqlstate: 57011 en el servidor de la base de datos.
v El gestor de bases de datos se ha detenido.
SQL1222N En la pila de la Capa de Soporte v El gestor de bases de datos ya ha asignado el
de Aplicaciones no hay espacio número máximo de agentes.
suficiente para procesar la v El administrador del sistema ha forzado la
solicitud. desconexión del agente de la base de datos.
Explicación: Se ha utilizado toda la memoria v El agente de la base de datos se ha
disponible en la pila de la Capa de Soporte de interrumpido a causa de la terminación
Aplicaciones. anormal de un proceso clave del gestor de
bases de datos.
Respuesta del Usuario: Aumente el parámetro
de configuración aslheapsz. v La aplicación utiliza varios contextos con el
protocolo local. En este caso, el número de
sqlcode: -1222 conexiones se ve limitado por el número de
sqlstate: 57011 segmentos de memoria compartida con los que
puede conectarse un solo proceso. Por ejemplo,
en AIX, el límite es de diez segmentos de
SQL1223N Un agente no ha podido iniciarse memoria compartida para cada proceso.
para dar servicio a esta solicitud.
Los casos adicionales del servidor federado son:
Explicación: La petición ha fallado porque si no
v Se ha sobrepasado el número máximo de
se sobrepasaría el límite del parámetro de
procesos por usuario (maxuproc en AIX) a
configuración maxagents.
nivel del sistema operativo.
Respuesta del Usuario: Aumente el parámetro v En el entorno cliente/servidor que utiliza el
de configuración maxagents y/o reduzca el protocolo TCP/IP, el número de puerto
número de usuarios que utilizan la base de asignado al nombre de servicio de TCP/IP en
datos. el cliente no es el mismo que el número de
sqlcode: -1223 puerto en el servidor.

sqlstate: 57019 Esta situación puede detectarla el servidor


federado o la fuente de datos.
Respuesta del Usuario: Vuelva a emitir la
solicitud de la base de datos. Si la conexión no se
puede establecer, asegúrese de que el gestor de
bases de datos se haya iniciado
satisfactoriamente. Asimismo, asegúrese de que
el parámetro de configuración maxagents del
gestor de bases de datos está configurado
correctamente.

Capítulo 2. Mensajes SQL 215


Los Usuarios del sistema federado también
SQL1225N La petición ha fallado porque el
deberían:
sistema operativo ha llegado al
v Aislar el problema en la fuente de datos que límite de procesos o hebras, o
rechaza la petición (consulte la publicación bien al límite del espacio de
Problem Determination Guide para saber qué intercambio.
procedimientos hay que seguir a fin de
identificar la fuente de datos anómala) y Explicación: El sistema operativo ha llegado al
asegurarse, por un lado, de que el subsistema límite de procesos o hebras, o bien al límite del
de comunicaciones esté activo y, por otro, de espacio de intercambio. En sistemas UNIX, esto
que los procesos tanto del gestor de bases de puede indicar que el valor de ’maxuproc’ es
datos como del servidor de protocolos de demasiado bajo. En sistemas OS/2, esto puede
comunicaciones necesarios se hayan iniciado indicar que el valor de THREADS [Link]
en el servidor de bases de datos. es demasiado bajo.
v En sistemas operativos AIX, compruebe el Respuesta del Usuario: Aumente el límite al
valor de maxuproc y si es preciso, cámbielo. que se ha llegado (o solicite al administrador del
maxuproc restringe el número de procesos que sistema que lo haga por usted). En sistemas
pueden ejecutarse bajo un servidor federado basados en UNIX, el límite de maxuproc se
en concreto. El valor por omisión es 40. puede cambiar con el mandato chdev.
Puede comprobar el valor actual de maxuproc sqlcode: -1225
con el mandato:
sqlstate: 57049
.
lsattr -E -l sys0
SQL1226N Ya se han iniciado el número
Para ver el número de procesos que se están máximo de agentes coordinadores.
ejecutando actualmente bajo un servidor
federado en concreto, utilice el mandato: Explicación: El número de agentes
coordinadores que se han iniciado coincide ya
ps -ef | grep instdj1 | wc -l con el valor máximo definido en el archivo de
configuración del sistema.
donde “instdj1” es el nombre de instancia del
servidor federado. No se puede procesar la sentencia.
Respuesta del Usuario: Espere a que otras
Para cambiar maxuproc, utilice el mandato: aplicaciones se desconecten de la base de datos.
chdev -l sys0 -a maxuproc='nn' Si es necesario ejecutar a la vez más aplicaciones,
aumente el valor de max_coordagents. El nuevo
donde nn es el nuevo valor entero de valor será efectivo una vez se haya vuelto a
maxuproc. iniciar satisfactoriamente el gestor de bases de
datos.
Si la aplicación utiliza varios contextos con el
protocolo local, reduzca el número de conexiones sqlcode: -1226
de la aplicación o bien cambie de protocolo (por
sqlstate: 57030
ejemplo, TCP/IP). Para usuarios de AIX versión
4.2.1 o posterior, la variable de entorno EXTSHM
puede activarse (ON) para aumentar el número
de segmentos de memoria compartida a los que
se puede adjuntar un único proceso.

sqlcode: -1224

sqlstate: 55032

216 Consulta de mensajes, Volumen 2


deben ser menores que el valor de
SQL1227N La estadística del catálogo
entero máximo (MAXINT =
″<valor>″ de la columna
2147483647).
″<columna>″ está fuera del rango
permitido para la columna de v Siempre debe haber un valor
destino, tiene un formato no PAGE_FETCH_PAIRS válido si
válido o no es coherente con CLUSTERFACTOR es > 0.
relación a otra estadísticas. Código v Deberán haber exactamente 11 parejas
de razón= ″<código>″ en una sola estadística
PAGE_FETCH_PAIR.
Explicación: El valor o formato de una
estadística que se ha suministrado para un v Las entradas del tamaño del
catálogo que se puede actualizar no es válido, almacenamiento intermedio de
está fuera de rango o no es coherente. Los PAGE_FETCH_PAIRS deben tener
errores más comunes para valor, rango y formato valores ascendentes. Además,
son (correspondientes a ″<código>″): cualquier valor de tamaño de
almacenamiento intermedio de una
1 Las estadísticas numéricas debe ser -1 ó entrada PAGE_FETCH_PAIRS no
>= 0. puede ser mayor que MIN( NPAGES,
2 Las estadísticas numéricas que 524287) donde NPAGES es la
representan porcentajes ([Link]. cantidad de páginas de la tabla
CLUSTERRATIO) deben oscilar entre 0 correspondiente.
y 100. v Las entradas ″fetches″ de
PAGE_FETCH_PAIRS deben tener un
3 Reglas relacionadas con HIGH2KEY y
valor descendente sin ninguna
LOW2KEY:
entrada ″fetches″ individual menor
v El tipo de datos de cualquier valor que NPAGES. Además, los valores de
HIGH2KEY o LOW2KEY debe ser tamaño ″fetch″ de una entrada
igual al tipo de datos de la PAGE_FETCH_PAIRS no deben
correspondiente columna de usuario. superar la estadística CARD
v La longitud del valor HIGH2KEY o (cardinalidad) de la tabla
LOW2KEY debe ser menor que 33 o correspondiente.
que la longitud máxima del tipo de v Si el valor del tamaño del
datos de la columna de destino. almacenamiento intermedio es el
v HIGH2KEY debe ser > LOW2KEY mismo en dos parejas consecutivas, el
siempre que haya 3 o más valores valor de recuperación (fetch) de la
distintos en la columna página deberá ser igual en ambas
correspondiente. En el caso de que parejas.
haya menos de 3 valores distintos en
5 Reglas relacionadas con
la columna, HIGH2KEY puede ser
CLUSTERRATIO y CLUSTERFACTOR:
igual a LOW2KEY.
v Los valores válidos para
4 Reglas relacionadas con CLUSTERRATIO son -1 o entre 0 y
PAGE_FETCH_PAIRS: 100
v Los valores individuales en la v Los valores válidos para
estadística PAGE_FETCH_PAIRS CLUSTERFACTOR son -1 o entre 0 y
deben ir separados por una serie de 1
delimitadores en blanco.
v CLUSTERRATIO o
v Los valores individuales en las CLUSTERFACTOR siempre debe ser
estadísticas PAGE_FETCH_PAIRS no -1.
deben tener más de 10 dígitos y

Capítulo 2. Mensajes SQL 217


v Si CLUSTERFACTOR es un valor
SQL1229N La transacción actual se ha
positivo, debe ir acompañado por una
retrotraído debido a un error del
estadística PAGE_FETCH_PAIR
sistema.
válida.
Explicación: Se ha producido una de las
6 La cardinalidad de una columna
situaciones siguientes:
(estadística COLCARD en
SYSCOLUMNS) no puede ser superior a 1. Se ha producido un error del sistema (por
la cardinalidad de su tabla ejemplo, una anomalía en el nodo o en la
correspondiente (estadística CARD en conexión). La aplicación se ha retrotraído
SYSTABLES). hasta la sentencia COMMIT anterior.
Tenga en cuenta que, en el caso de los
7 No se da soporte a ninguna estadística
programas de utilidad de DB2, la dinámica es
con los tipos de datos siguientes: LONG
la siguiente:
VARCHAR, LONG VARGRAPHIC,
BLOB, CLOB, DBCLOB o con los tipos Import La aplicación se retrotrae. Si se ha
estructurados definidos por el usuario. usado el parámetro
COMMITCOUNT, la operación se
8 Una estadística no es coherente con otra
retrotrae a un punto confirmado
estadística relacionada para esta entidad
anterior.
o no es válida en este contexto.
Reorg La operación queda cancelada
Respuesta del Usuario: Asegúrese de que la
anormalmente y debe volverse a
nueva estadística de catálogo satisface las normas
someter.
anteriores de rango, longitud y formato.
Redistribute
Asegúrese de que las actualizaciones a
La operación queda cancelada
estadísticas son coherentes en sus interrelaciones
anormalmente, sin embargo, es
([Link]. en cuanto a cardinalidad).
posible que haya resultado
sqlcode: -1227 parcialmente satisfactoria. Si se
vuelve a emitir la petición con la
sqlstate: 23521 opción ″continue″, se volverá a
iniciar la operación desde el
SQL1228W Se ha completado DROP momento que se haya producido la
DATABASE pero el nombre de anomalía.
alias de la base de datos o el Rollforward
nombre ″<nombre>″ de la base de La operación queda cancelada
datos no se ha encontrado en anormalmente y la base de datos
″<núm>″ nodos. sigue estando en estado de
Explicación: El mandato DROP DATABASE se pendiente de recuperación en
ha completado satisfactoriamente, pero hay avance. Es preciso volver a emitir el
algunos nodos donde no se ha encontrado el mandato.
alias o el nombre de la base de datos. Es posible Backup/Restore
que en esos nodos ya se haya emitido un DROP La operación queda cancelada
DATABASE AT NODE. anormalmente y debe volverse a
Respuesta del Usuario: Se trata sólo de un someter.
mensaje de aviso. No se necesita respuesta. 2. Los números de puerto de servicio asignados
a las comunicaciones de FCM (Gestor de
comunicaciones rápidas) no son iguales en
todos los nodos de la instancia de DB2.
Compruebe el archivo de servicios que se

218 Consulta de mensajes, Volumen 2


está utilizando en todos los nodos para v El agente se ha desconectado del gestor de
asegurar que todos los puertos son iguales. bases de datos entre el momento en que se
Los puertos se definen utilizando el formato: han recopilado los ID de agente y el momento
DB2_<instancia> xxxx/tcp en que se ha emitido el mandato Force.
DB2_<instancia>_END xxxx/tcp v El id de agente que se ha especificado era para
un agente paralelo (únicamente existe en DB2
donde <instancia> es el nombre de instancia Enterprise - Extended Edition) que no se
de DB2 y xxxx es el número de puerto. puede forzar.
Asegúrese de que dichos números de puerto
Respuesta del Usuario: En caso de haber
no se utilizan para el soporte de cliente
especificado un ID de agente que no exista o que
remoto de DB2.
no sea correcto, vuelva a intentar el mandato con
Respuesta del Usuario: un ID de agente que sí sea válido.
1. Vuelva a intentar la petición. Si el error
persiste, puede obtener más información SQL1231N Se ha especificado una cuenta
sobre el problema en el archivo [Link]. para Force que no es válida.
Tal vez sea preciso solicitar ayuda al
administrador, ya que probablemente este Explicación: El valor especificado para el
error sea debido a una anomalía del nodo. parámetro cuenta del mandato Force no es
válido. El valor especificado ha de ser un entero
Tenga en cuenta que, en un entorno SP,
positivo o bien SQL_ALL_USERS. Si el valor es
donde se emplea la conmutación de alta
cero se produce un error.
velocidad, este error puede revelar un
síntoma de anomalía en el conmutador de Respuesta del Usuario: Corrija el valor de
alta velocidad. cuenta y vuelva a emitir el mandato.
2. Actualice los puertos de servicio para que
sean los mismos en todos los nodos e intente SQL1232N Se ha especificado una modalidad
someter de nuevo la petición. para Force que no es válida.
El sexto campo sqlerrd del SQLCA indicará el Explicación: El valor especificado para el
número de nodo que haya detectado la anomalía parámetro modalidad del mandato Force no es
del nodo. En el nodo que haya detectado la válido. Para el mandato Force sólo se da soporte
anomalía se colocará un mensaje en el a la modalidad asíncrona. Al parámetro se le ha
[Link] que identifica al nodo anómalo. de asignar el valor SQL_ASYNCH.

sqlcode: -1229 Respuesta del Usuario: Establezca la modalidad


en SQL_ASYNCH y vuelva a someter el
sqlstate: 40504 mandato.

SQL1230W Por lo menos no se ha podido SQL1233N El uso de esta cláusula o función


forzar un ID de agente que se ha escalar sólo se soporta para los
especificado. datos gráficos que son UCS-2.

Explicación: Al menos ha habido un ID de Explicación: UCS-2 no está soportado para esta


agente que se ha especificado en el mandato base de datos. El soporte de UCS-2 es necesario
Force y que no se ha podido forzar. Las causas para las siguientes acciones:
de este aviso pueden ser: v Especificar una expresión de serie gráfica
v Se ha especificado un id de agente no existente como el primer argumento de la función
o no válido. escalar VARCHARn

Capítulo 2. Mensajes SQL 219


v Especificar una expresión de serie de hasta que se procese la siguiente sentencia
caracteres como el primer argumento de la COMMIT.
función escalar VARGRAPHIC cuando se
Respuesta del Usuario: Si es necesario
especifica un segundo argumento
desconectar de inmediato la base de datos que
v Especificar una constante hexadecimal UCS-2 actúa como base de datos TM, emita una
utilizando el formato UX’dígitos-hex’ sentencia COMMIT antes de que continúe la
No se puede procesar la sentencia. ejecución.

Respuesta del Usuario: Vuelva a someter el sqlcode: +1244


mandato con tipos de datos válidos. sqlstate: 01002
sqlcode: -1233
sqlstate: 560AA SQL1245N Se ha alcanzado el límite de
conexión. Desde este cliente no se
permite efectuar más conexiones.
SQL1240N Se ha llegado al número máximo
de inmovilizaciones. Explicación: Se ha alcanzado la cantidad
máxima de conexiones de base de datos
Explicación: Se ha tratado de conseguir un simultáneas para un entorno en el que la
estado de inmovilización en un espacio de tabla cantidad de conexiones está restringida o bien se
que ya ha quedado inmovilizado por 5 procesos. debe definir previamente. El ejemplo más
Respuesta del Usuario: Espere hasta que uno evidente se produce cuando se utiliza el
de los procesos salga del estado de protocolo NETBIOS.
inmovilización e inténtelo de nuevo. Respuesta del Usuario: Acciones posibles:
v Utilice el mandato SET CLIENT o una API
SQL1241N Se ha especificado un valor no para establecer el campo MAX NETBIOS
válido para el espacio de tabla CONNECTIONS en el número máximo de
″<nombre-tbs>″ al crear una base conexiones simultáneas necesarias. Esto es
de datos. El atributo es ″<serie>″. preciso antes de llevar a cabo cualquier
conexión.
Explicación: El valor para el atributo del
espacio de tabla estaba fuera del rango sqlcode: -1245
permitido. Consulte el apartado de Estructuras
de Datos de Application Development Guide sqlstate: 08001
para conocer el formato de la estructura
sqletsdesc que se utiliza para crear la api de la
SQL1246N Los valores de conexión no
base de datos. El atributo identificado es el
pueden cambiarse mientras
nombre del campo de dicha estructura.
existan las conexiones.
Respuesta del Usuario: Corrija la solicitud de
Explicación: Se ha producido una de las
creación de base de datos.
siguientes condiciones:
v Se ha intentado cambiar los valores de
SQL1244W La desconexión de la base de conexión para una aplicación que utiliza la
datos “<nombre-base-datos>” se API SET CLIENT. La modificación se ha
producirá en la siguiente rechazado porque hay una o más
sentencia COMMIT. comunicaciones activas.
Explicación: Se ha emitido una desconexión en v La aplicación contiene tanto las llamadas de la
una base de datos que actúa como la base de API de la Interfaz de nivel de llamada de DB2
datos TM. La conexión no se puede completar como las llamadas a funciones que contienen

220 Consulta de mensajes, Volumen 2


SQL incluido y la gestión de conexión no se ha había abierto. Es preciso definir una base de
invocado utilizando las API de CLI. datos en el gestor de transacciones para que
participe en el proceso de confirmación de dos
Respuesta del Usuario: Acciones posibles:
fases.
v Asegúrese de que la aplicación se desconecta
de todos los servidores antes de emitir la API Respuesta del Usuario: Defina la base de datos
SET CLIENT (sqlesetc o sqlgsetc) o el mandato como gestor de recursos en el gestor de
CLP. transacciones del entorno de Proceso de
Transacciones Distribuidas. Por ejemplo, en un
v Asegúrese de que todas las solicitudes de
entorno CICS, esto supone tener que añadir la
gestión de conexiones se emitan por medio de
base de datos al archivo XAD, así como
las API de la Interfaz de nivel de llamada de
proporcionar a la base de datos el nombre de
DB2 si la aplicación utiliza la CLI.
alias que figura en la serie XAOpen de la entrada
XAD.
SQL1247N Las aplicaciones que se ejecutan
sqlcode: -1248
en un entorno de proceso de
transacciones XA deben utilizar el sqlstate: 42705
valor de conexión SYNCPOINT
TWOPHASE.
SQL1251W No se ha devuelto ningún dato
Explicación: La aplicación se ha precompilado para consulta heurística.
con la opción SYNCPOINT ONEPHASE o con
Explicación: No hay transacciones dudosas en
SYNCPOINT NONE, o bien el valor de conexión
la base de datos, ni transacciones que hayan
SYNCPOINT se ha cambiado por uno de estos
finalizado y estén a la espera de entrar en el
valores utilizando SET CLIENT API. Dichos
proceso de punto de sincronismo.
valores son incorrectos para aquellas aplicaciones
que provocan la ejecución de los mandatos de Respuesta del Usuario: No es necesaria
puntos de sincronismo de proceso de ninguna acción.
transacciones (por ejemplo, CICS SYNCPOINT).
Tenga en cuenta que SYNCPOINT ONEPHASE
es la opción del precompilador por omisión. SQL1260N La base de datos “<nombre>” no
está configurada para la
Respuesta del Usuario: Acciones posibles: recuperación en avance en los
v Vuelva a precompilar la aplicación con la nodos “<lista-nodos>”.
opción del precompilador SYNCPOINT Explicación: La base de datos especificada no
TWOPHASE. está configurada para la recuperación en avance
v Modifique el programa de forma que se llame en los nodos especificados. Si aparece ″,...″ al
a SET CLIENT API para establecer la opción final de la lista de nodos, consulte el registro de
de conexión en SYNCPOINT TWOPHASE diagnósticos para ver la lista completa de nodos.
antes que ningún otro proceso.
La base de datos no se ha recuperado en avance
sqlcode: -1247 en los nodos especificados.
(Nota: si se está utilizando un servidor de bases
sqlstate: 51025
de datos particionadas, los números de nodo
indican aquellos nodos donde se ha producido el
SQL1248N La base de datos “<alias base error. Si no es así, debe hacerse caso omiso.)
datos>” no está definida con el
Respuesta del Usuario: Asegúrese de que sea
gestor de transacciones.
necesario realizar la recuperación en los nodos
Explicación: Se ha tratado de acceder a una especificados y restaure en ellos la copia de
base de datos que el gestor de transacciones no seguridad más reciente de la base de datos.

Capítulo 2. Mensajes SQL 221


Respuesta del Usuario: Asegúrese de que la
SQL1261N La base de datos ″<nombre>″ no
indicación horaria se entra en el formato
está en estado de pendiente de
correcto.
recuperación en avance en el(los)
nodo(s) ″<lista-nodos>″, por lo Al emitir el mandato ROLLFORWARD
tanto no necesita una recuperación DATABASE, asegúrese de que el año que
en avance en estos nodos. especifique no sea posterior al 2105.
Explicación: La base de datos especificada no
está en estado de pendiente de recuperación en SQL1263N El archivo “<nombre>” de
avance en los nodos especificados. Esto puede archivado no es un archivo de
deberse a que la base de datos no se ha anotaciones cronológicas válido
restaurado, que se ha restaurado con la opción para la base de datos “<nombre>”
WITHOUT ROLLING FORWARD, o que ya ha en el nodo “<número-nodo>”.
tenido lugar en dichos nodos.
Explicación: El archivo de anotaciones
Si aparece ″,...″ al final de la lista de nodos, cronológicas de archivado especificado ya existe
consulte el registro de diagnósticos para ver la en el directorio del registro de bases de datos o
lista completa de nodos. en el directorio de registro de desbordamientos
del nodo aludido, pero dicho archivo no es
No se efectuará una recuperación en avance de la
válido.
base de datos.
Se detiene el proceso de la recuperación en
(Nota: si se está utilizando un servidor de bases
avance.
de datos particionadas, los números de nodo
indican aquellos nodos donde se ha producido el (Nota: si se está utilizando un servidor de bases
error. Si no es así, debe hacerse caso omiso.) de datos particionada, el número de nodo indica
el nodo donde se ha producido el error. Si no es
Respuesta del Usuario: Proceda de la manera
así, debe hacerse caso omiso.)
siguiente:
1. Asegúrese de que sea preciso realizar la Respuesta del Usuario: Para determinar el
recuperación en los nodos especificados. archivo de anotaciones cronológicas de archivado
correcto, emita el mandato ROLLFORWARD
2. Restaure una copia de seguridad de la base
DATABASE con la opción QUERY STATUS.
de datos en esos nodos.
Coloque el archivo correcto de anotación
3. Emita el mandato ROLLFORWARD cronológica de archivado en el directorio de
DATABASE. anotación cronológica de la base de datos o, si la
base de datos se halla en estado coherente,
SQL1262N El punto horario especificado para cambie la vía de acceso de anotaciones
la recuperación en avance de la cronológicas de tal forma que apunte al archivo
base de datos “<nombre>” no es adecuado; acto seguido, vuelva a emitir el
válido. mandato ROLLFORWARD DATABASE. Como
alternativa, vuelva a someter el mandato con la
Explicación: El parámetro de la indicación vía de acceso del registro de desbordamiento
horaria para el valor de detención de la apuntando al archivo de archivado correcto.
indicación horaria no es válido. La indicación
horaria debe especificarse en formato ISO
([Link].<ssssss> siendo SQL1264N El archivo “<nombre>” de
AAAA el año, MM el mes, DD el día, hh la hora, archivado no pertenece a la base
mm los minutos, ss los segundos y ssssss los de datos “<nombre-base-datos>”
microsegundos opcionales). del nodo “<número-nodo>”.

No se efectuará una recuperación en avance de la Explicación: Este archivo de anotaciones


base de datos. cronológicas de archivado se encuentra en el

222 Consulta de mensajes, Volumen 2


directorio de anotación cronológica o en el dicho archivo no está en la secuencia de registro
directorio de registro de desbordamientos, pero correcta.
no pertenece a la base de datos especificada.
Se detiene el proceso de la recuperación en
Se detiene el proceso de la recuperación en avance.
avance.
(Nota: si se está utilizando un servidor de bases
(Nota: si se está utilizando un servidor de bases de datos particionada, el número de nodo indica
de datos particionada, el número de nodo indica el nodo donde se ha producido el error. Si no es
el nodo donde se ha producido el error. Si no es así, debe hacerse caso omiso.)
así, debe hacerse caso omiso.)
Respuesta del Usuario: Para determinar el
Respuesta del Usuario: Para determinar el archivo de anotaciones cronológicas de archivado
archivo de anotaciones cronológicas de archivado correcto, emita el mandato ROLLFORWARD
correcto, emita el mandato ROLLFORWARD DATABASE con la opción QUERY STATUS.
DATABASE con la opción QUERY STATUS. Coloque el archivo de anotaciones cronológicas
Coloque el archivo de anotaciones cronológicas de archivado correcto en el directorio de
de archivado correcto en el directorio de anotación cronológica de la base de datos o, si la
anotación cronológica de la base de datos o, si la base de datos se halla en estado coherente,
base de datos se halla en estado coherente, cambie la vía de acceso de anotaciones
cambie la vía de acceso de anotaciones cronológicas de tal forma que apunte al archivo
cronológicas de tal forma que apunte al archivo adecuado; acto seguido, vuelva a emitir el
adecuado; acto seguido, vuelva a emitir el mandato ROLLFORWARD DATABASE. Como
mandato ROLLFORWARD DATABASE. Como alternativa, vuelva a someter el mandato con la
alternativa, vuelva a someter el mandato con la vía de acceso del registro de desbordamiento
vía de acceso del registro de desbordamiento apuntando al archivo de archivado correcto.
apuntando al archivo de archivado correcto.
SQL1266N Se ha realizado la recuperación en
SQL1265N El archivo de anotaciones avance de la base de datos
cronológicas de archivado “<nombre>” a las “<indicación
“<nombre>” no está asociado con hora>”, hora que es posterior a la
la secuencia de registro actual de especificada.
la base de datos “<nombre>” del
Explicación: Se ha solicitado la detención de
nodo “<número-nodo>”.
una recuperación en avance con una indicación
Explicación: En la recuperación en avance se horaria anterior al punto horario actual del
han de procesar los archivos de anotación archivo de anotaciones cronológicas de base de
cronológica en la secuencia correcta. La secuencia datos especificado. Esto puede suceder cuando se
de archivos de anotación cronológica la realiza la recuperación en avance de la base de
determina la base de datos que se ha restaurado datos o de un subconjunto de espacios de tabla
o los archivos de anotación cronológica que se en un punto horario.
han procesado. Además, para la recuperación en
Se detiene el proceso de la recuperación en
avance a nivel de espacio de tabla, deben
avance de la base de datos.
procesarse los archivos en la secuencia mediante
la cual se ha alcanzado el estado actual de la Respuesta del Usuario: Especifique la
base de datos. El archivo de anotaciones indicación horaria correcta o restaure la base de
cronológicas de archivado indicado se encuentra datos o bien el subconjunto de espacios de tabla
en el directorio de anotación cronológica o en la a partir de una versión de copia de seguridad, y
vía de acceso de registro de desbordamientos de vuelva a someter el mandato ROLLFORWARD.
la base de datos del nodo especificado, pero

Capítulo 2. Mensajes SQL 223


tabla, pero ésta ya se está ejecutando. No puede
SQL1267N El sistema no ha podido encontrar
haber más de un agente ejecutando la
db2uexit en la variable de entorno
recuperación en avance al mismo tiempo.
PATH actual.
Respuesta del Usuario: Espere a que finalice la
Explicación: No es posible encontrar el archivo
recuperación en avance a nivel de espacio de
db2uexit suministrado por el usuario, porque no
tabla. Si se necesita recuperar más espacios de
está en la variable de entorno PATH actual o
tabla, vuelva a iniciar la recuperación en avance
bien porque no existe.
a nivel de espacio de tabla.
No se puede procesar el mandato.
Respuesta del Usuario: Actualice la variable de SQL1270C La variable de entorno LANG está
entorno PATH actual de modo que incluya la vía establecida en “<serie>”. No se da
de acceso a db2uexit o cree un archivo db2uexit y soporte a este idioma.
actualice la variable de entorno PATH actual, si
Explicación: La variable de entorno LANG está
es necesario.
establecida en un idioma que no recibe soporte
en el gestor de bases de datos. No se puede
SQL1268N Se ha detenido la recuperación en continuar el proceso.
avance debido al error “<error>”
Respuesta del Usuario: Defina la variable de
al recuperar el archivo de
entorno LANG en un idioma que se soporte.
anotaciones cronológicas
Para más información, consulte el apéndice
“<archivo registro>” para la base
“Soporte de idiomas nacionales” en el manual
de datos “<nombre>” del nodo
Administration Guide.
“<número-nodo>”.
Usuarios del sistema federado: en la publicación
Explicación: El proceso de recuperación en
Installation and Configuration Supplement hallará
avance invoca db2uext2 para recuperar el archivo
información sobre el NLS.
de anotaciones cronológicas. Es posible que el
error se haya producido en db2uext2.
SQL1271W La base de datos ″<nombre>″ se
Se detiene el proceso de la recuperación en
recupera, pero uno o más espacios
avance. La base de datos permanece pendiente
de tablas están fuera de línea en
de recuperación en avance en el nodo
el nodo o nodos ″<lista-nodos>″.
especificado.
Explicación: Este mensaje puede producirse
(Nota: si se está utilizando un servidor de bases
después de una recuperación en conflicto, una
de datos particionada, el número de nodo indica
recuperación en avance a nivel de base de datos,
el nodo donde se ha producido el error. Si no es
o una recuperación en avance a nivel de espacio
así, debe hacerse caso omiso.)
de tabla. Para la recuperación en avance a nivel
Respuesta del Usuario: Consulte la de base de datos, la base de datos está disponible
documentación sobre salidas de usuario para utilizarla si se ha especificado la opción
Administration Guide para obtener una STOP. Uno o más espacios de tabla del nodo o
descripción del error y reanude o finalice la nodos especificados no están disponibles. Esto
recuperación en avance. puede suceder si:
v la opción STOP no está especificada para la
SQL1269N Ya está ejecutándose la recuperación en avance a nivel de espacio de
recuperación en avance a nivel de tabla en un punto horario.
espacio de tabla. v uno o más espacios de tablas reciben errores
durante la recuperación.
Explicación: Se ha tratado de utilizar la
recuperación en avance a nivel de espacio de

224 Consulta de mensajes, Volumen 2


v Se restauran espacios de tabla adicionales error E/S en uno de los espacios de tabla en el
mientras está en proceso la recuperación en que se estaba realizando la recuperación en
avance a nivel de espacio de tabla. avance.
v la recuperación en avance se ha llevado a cabo v La recuperación en avance a nivel de espacio
más allá de una recuperación en avance a de tabla del punto horario ha encontrado una
nivel de espacio de tabla de punto horario transacción activa que ha realizado cambios en
anterior, lo que ha ocasionado que todos los una de las tablas en la que se estaba
espacios de tabla involucrados estén en estado realizando la recuperación en avance. Esta
de pendiente de restauración. transacción podría ser una transacción dudosa.
Los espacios de tabla que están fuera de línea v Se ha interrumpido la recuperación en avance
pueden identificarse en los nodos especificados a nivel de espacio de tabla y, antes de
por el mandato LIST TABLESPACES o por el reanudarla, se han vuelto a restaurar todos los
programa de utilidad db2dart. El registro de espacios de tabla cuya recuperación en avance
diagnósticos proporcionará más información se estaba llevando a cabo.
sobre los espacios de tabla específicos. Si aparece ″,...″ al final de la lista de nodos,
consulte el registro de diagnósticos para ver la
Si aparece ″,...″ al final de la lista de nodos, lista completa de nodos.
consulte el registro de diagnósticos para ver la
lista completa de nodos. (Nota: si se está utilizando un servidor de bases
de datos particionadas, los números de nodo
(Nota: si se está utilizando un servidor de bases indican aquellos nodos donde se ha producido el
de datos particionadas, los números de nodo error. Si no es así, debe hacerse caso omiso.)
indican aquellos nodos donde se ha producido el
error. Si no es así, debe hacerse caso omiso.) Respuesta del Usuario: Compruebe el registro
de diagnóstico para obtener la causa. Según la
Respuesta del Usuario: Repare o restaure los causa, realice una de las acciones siguientes:
espacios de tabla si es necesario y ejecute la
v Utilice el mandato LIST TABLESPACES para
recuperación en avance. Si surge el mismo error,
determinar si los espacios de tablas han
trate de ejecutar fuera de línea la recuperación en
recibido errores de E/S. Si es así, repárelos.
avance a nivel de espacio de tabla.
v Si la tabla de transacciones está llena, incluya
el parámetro de configuración de base de
SQL1272N Se ha detenido la recuperación en datos MAXAPPLS o intente ejecutar fuera de
avance a nivel de espacio de tabla línea la recuperación en avance a nivel de
para la base de datos ″<nombre>″ espacio de tabla.
antes de la finalización en el nodo
v Si la causa es una transacción activa o dudosa,
o nodos ″<lista-nodos>″.
finalice la transacción.
Explicación: La recuperación en avance a nivel v Si se han restaurado los espacios de tabla
del espacio de tabla se ha detenido en los nodos después de que se hubiera interrumpido una
especificados antes de que se hayan recuperado recuperación en avance a nivel de espacio de
en avance todos los espacios de tabla calificados. tabla, la recuperación en avance a nivel de
Esto puede ser debido a una de las causas espacio de tabla anterior está cancelada ahora.
siguientes: El siguiente mandato de recuperación en
v La tabla de transacciones está llena. avance a nivel de espacio de tabla comprobará
v Todos los espacios de tabla de la recuperación los espacios de tabla que estén en estado de
en avance han recibido errores de E/S. pendiente de recuperación en avance.

v La recuperación en avance a nivel de espacio Vuelva a ejecutar la recuperación en avance a


de tabla del punto horario ha encontrado un nivel de espacio de tabla.

Capítulo 2. Mensajes SQL 225


SQL1273N La recuperación en avance de la SQL1274N La base de datos “<nombre>”
base de datos ″<nombre>″ no necesita la recuperación en avance
puede alcanzar el punto de y el punto horario ha de
detención especificado (fin de establecerse al final de los
registro o un punto horario) registros cronológicos.
porque falta el archivo de
Explicación: La base de datos se ha de
anotaciones cronológicas
recuperar en avance. Para la recuperación en
″<nombre>″ en el nodo
avance a nivel de base de datos, el punto horario
″<número-nodo>″.
ha de estar al final de los registros cronológicos
Explicación: El programa de utilidad porque una recuperación en avance a nivel de la
Rollforward Database no puede hallar este base de datos al final de los registros
archivo de anotaciones cronológicas de archivado cronológicos ya está en proceso. Para continuar
en el directorio de anotación cronológica o en el la recuperación en avance, debe especificarse el
directorio de desbordamientos de la base de mismo tiempo de detención.
datos del nodo especificado.
Para la recuperación en avance a nivel de espacio
La recuperación en avance se ha detenido. de tabla, el punto horario debe estar al final de
los registros cronológicos debido a una de las
(Nota: si se está utilizando un servidor de bases
siguientes razones:
de datos particionada, el número de nodo indica
el nodo donde se ha producido el error. Si no es v Los catálogos del sistema necesitan
así, debe hacerse caso omiso.) recuperación en avance. Los catálogos deben
recuperarse en avance siempre hasta el final de
Respuesta del Usuario: Realice una de las los registros cronológicos para que siga siendo
acciones siguientes: coherente con todos los demás espacios de
v Coloque el archivo de anotaciones cronológicas tabla.
de archivado especificado en el directorio de v Ya está en curso una recuperación en avance
registro de la base de datos o, si la base de de nivel de espacio de tabla hasta el final de
datos se halla en estado coherente, cambie la los registros cronológicos. Para continuar la
vía de acceso de anotaciones cronológicas de recuperación en avance, debe especificarse el
tal forma que apunte al archivo adecuado; acto mismo tiempo de detención.
seguido, vuelva a emitir el mandato
ROLLFORWARD DATABASE. Como No se efectuará una recuperación en avance de la
alternativa, vuelva a someter el mandato con base de datos.
la vía de acceso del registro de Respuesta del Usuario: Vuelva a someter el
desbordamiento apuntando al archivo de mandato ROLLFORWARD especificando
archivado correcto. ROLLFORWARD TO END OF LOGS.
v Si no puede hallar los archivos de anotación
cronológica que faltan, restaure la base de
SQL1275N La hora de detención pasada a la
datos o el espacio de tabla en todos los nodos
recuperación en avance ha de ser
y luego efectúe una recuperación puntual
mayor o igual que “<indicación
utilizando una indicación horaria anterior a la
horaria>”, porque la base de datos
del archivo de anotaciones cronológicas que
“<nombre>” del o los nodos
falta.
“<lista-nodos>” contiene
información que es posterior a la
hora especificada.
Explicación: Se ha realizado la copia de
seguridad en línea de la base de datos o al
menos de uno de los espacios de tabla

226 Consulta de mensajes, Volumen 2


pendientes de recuperación en avance. En la base de datos o todos los espacios de tabla se
copia de seguridad de la base de datos o del hayan recuperado en avance al final de la
espacio de tabla hay una indicación horaria indicación horaria de la copia de seguridad en
virtual avanzada. La hora de detención que se línea en el nodo especificado.
pasa a la recuperación en avance debe ser
Este error también se puede producir si no se
posterior o igual a la hora a la que haya
facilitan todos los archivos de anotación
finalizado la copia de seguridad en línea en el
cronológica para adaptarse a la recuperación
nodo especificado.
solicitada.
Si aparece ″,...″ al final de la lista de nodos,
(Nota: si se está utilizando un servidor de bases
consulte el registro de diagnósticos para ver la
de datos particionada, el número de nodo indica
lista completa de nodos.
el nodo donde se ha producido el error. Si no es
(Nota: si se está utilizando un servidor de bases así, debe hacerse caso omiso.)
de datos particionadas, los números de nodo
Respuesta del Usuario: Si la hora de detención
indican aquellos nodos donde se ha producido el
especificada en el mandato ROLLFORWARD es
error. Si no es así, debe hacerse caso omiso.)
menor que ″<indicación horaria>″, vuelva a
Respuesta del Usuario: Realice una de las someter el mandato con una hora de detención
acciones siguientes: que sea mayor o igual a ″<indicación horaria>″.
v Vuelva a someter el mandato con una hora de Verifique si se han proporcionado todos los
detención que sea mayor o igual a archivos de anotación cronológica. El mandato
“<indicación horaria>”. El tiempo debe ROLLFORWARD QUERY STATUS muestra qué
especificarse en CUT (Hora universal archivo de anotaciones cronológicas se ha de
coordinada). procesar a continuación. Algunas de las razones
v Restaure una copia de seguridad anterior en por las que faltan archivos de anotación
los nodos y vuelva a emitir el mandato cronológica son:
ROLLFORWARD DATABASE. v la vía de acceso a las anotaciones cronológicas
ha cambiado. El archivo se puede encontrar en
SQL1276N La base de datos ″<nombre>″ no la vía de acceso del registro anterior.
se puede sacar del estado v el programa de salida de usuario no puede
pendiente de recuperación en recuperar el archivo de anotaciones
avance hasta que la recuperación cronológicas, porque tal vez se ha archivado
en avance haya pasado un punto en un lugar diferente.
horario posterior o igual a
Si encuentra el archivo de anotaciones
″<indicación horaria>″, porque el
cronológicas que falta, cópielo en la vía de acceso
nodo “<número-nodo>” contiene
del registro y vuelva a someter el mandato.
información que es posterior a la
hora especificada.
SQL1277N La restauración ha detectado que
Explicación: Se ha solicitado que la base de
no se puede acceder a uno o
datos o subconjunto de espacios de tabla salgan
varios contenedores de espacio de
del estado de pendiente de recuperación en
tabla, o su estado se ha
avance mediante la acción
establecido en ″debe definirse el
SQLUM_ROLLFWD_STOP, SQLUM_STOP,
almacenamiento″.
SQLUM_ROLLFWD_COMPLETE o
SQLUM_COMPLETE del emisor. Sin embargo, se Explicación: La restauración valida que en el
ha realizado la copia de seguridad en línea de la sistema se puede acceder a los contenedores que
base de datos o al menos de uno de los espacios necesita cada espacio de tabla que se está
de tabla pendientes de recuperación en avance. restaurando. Si es posible, la restauración creará
La petición no puede concederse hasta que la contenedores, si es que no existen. Si no se

Capítulo 2. Mensajes SQL 227


pueden crear o los está utilizando otro espacio transacciones se han recuperado en avance
de tabla o no se puede acceder a ellos por desde los espacios de tabla del subconjunto
cualquier motivo, es preciso corregir la lista de de espacios de tabla.
los contenedores que se necesitan antes de que la 2. Existe una o más transacciones dudosas en el
restauración pueda seguir adelante. punto horario especificado. Cada transacción
Si se trata de una restauración redirigida, el dudosa se ha recuperado en avance desde los
estado de cada contenedor de los espacios de espacios de tabla del subconjunto de espacios
tabla que se restauran se establece en ″debe de tabla.
definirse el almacenamiento″. De este modo se Todas las transacciones dudosas que se han
pueden utilizar la API o el mandato SET recuperado en avance desde los espacios de tabla
TABLESPACE CONTAINERS con los del subconjunto de espacios de tabla se
contenedores para redefinir el almacenamiento. confirmarán en otros espacios de tabla no
Respuesta del Usuario: Para determinar la lista involucrados en la recuperación en avance.
de contenedores de cada espacio de tabla que se
restaura, utilice la API TABLESPACE Si aparece ″,...″ al final de la lista de nodos,
CONTAINER QUERY o el mandato LIST consulte el registro de diagnósticos para ver la
TABLESPACE CONTAINERS. Para especificar lista completa de nodos.
una lista actualizada de cada espacio de tabla,
utilice la API o el mandato SET TABLESPACE (Nota: si se está utilizando un servidor de bases
CONTAINERS. Esta API o mandato permite de datos particionadas, los números de nodo
especificar si debe ser la lista inicial de indican aquellos nodos donde se ha producido el
contenedores (p. ej. una recuperación en avance error. Si no es así, debe hacerse caso omiso.)
posterior rehará todas las operaciones ″añadir
Respuesta del Usuario: Las anotaciones
contenedor″ descritas en las anotaciones de base
cronológicas de diagnósticos contendrán detalles
de datos) o la lista final (la recuperación en
sobre las transacciones que ha recuperado la
avance no rehará las operaciones ″añadir
recuperación en avance.
contenedor″).
Puede darse el caso de que el o los contenedores
SQL1279W Es posible que algunos índices no
sean de sólo lectura, en cuyo caso la única acción
se hayan vuelto a crear.
necesaria antes de continuar con la restauración
es proporcionar el acceso de lectura/grabación al Explicación: Se ha producido un error al volver
contenedor. a crear los índices mientras se reiniciaba una
base de datos o después de la reorganización de
las tablas, lo que ha impedido que los índices se
SQL1278W La operación de recuperación en
hayan vuelto a crear satisfactoriamente. Si desea
avance se ha completado
ver los detalles, consulte la anotación cronológica
satisfactoriamente. Las
de errores del sistema y/o la anotación
transacciones activas o dudosas
cronológica de errores del gestor de bases de
requieren la recuperación en
datos.
avance en el/los nodo(s)
″<lista-nodos>″. El reinicio de la base de datos o la reorganización
de las tablas ha resultado satisfactoria.
Explicación: La recuperación en avance de un
subconjunto de espacio de tabla en un punto Respuesta del Usuario: Revise los registros de
horario se ha completado satisfactoriamente, sin error para determinar por qué los índices no se
embargo, se ha producido una o las dos han podido volver a crear y corrija el problema.
situaciones siguientes: Los índices no válidos de una tabla se volverán a
1. Existe una o más transacciones activas en el crear cuando se acceda a la tabla por primera
punto horario especificado. Todas las vez.

228 Consulta de mensajes, Volumen 2


Troubleshooting Guide para obtener información
SQL1280N La hora de detención que se pasa
sobre cómo utilizar este recurso. Póngase en
a la recuperación en avance ha de
contacto con el representante de servicio técnico
ser anterior o igual a “<indicación
con la siguiente información:
horaria>” de la base de datos
“<nombre>” porque al menos uno Información necesaria:
de los espacios de tablas ya se v Descripción del problema
había recuperado en avance hasta
este punto horario. v SQLCODE o número del mensaje
v Contenido de SQLCA, si es posible
Explicación: Como mínimo ya se ha recuperado
en avance en un punto horario anterior uno de v Archivo de rastreo, si es posible
los espacios de tabla que se han especificado sqlcode: -1281
para la recuperación en avance en este punto
horario. No puede recuperarse en avance más. sqlstate: 40504
Respuesta del Usuario: Realice una de las
acciones siguientes: SQL1282N El intento de conectarse a la base
v Vuelva a someter el mandato con la hora de de datos ″<alias-base-datos>″ ha
detención “<indicación horaria>”. fallado porque todas las instancias
v Vuelva a restaurar todos los espacios de tablas de conexión ″<nombre-conducto>″
y vuelva a someter el mandato con una hora están ocupadas.
de detención anterior a “<indicación horaria>”. Explicación: Los intentos de conectarse al
v Restaure la o las copias de seguridad de los conducto aludido ha fallado porque DB2 ha
espacios de tabla que se hayan realizado rechazado la conexión. Hay un límite para el
después de la recuperación en avance de número de conexiones que se permiten en el
espacio de tabla anterior a un punto horario y, conducto aludido.
a continuación, vuelva a someter el mandato
Respuesta del Usuario: Aumente el límite de
con la misma hora de detención.
conexión en el servidor DB2, o interrumpa
El tiempo debe especificarse en CUT (Hora algunas de las aplicaciones que utilizan el
universal coordinada). conducto aludido para liberar los recursos de
conexión.
SQL1281N La conexión con la base de datos sqlcode: -1282
″<alias-base-datos>″ ha sido
sqlstate: 08001
anómala porque se ha roto el
conducto ″<nombre-conducto>″.
SQL1283N El intento de conectarse a la base
Explicación: La conexión se ha perdido porque
de datos ″<alias-base-datos>″ ha
el servidor de DB2 ha roto el conducto. La
fallado porque el conducto
transacción actual se ha retrotraído.
″<nombre-conducto>″ se está
Respuesta del Usuario: Vuelva a someter el utilizando en otro proceso.
mandato actual. Si el error sigue apareciendo,
Explicación: El nombre del conducto aludido ya
póngase en contacto con el representante de
se está utilizando en otro proceso. El soporte al
servicio técnico.
conducto aludido no se ha iniciado.
Si estaba activo un rastreo, llame al Recurso de
Respuesta del Usuario: Elija un nombre distinto
Rastreo Independiente (Independent Trace
definiendo para ello la variable de entorno
Facility) desde el indicador de mandatos del
DB2PIPENAME, o haga que el resto de
sistema operativo. Consulte el Recurso de
programas que utilizan el conducto aludido
Rastreo Independiente en la publicación
empleen un nombre de conducto distinto.

Capítulo 2. Mensajes SQL 229


disco, manejadores de archivos). La transacción
SQL1284N El intento de conectarse a la base
actual se ha retrotraído.
de datos ″<alias-base-datos>″ ha
fallado porque no se encuentra el Respuesta del Usuario: Deje libres los recursos
conducto ″<nombre-conducto>″. del sistema y vuélvalo a intentar.
Explicación: El servidor no ha iniciado su sqlcode: -1286
soporte al conducto aludido, o bien está
utilizando un nombre distinto para el mismo. sqlstate: 40504

Respuesta del Usuario: Inicie el gestor de bases


de datos y asegúrese de se inicia el soporte al SQL1287N La conexión ATTACH a una
conducto aludido. Si el soporte al conducto instancia ″<instancia>″ ha fallado
aludido se ha iniciado, asegúrese de que el porque no se puede encontrar el
nombre del conducto aludido sea el mismo entre conducto con nombre
el cliente el servidor, para lo cual es necesario ″<conducto>″.
definir la variable de entorno DB2PIPENAME Explicación: El servidor no ha iniciado el
con el mismo valor. soporte de conducto con nombre, o el nombre de
sqlcode: -1284 la sesión no es correcto.

sqlstate: 08001 Respuesta del Usuario: Compruebe que el


gestor de bases de datos se haya iniciado en el
servidor y que el soporte de conducto con
SQL1285N El intento de conectarse a la base nombre se ha iniciado. Asegúrese de que el
de datos ″<alias-base-datos>″ ha nombre de la sesión sea correcto.
fallado porque la conexión
″<nombre-conducto>″ no es
válida. SQL1290N El valor del parámetro de
configuración del gestor de bases
Explicación: El nombre alternativo de la de datos DFT_CLIENT_COMM de
conexión que ha establecido la variable de la variable de entorno
entorno DB2PIPENAME no es correcto. DB2CLIENTCOMM no es válido.
Respuesta del Usuario: El valor de la variable Explicación: Se ha especificado un valor
de entorno DB2PIPENAME debe ser un nombre incorrecto o bien la base de datos de destino no
de conexión válido. El nombre de la conexión no da soporte al protocolo o protocolos
debe superar los ocho caracteres y debe tener las especificados. Los valores aceptables son:
mismas restricciones sintácticas que el nombre de v Plataformas de Unix: TCPIP y APPC
un archivo normal.
v OS/2: TCPIP, APPC, IPXSPX y NETBIOS
sqlcode: -1285 v Windows NT y Windows 95: TCPIP, APPC,
sqlstate: 08001 IPXSPX, NETBIOS y NPIPE
Si se especifica más de un valor, entonces todos
SQL1286N La conexión con la base de datos ellos deben ir delimitados por una coma.
″<alias-base-datos>″ ha sido
anómala porque el sistema Tenga en cuenta que este mensaje lo puede
operativo se ha quedado sin emitir un nodo intermedio implicado en la
recursos para la conexión conexión. Por ejemplo, si intenta conectar con un
″<nombre-conducto>″. servidor DRDA a través de una pasarela DB2
Connect y la estación de trabajo cliente no utiliza
Explicación: El conducto aludido ha fallado
porque el sistema operativo se ha quedado sin
recursos (espacio de intercambio, espacio de

230 Consulta de mensajes, Volumen 2


servicios de directorio global, es posible que sea Para las funciones XOM como om_get,
la pasarela de DB2 Connect la que devuelva este los valores de los códigos de retorno se
mensaje. hallan en el archivo include xom.h del
DCE.
Respuesta del Usuario: Corrija el valor y
vuelva a intentarlo.
Tenga en cuenta que este mensaje lo puede
sqlcode: -1290 emitir un nodo intermedio implicado en la
conexión. Por ejemplo, si intenta conectar con un
sqlstate: 08001
servidor DRDA a través de una pasarela DB2
Connect y la estación de trabajo cliente no utiliza
SQL1291N Se ha detectado un error de los servicios de directorio global, es posible que sea
servicios del directorio. Servicio: la pasarela de DB2 Connect la que devuelva este
″<tipo-servicios-directorio>″, API: mensaje.
″<API>″, función: ″<función>″,
Respuesta del Usuario: Asegúrese de que:
código de error: ″<cr>″.
v El producto que proporciona los servicios de
Explicación: El subsistema de los servicios de directorio esté correctamente instalado y sea
directorio ha detectado un error. Consulte los operativo.
valores de los símbolos para obtener más
v Haberse conectado a los servicios de directorio
detalles. A continuación se ofrece una explicación