Академический Документы
Профессиональный Документы
Культура Документы
-084 Comando SQL erróneo. Encuentra un estamento SQL erróneo. Alguna de las
palabras escritas, bien nombres de columna, bien campos WORKING o bien la WHERE
están mal escritas.
Al hacer una SELECT COUNT(*) comprobar que tiene correcta la sintaxis.
Al abrir un cursor: comprobar que nombre del último campo de una SELECT no llegue,
exactamente, hasta la columna 72. Si sucede esto pasar este último campo a la línea
siguiente.
-101 El comando es muy largo o complejo. El estamento es mas largo que la longitud
del mismo
-104 La sentencia DB2 contiene caracteres inválidos o un comando mal escrito, o falta
un parámetro.
Cuando tenemos puesto un símbolo erróneo dentro del fichero utilizado para la
operación realizada. (Ej. Asterisco en lugar de guión).
Revisar sentencia SQL, normalmente falta una coma entre dos campos a seleccionar o
modificar.
Puede ocurrir en el BIND al compilar un programa porque en el JCL había un / en vez
de dos en la DD.
Puede ocurrir al hacer una UPDATE por SPUFI porque falta alguna coma detrás de cada
valor definido en el ‘SET’ para modificarlo.
-120 La cláusula WHERE o cláusula SET incluye una función SQL o hace referencia a
una columna del GROUP BY de la definición de la vista.
-121 En un INSERT o una UPDATE hay una columna que esta varias veces.
-122 Una SELECT con GROUP BY contiene una columna que no está en GROUP BY. (La
cláusula SELECT con GROUP BY solo puede contener campos que estén en el GROUP
BY y funciones).
-136 El SORT no puede ser ejecutado cuando la longitud es mayor de 4000 bytes.
-150 El objeto del INSERT, DELETE, o UPDATE, no esta es una operación no permitida.
-151 La columna no puede ser actualizada porque esta incluida en la clave de una
partición de TABLAESPACIO o derivada de una función SQL o una expresión.
-155 La cláusula FROM es invalida porque una de las tablas es una vista que incluye un
grupo por cláusula.
-156 El ALTER, DROP TABLE, LOCK TABLE, o CREATE INDEX de la instrucción identifica
una vista.
-157 Solamente un tabla puede ser especificada en una cláusula dentro de una clave
ajena <nombre - objeto> este no es un nombre de tabla.
-158 El numero de columnas especificado para una vista no es el mismo que el numero
de columnas especificado en la cláusula SELECT.
-160 La opción con CHECK no puede ser utilizada para la vista especificada.
-164 No se tienen privilegios para crea una vista con la calificación de ‘WITH’.
-171 El tipo de dato, longitud o valor del argumento <NN> de <nombre - función> es
invalido.
-180 Problemas con datos tipo ‘DATE’ o ‘TIME’. WHERE con campo fecha IS NULL y no
se recupera el campo. Acceso a DB2 pasando mal las fecha.
-181 Problemas con datos tipo ‘DATE’ o ‘TIME’.
-183 Una operación aritmética con una fecha o el TIMESTAMP tiene como resultado
que no es valido dentro del rango de fechas.
-184 Una expresión aritmética con una fecha y una hora el contenido contiene un
parámetro en el registro.
-185 La opción local de formato ha sido usada como una fecha o una hora no local, la
salida ha sido instalada.
-187 Una referencia al corriente registro especial es invalido porque el reloj del MVS
esta mal o el parámetro esta fuera de rango.
-197 En una cláusula ‘ORDER BY’ se pone un nombre de columna calificado y se esta
usando la sentencia ‘UNION’ (Se solicita poniendo el numero de orden de la columna)
-203 La referencia a la columna es ambigua y no esta clara. Puede ocurrir que este
especificado mas de una vez.
-204 El objeto que queremos identificar no esta definido para el DB2 o falta por hacer
el sinónimo de la tabla.
Nombre no declarado. Localizar el nombre que aparece debajo de este numero. Crear
sinónimo del mismo, y hacer de nuevo el BIND.
Cuando creamos el sinónimo, se hace para el usuario con el que estemos trabajando
en el momento de dar el comando de creación al db2, aunque le digamos que es para
otro es en vano ya que el antepone el usuario al sinónimo a crear.
-207 La cláusula ORDER BY es invalida porque esta incluye un nombre de columna que
afecta al resultado de la unión.
-208 Uno de los campos utilizados en el ORDER BY no esta incluido en la SELECT. Todo
campo que aparece en un ORDER BY ha de ser recuperado.
-250 La localización del nombre no puede hacerse por no estar definido cuando se
procesa la liberación del objeto nombrado.
-301 Utilizamos una variable HOST que no puede ser usada ya que los tipos de datos
son incompatibles.
-303 El valor de una variable no se puede asignar a una variable HOST porque el tipo
de dato no es comparable.
+304 Un valor con el tipo de dato TYPE-DATO1 no puede ser asignado a una variable
HOST porque el valor no esta dentro del rango de la variable HOST en la posición
numero/posición con el tipo de dato DATO-TIPO2.
-304 Un valor no se puede ser asignado a una variable HOST porque el valor no esta
dentro del rango o no corresponde con el tipo de dato que puede contener la variable.
-305 El NULL no puede ser asignado a una variable HOST porque no especifica la
variable que debe ser.
- Es posible que se este haciendo una SELECT con valores directos en
lugar de haber hecho el MOVE a las variables HOST para la
selección.
- Es posible que se este haciendo una SELECT con una variable HOST
que deba tener NULL en caso de ser código de retorno 100, lo mejor
intentar eliminar esta variable del INTO si es posible.
- Este código de retorno es el +100 cuando se esta haciendo un SUM
en una instrucción DB2 es decir si no se encuentran filas que
tratar.
- Revisar por SPUFI la SELECT que se esta intentando realizar.
Al hacer una SELECT con MAX (o con MIN), y se ha puesto INTO. Se soluciona
poniendo una SELECT con una SUBSELECT por igual al MAX que queremos, es decir:
SELECT OPEFECOR
INTO OPEFECOR
FROM PFTOPER
WHERE OPEIDCER = :OPEIDCER
AND OPEFECOR = (SELECT MAX(OPEFECOR)
FROM PFTOPER
WHERE OPEIDCER = :OPEIDCER);
También puede producirse al hacer una SELECT con SUM y no se ha puesto la variable
nula que necesita asociada al mismo:
EXEC SQL
SELECT SUM(CERTICOM), SUM(CERTIDES)
INTO :WDSUMCOMI:WDNUMLL1, :WDSUMDESC:WDNULL2
FROM PFTCERTI
WHERE CERTIFOND = :CERTIFOND
AND CERTIFECH >= :WCFECDES
AND CERTIFECH <= :WCFECHAS;
-309 Un predicado es invalido porque hace referencia a una variable HOST con un
valor nulo.
-310 Las variables del WHEN que se utilizan, no tienen cargado ningún valor.
-401 Los operandos de una comparación u operación aritmética no son del mismo tipo.
Se selecciona un campo que no existe en la tabla.
Cuando estamos intentando modificar una fila por SPUFI o realizar una SELECT con un
valor alfanumérico y el campo a modificar es numérico.
-405 El literal numérico no puede ser usado como especificador porque esta fuera de
rango. Se ejecuta una 'SELECT' y se ha salido de rango uno de los literales. puede
ocurrir también que se haya olvidado las comillas en un campo alfanumérico.
-408 Un valor insertado o actualizado, no se puede comparar con el tipo de dato del
objeto de la columna.
-411 La clave no puede ser usada como se ha especificado, o no está bien definida.
-415 Las correspondientes columnas de los operadores de una unión no tienen idéntica
descripción de las columnas de la tabla.
-416 Un operador de una unión contiene una larga cadena en la columna que exceden
la longitud permitida.
-417 Un predicado de cadena debe de ser preparado incluyendo los parámetros
marcados en los operandos del mismo operador.
-418 Un predicado fue realizado conteniendo una cadena con parámetros inválidos.
-421 Los operandos de una unión no tienen los mismos números de columnas.
-503 Una columna no puede ser actualizada porque no esta identificada en la cláusula
UPDATE o en la declaración del cursor.
-508 El cursor identificado en el UPDATE o DELETE no esta posicionado sobre una fila.
-510 La tabla designada por el cursor de UPDATE o DELETE no puede ser modificada.
Se hace DELETE FOR CURSOR con ORDER BY.
-511 La cláusula FOR UPDATE o FOR DELETE no puede ser especificada porque la tabla
designada por el cursor no puede ser modificada.
-531 La clave primaria en una fila no puede ser actualizada porque esta tiene una o
más filas dependientes en conexión.
-532 La conexión <nombre -------> restringe el borrado de la fila con lugares x 'lugar -
numero'.
-534 La clave principal no pudo ser actualizada porque múltiples filas se actualizarían.
-536 El resultado del DELETE es invalido porque la tabla puede verse afectada por esta
operación.
-537 La clave primaria o clave ajena identifica la columna mas de una vez.
-540 La definición de la tabla esta incompleta porque no tiene clave principal indexada.
-542 La columna no puede ser una columna de la clave primaria porque contiene
valores NULL.
+561 Los privilegios del ANTER y el INDEX no pueden ser "públicos en todas las
localizaciones".
-603 Un único INDEX no puede ser creado porque la tabla contiene columnas que
están duplicadas respecto a los valores que identifican las columnas.
-614 El índice no puede ser creado porque la suma de las longitudes internas de la
columna identificada es mayor que el máximo permitido o tiene demasiadas columnas.
-620 La palabra clave IN (clave dentro del tipo) no esta permitida por un TABLESPACE
dentro de un fichero de base de datos.
-629 Instrucción que no se puede especificar así porque una clave ajena no puede
contener valores nulos.
-632 La tabla no puede ser definida ya que depende de la tabla porque fueron
borrados de la regla las restricciones
-638 La tabla no puede ser creada porque la definición de la columna esta perdida.
-639 Una columna nula o una clave extraña con un DELETE por costumbre no puede
ser una columna de una clave particionada.
-644 Hay un valor invalido para la clave para el tipo de estado. (IN)
-646 En la tabla no puede ser creada una PARTICION/TABLESPACE porque este ya esta
contenido en una tabla.
-647 El buffer común no puede ser especificado porque este no ha sido activado.
-660 El índice no puede ser creado en una partición de TABLESPACE porque la longitud
de la clave no ha sido especificada.
-661 El índice no puede ser creado en una partición de TABLESPACE porque el numero
de partes especificadas no es igual al numero de particiones del TABLESPACE.
-664 La longitud interna de los campos de la clave para el índice particionado excede
de la longitud impuesta por el índice director.
-666 El (comando – verbo - objeto) no puede ser ejecutado porque esta siendo
utilizado por otro proceso. Pendiente de una utilidad. Una vez esté COPY PENDING se
soluciona en comandos del DB”:
START DATABASE (BTxxxxxx) SPACENAM (Etxxxxxx) ACCESS (FORCE)
-668 La columna no puede ser añadida porque la tabla esta siendo editada por otro
procedimiento.
-669 Una tabla dentro de una partición de TABLESPACE no puede hacerse DROP
explícitamente.
-670 La longitud del registro de la tabla excede los limites del tamaño de la pagina.
-676 Una pagina de buffer común de 32K no puede ser utilizado para hacer un índice.
-677 Insuficiente memoria virtual para hacer la expansión del buffer común.
-678 El literal especificado para la clave indexada debe conformar a el tipo de dato o
corresponderse con la columna.
-802 Error excepcional que ha ocurrido durante la operación sobre el dato posición
(posición - numero). Se ha producido un OVERFLOW o una división por cero.
-811 El resultado de una SELECT en una tabla da más de una fila que cumple
la condición de búsqueda. Poner la clave completa para hacer el acceso.
También puede ser que estemos accediendo a una tabla de la cual haya mas
de un creador y no estemos especificando con cual de ellos queremos
trabajar. Poner por delante de la tabla el usuario creador y volver a submitir
el JOB.
Ejemplo: SELECT * FROM deidg2.contbach_plazo
-815 Un grupo por una cláusula implícita o explícita especificada en un comando
EMBEDDED SELECT o SUBQUERY de un predicado básico.
Al ejecutar una SELECT se ha encontrado con un GROUP BY y solo puede ir con
cursores. En QMF lo acepta, pero por programa no.
-817 El INSERT, UPDATE, DELETE, no puede ser ejecutado porque la transacción solo
pregunta al IMS/VS.
-818 El precompilador ha generado una LOAD con un modulo diferente del BIND en el
parámetro de tiempo, por lo que no es valido al construir el plan con el DBRM. Es
posible que no este puesta la librería en las líneas donde se especifica el programa y el
plan del mismo, esto debe ser especificado en algunas instalaciones aun en el caso de
tener el paso de STEPLIB.
Compilar nuevamente el programa.
Al no coincidir el cargable Y EL BIND del programa suele ocurrir que falte hacer el
BIND.
-819 La vista no puede ser procesada porque hay referencias que impiden hacerlo.
-820 El SQL no puede ser procesado porque la tabla del catalogo contiene un valor que
no es valido en esta versión.
-821 La vista ha sido borrada durante una migración. El creador del sinónimo
no puede ser resuelto.
-840 Hay muchos campos para devolver en la instrucción RETURN, INSERT o SELECT.
-901 Ejecución fallida por un error del sistema que no excluye la ejecución con éxito de
la subsecuencia SQL de instrucciones. Error al recuperar INDEX.
-902 Ejecución fallida por un error del sistema que no excluye la ejecución con éxito de
la subsecuencia SQL de instrucciones.
También puede producirse porque al hacer el BIND de algunos de los módulos que
utiliza el programa no se ha incluido a los módulos que llama el propio modulo.
-904 Ejecución fallida por no tener todos lo recursos que utiliza el programa, puede ser
posiblemente tener algún recurso migrado teniendo que hacer la recuperación del
mismo. Puede ser que haya un COPY PENDING. También puede producirse porque la
tabla este llena.
- Si ‘REASON 00C200F6’: reintentar, algo migrado o pillado…
- Si ‘REASON 00C90081’: al hacer una LOAD (si da error) se puede quedar la tabla con
disposición de COPY (no deja acceder); se puede solucionar desde la opción de
comandos del DB2:
START DATABASE (BTxxxxxx) SPACENAM (Etxxxxxx) ACCESS (FORCE) el SPACENAM
es el espacio para tablas de la que se quedó colgada.
- Si ‘REASON 00C90088’: Contención (DEADLOCK) El proceso está esperando un
recurso que esta utilizando otro proceso y a su vez este esta esperando el recurso que
el primer proceso esta utilizando.
- Si ‘REASON 00C90089’: Algo no disponible, puede haber un disco dañado.
- SI ‘REASON 00C9008E’: Contención (TIME-OUT). El objeto DB2 esta siendo utilizado
por otro proceso. Su proceso ha estado esperando hasta el tiempo límite y luego ha
sido cancelado.
- Si ‘REASON 00C90094’: Al intentar borrar de una tabla porque ha sido creada con
VSAM y el catálogo del DB2 no se ha enterado, hacer un DROP de la tabla y volverla a
crear.
- Si ‘REASON 00C90097’: Pendiente de una utilidad.
- Si ‘REASON 00D70014’: Un fichero ha intentado extenderse y no existe espacio en
disco. Un fichero ha tomado el máximo número de extensiones (119) y al intentar
coger una más ha provocado el error. (El espacio primario ha sido definido muy
pequeño).
- Si ‘REASON 00D70023’: Falta de espacio.
- SI ‘REASON 00D70024’: Existe en el catálogo pero no los ficheros, hacer un DROP del
espacio tabla o del índice y volver a crearlos.
-906 El comando del SQL no puede ser ejecutado porque esta función esta desechada
debido a un error prioritario.
-907 No es posible determinar si las actualizaciones del COMMIT hechas desde el
remoto han sido correctas o no.
-910 La sentencia SQL no puede acceder a un objeto sobre el que está pendiente una
sentencias DROP o ALTER.
-922 Fallo de la unión entre los diferentes módulos del programa, no se ha realizado
bien el BIND.
No se ha hecho una autorización PUBLIC en los programas del DB2.
También se puede producir cuando falta de hacer el GRAND BIND o GRAND EXECUTE
del plan.
También se puede producir al ejecutar un PGM BATCH y en el JCL se pone el
parámetro ssm=0001 con un valor incorrecto (indica que sistema DB2 se esta
utilizando). El plan es invalido o no esta operativo, hacer el bind.
-923 Fallo de los módulos del programa (puede faltar uno) posible falta de db2 en la
maquina. Volver a compilar el programa, comprobando lo que estamos haciendo por el
entorno adecuado, y generar el BIND al acabar bien la compilación.
La conexión no esta establecida. También puede producirse cuando lanzamos una
petición de un programa db2 (que pase por el ordenador de oficinas - real), y no tiene
el plan de aplicación para dicho ordenador.
-927 La INTERFEIS de lenguaje fue llamada cuando los medios de conexión no estaban
establecidos. El programa debería haber sido invocado bajo DSN.
Se intenta acceder a db2 y la conexión no se puede realizar (llamar a bases de datos).
También puede producirse cuando se realiza en el programa una llamada al db2 y se
ha compilado el programa incorrectamente, por lo que se debe revisar la compilación.
-1045 (EN MICROFOCUS) Un campo del registro tratado no esta en el formato que le
corresponde. EL error se produce cuando se compara con su igual en la tabla DB2 de
trabajo.
-1408 (EN MICROFOCUS) La tabla DB2 poseía un campo definido como TIMESTAMP y
-1451 daba problemas al intentar realizar una consulta al moverle
-14..(OTROS) LOW-VALUES a ese campo- También se obtuvieron al intentar insertar
en la tabla ya que la INSERT no tiene que llevar VALUE de ese campo y en el INTO han
de nombrarse todos los campos excepto el campo TIMESTAMP.
ERROES DE COMPILACION
878 Falta de memoria, será necesario poner un numero mayor en el parámetro región
del JCL o ponerlo si no existe.
Si al hacer un BIND nos sale un código de retorno 08 en el paso es muy posible que el
plan y el programa estén asociados a un usuario determinado, y nos diga que nos falta
autorización únicamente, sin mas mensajes.