67

Click here to load reader

Manual Cobol

  • Upload
    rossi

  • View
    119

  • Download
    35

Embed Size (px)

DESCRIPTION

Manual Cobol

Citation preview

  • COBOL

  • Aliatis Parque Empresarial Los Llanos Avda.Salteras, parc. 157, buzn 6 41909 Salteras (Sevilla)

    AUTOR: Alejandro Martnez Mez

    AO DE EDICIN: 2004

    Todas las marcas son registradas por sus respectivos propietarios.

  • Indice

    INTRODUCCIN COBOL.................................................................................. 7 CARACTERSTICAS DE LA PROGRAMACIN EN COBOL. ......................... 7 ESTRUCTURA DE UN PROGRAMA COBOL............................................... 9 Identification Division..................................................................... 9 Environment Division...................................................................... 9 Data Division. ............................................................................... 10 Procedure Division. ...................................................................... 12

    VARIABLES ......................................................................................... 13 Tipos de Datos: ............................................................................. 13 Almacenamiento Interno de Datos Numricos:............................. 14

    SENTENCIAS MS COMUNES................................................................ 16 Asignacin de valores a variables................................................. 16 Operaciones Aritmticas. .............................................................. 16 Instrucciones de Organizacin y Control...................................... 16

  • PROGRAMAS ESTRUCTURADOS .................................................................19 ORGANIZACIN DE LA WORKING-STORAGE SECTION.........................20 Uso de COPYs..............................................................................20 Uso de REDEFINE........................................................................21 Nombres de condicin. Nivel 88. ...................................................21

    ORGANIZACIN DE LA PROCEDURE DIVISION. ....................................21 Tratamiento de Ficheros................................................................23

    COMUNICACIN ENTRE PROGRAMAS. .................................................23 TABLAS DE MEMORIA..........................................................................24 TRATAMIENTO DE ERRORES................................................................26

    SENTENCIAS ESPECIALES COBOL .............................................................27 INITIALIZE.......................................................................................27 INSPECT............................................................................................27 STRING .............................................................................................28 UNSTRING........................................................................................28 ACCEPT.............................................................................................29

    INCLUSIN Y MANEJO DE SENTENCIAS DB2.............................................31 SENTENCIAS SQL................................................................................31 Seleccin........................................................................................32 Insercin. .......................................................................................32 Modificacin..................................................................................32 Borrado..........................................................................................32

    SQL EMBEBIDO EN PROGRAMAS COBOL. ..........................................33 Seleccin........................................................................................33 Insercin. .......................................................................................33 Modificacin..................................................................................34 Borrado..........................................................................................34 Declaracin de cursor. ..................................................................34 Apertura de cursor.........................................................................35 Fetch del cursor.............................................................................35 Modificacin de un registro del cursor. ........................................35 Cierre del cursor. ..........................................................................36 Control de errores SQL. ................................................................36

  • INTRODUCCIN IBM TSO.............................................................................. 37 DESPLAZAMIENTO POR LOS MENUS..................................................... 37 EDICIN DE FICHEROS......................................................................... 39 Comandos generales ..................................................................... 41 Comandos de lnea:....................................................................... 41

    UTILITIES............................................................................................ 43

    ANEXO: CODIGOS DE ERROR..................................................................................... 47 FILE STATUS. ...................................................................................... 48 SQL CODE. ......................................................................................... 49

  • Aliatis 7

    Introduccin COBOL

    Caractersticas de la programacin en Cobol.

    COBOL: Common Business Oriented Language.

    Es un lenguaje orientado a resolver los problemas normales de negocio: mantenimiento de ficheros secuenciales o indexados, mantenimiento de bases de datos, obtencin de informes, etc.

    La sintaxis de sus instrucciones es similar al lenguaje normal: verbos, instrucciones.

  • Aliatis 8

    No soporta clculos cientficos, o trigonomtricos, pero s las funciones de clculo decimal que se utilizan normalmente en procesos de negocio.

    Tambin ofrece soluciones para tratamiento de cadenas de caracteres y datos de tipo carcter.

    Los programas cobol deben estar codificados en 80 columnas (las 80 columnas forman una lnea del programa).

    1 - 6: n de secuencia. (lo introduce el editor).

    7: comentarios (*) o bien lnea de continuacin (-) en declaracin de variables (literales).

    8 - 11: rea A. aqu es donde se escriben los nombres de las divisiones, de las secciones, de los prrafos, los indicadores de FD (File Description) y los niveles de variables 01 y 77 (elementales).

    12 - 72: rea B. En ella se incluirn todas las instrucciones del programa, las lneas de las secciones y los niveles de variables mayores a 01.

    73 - 80: rea de identificacin. No se utiliza y por lo tanto es ignorada por el compilador

    rea A: deben empezar todas las declaraciones de Divisiones, Secciones, Prrafos.

  • Aliatis 9

    Estructura de un programa Cobol.

    Un programa Cobol se divide en 4 zonas o Divisiones.

    Cada Divisin tiene una funcin especfica dentro de la estructura del programa.

    A su vez, cada Divisin se puede dividir en Secciones, y dentro de ellas puede haber varios prrafos. Por ltimo dentro de cada prrafo puede haber instrucciones.

    Identification Division.

    Informacin General del Programa. Nombre del Programa: PROGRAM-ID. Fecha de creacin y compilacin, nombre del programador, etc. No se divide en secciones. IDENTIFICATION DIVISION. PROGRAM-ID. MANCLI. AUTHOR. ANDRES MONTES. INSTALLATION. WWW. REMARKS. Programa mantenimiento de fichero de clientes.

    Environment Division.

    Informacin del Hardware y Ficheros de Datos que se van a procesar. Tiene 2 secciones:

    Configuration Section: contiene los nombres de los ordenadores donde se van a compilar y procesar los programas.

  • Aliatis 10

    Input-Ouput Section: Dispositivos perifricos que se van a utilizar: discos, cintas, impresoras, etc. y adems asocia estos dispositivos con los ficheros.

    Contiene el prrafo File-Control que es obligatorio cuando se van a procesar ficheros en el programa: describe nombre fichero, organizacin (secuencial, indexado, etc.) y modo de acceso.

    ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. RMCOBOL. OBJECT-COMPUTER. RMCOBOL. SPECIAL-NAMES. DECIMAL-POINT IS COMMA. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT CLIENTES ASSIGN TO RANDOM "C:\DATOS\CLIENTES.DAT" ORGANIZATION INDEXED ACCESS DYNAMIC RECORD KEY KEY-CLI ALTERNATE RECORD KEY-CLI1 FILE STATUS STACLI. SELECT IMPRESORA ASSIGN TO PRINT "PRINTER".

    Data Division.

    Se definen todas las reas de datos o memoria que va a utilizar el programa. Tiene dos secciones:

    File Section: se define el formato y las caractersticas de los registros de los ficheros.

    Working-Storage Section: se definen todas las variables que se van a necesitar: Switches, contadores, acumuladores, tablas, etc.

    Linkage Section: Se describe el rea de comunicaciones con otros programas.

  • Aliatis 11

    DATA DIVISION. FILE SECTION. FD CLIENTES BLOCK CONTAINS 4 RECORDS RECORD CONTAINS 128 CHARACTERS LABEL RECORD STANDARD. 01 REG-CLIENTE. 02 KEY-CLI. 03 CLICOD PIC 9(4) COMP-6. 02 CLINOM PIC X(30). 02 CLIDIR PIC X(30). 02 CLIPOB PIC X(20). 02 CLIPRO PIC X(20). 02 CLINIF PIC X(9). 02 FILLER PIC X(17). FD IMPRESORA LABEL RECORD OMITTED. 01 LINEA PIC X(132). WORKING-STORAGE SECTION. 01 TABLA. 02 FILLER PIC X(12) VALUE "LUNMARMIEJUE" . 02 FILLER PIC X(9) VALUE "VIESABDOM" . 01 TABLAIDA REDEFINES TABLA. 02 ELEDIA PIC XXX OCCURS 7 TIMES. 01 FECHA PIC 9(8). 01 IMPORTE PIC S9(8)V99. 01 VALORES. 02 UNO PIC 99 VALUE 0. 02 DOS PIC 9(6) 02 TRES PIC 9(4)V99. 01 LINPA. 02 LIMPOR PIC ZZ.ZZZ.ZZZ,ZZ-. LINKAGE SECTION. 01 DATOS-RECIBIDOS. 03 MOVTOS290 PIC X(290). 03 RETORNO PIC X.

  • Aliatis 12

    Procedure Division.

    Contiene todas las instrucciones del programa, las lecturas de fichero, los clculos, las escrituras. PROCEDURE DIVISION. PERFORM 10000-INICIO-PROGRAMA PERFORM 20000-PROCESO-PROGRAMA PERFORM 30000-FIN-PROGRAMA. 10000-INICIO-PROGRAMA. INITIALIZE WEN-VBLES-ESQ WEA-VBLES-ESQ WSN-VARIABLES WSA-VARIABLES ...

  • Aliatis 13

    Variables

    Cada variable en Cobol debe tener asociado un Nivel.

    El Nivel 01 es el principal y define un campo simple, o bien un campo compuesto de otros campos de niveles superiores.

    Como casos particulares estn los niveles 77 (campos elementales que no forman parte de otro campo) y 88 (nombres de condicin).

    Tipos de Datos:

    Datos Alfanumricos

    Se definen con Picture X. 01 WK-TITULO PIC X(19) VALUE CURSO DE COBOL 2004.

    Justificado a la izq. 01 WK-TITULO PIC X(19) JUST RIGHT.

    Justificado a la derecha.

    Datos Numricos

    Se definen con Picture 9 (con/sin signo). 01 NUMERO PIC 9(7). 01 NUMERO2 PIC S9(5)V9 VALUE +12,4.

    El signo no ocupa memoria. Se almacena en hexadecimal a razn de byte por dgito de esta forma:

  • Aliatis 14

    F0 F0 F0 F1 F2 C4

    La C indica que es positivo, D negativo y F sin signo.

    Datos Alfabticos

    definen con Picture A. 01 WK-TITULO PIC A(14) VALUE CURSO DE COBOL.

    Almacenamiento Interno de Datos Numricos:

    USAGE DISPLAY

    Es la clusula por Defecto. Cada dgito ocupa un byte. Ej 9(5), 999V99, S9(3).

    01 VAR PIC S9(3)V99 VALUE +100.

    5 bytes en memoria: F1 F0 F0 F0 C0

    1 0 0 0 +0

    USAGE COMP-3

    Decimal empaquetado. Se almacenan 2 caracteres por Byte.

    01 VAR PIC S9(3)V99 COMP-3 VALUE 123,45.

    3 bytes en memoria: 12 34 5C

    Para calcular el nmero de bytes que ocupa se divide el nmero de dgitos por 2 y se suma 1.

    Ms eficiente en los clculos.

  • Aliatis 15

    USAGE COMP

    Almacenamiento Binario. Se utiliza sobre todo para valores numricos generados por el sistema, ndices internos de tablas.

    01 CODIGO PIC S9(3) COMP.

    Almacenamiento en memoria:

    1-4 dgitos: 2 bytes.

    5-9 dgitos: 4 bytes.

    10-18 dgitos: 8 bytes.

    Los negativos se almacenan como Complemento A2.

  • Aliatis 16

    Sentencias ms comunes.

    Asignacin de valores a variables. MOVE valor/variable-orig TO variable-dest. INITIALIZE variable.

    Operaciones Aritmticas.

    ADD/SUBTRACT/DIVIDE/MULTIPLY ADD valor/variable TO variable-dest [GIVING var3]. SUBTRACT valor/variable FROM variable-dest [GIVING var3]. DIVIDE valor/variable INTO variable-dest [GIVING var3] [REMAINDER cariable-resto]. MULTIPLY valor/variable BY variable-dest [GIVING var3].

    COMPUTE

    COMPUTE variable-dest = variable-dest + valor/var

    Instrucciones de Organizacin y Control

    Permiten variar el orden de ejecucin secuencial de las intrucciones, pudindose transferir el control a cualquier parte del programa.

    IF

    IF condicin accin/es.

  • Aliatis 17

    IF condicin accin/es ELSE accin/es END-IF

    PERFORM

    Es la instruccin bsica del Cobol.

    Vara el orden secuencial de instrucciones provocando un salto con retorno. Se invoca a un conjunto de instrucciones, uno o varios prrafos que se ejecutan tantas veces como se considere oportuno. Despus de la ejecucin de estas sentencias, el programa continua a partir de la instruccin posterior al Perform. NUM-PARRAFO. Instrucciones del prrafo. NUM-PARRAFO-EXIT. EXIT PERFORM NUM-PARRAFO THRU NUM-PARRAFO-EXIT. PERFORM NUM-PARRAFO THRU NUM-PARRAFO-EXIT repeticiones TIMES. PERFORM NUM-PARRAFO THRU NUM-PARRAFO-EXIT UNTIL Condicin.

    Primero evala la condicin y si se cumple se ejecuta el prrafo hasta que la condicin deje de cumplirse (do while).

  • Aliatis 18

    PERFORM Instrucciones UNTIL Condicin. PERFORM NUM-PARRAFO THRU NUM-PARRAFO-EXIT WITH TEST AFTER UNTIL Condicin.

    Primero se ejecuta el prrafo y luego vala la condicin. El bucle finaliza cuando deje de cumplirse (do until). PERFORM NUM-PARRAFO THRU NUM-PARRAFO-EXIT VARYING indice FROM campo1 BY incremento UNTIL Condicin.

    EVALUATE

    Permite la implementacin de alternativas mltiples. Evita la codificacin de IF anidados menos legibles. EVALUATE variable1 ALSO variable2 WHEN valor1 ALSO valor2 instrucciones WHEN valor3 ALSO valor4 instrucciones WHEN OTHER instrucciones END-EVALUATE. EVALUATE TRUE WHEN condicin instrucciones END-EVALUATE.

  • Aliatis 19

    Programas Estructurados

    En la programacin en general y en el COBOL en particular, un programa bien hecho no es solo el que funciona, sino que adems se le tiene que exigir que sea legible, comprensible, fcilmente modificable, y que sigan unas normas o costumbres que pueden variar dependiendo de la empresa.

  • Aliatis 20

    Organizacin de la Working-Storage Section.

    Los nombres de las variables numricas incluirn el prefijo WSN-.

    Los nombres de las variables alfanumricas incluirn el prefijo WSA-.

    Los nombres de las constantes (variables que no se modificarn durante el programa) incluirn el prefijo WSK-.

    Las variables numricas, alfanumricas y constantes se definirn por grupos. Se crearan las variables compuestas WSN-VARIABLES-NUMERICAS, WSA-VARIABLES-ALFANUMERICAS y WSK-CONSTANTES y dentro se definirn todas las variables elementales.

    Tambin se recomienda el uso de los siguientes elementos:

    Uso de COPYs.

    Son porciones de cdigo que se utilizan en varios programas y que se insertan en tiempo de compilacin.

    COPY miembro.

    Se ahorra tiempo de codificacin ya que solo es necesario escribir una vez las sentencias o definiciones.

    Se facilitan las modificaciones ya que para cambiar un grupo de sentencias o una estructura de fichero solo se tiene que modificar la Copy y recompilar los programas que la use.

  • Aliatis 21

    Uso de REDEFINE.

    Una variable redefine a otra variable. Se est reservando una nica zona de memoria. Segn nos interese accedemos con una u otra variable. 01 NOMAPE PIC X(20). 01 NOMAPE-RED REDEFINES NOMAPE. 10 NOMBRE PIC X(10). 10 APELLID PIC X(10).

    Nombres de condicin. Nivel 88.

    Facilitan le legibilidad del cdigo. 05 SW-PETICION PIC 9(5) VALUE ZEROS. 88 PETICION-CONSULTAR-1 VALUE 00136. 88 PETICION-CONSULTAR-2 VALUE 00137. 88 PETICION-CONSULTAR-3 VALUE 00139. 88 PETICION-ENCONTRADA VALUE 00136 00137 00139. 88 PETICION-INSERTAR VALUE 00138. 88 PETICION-MODIFICAR VALUE 00140. 88 PETICION-BORRAR-FISICO VALUE 00141.

    Organizacin de la Procedure Division.

    Los prrafos tendrn como prefijo un nmero que identifiquen de alguna forma a que parte del programa pertenecen.

    Un programa estructurado tiene un prrafo 1000-INICIO, un prrafo 3000-PROCESO y otro 5000-FIN.

  • Aliatis 22

    Por convenio, cada instruccin PERFORM tendr la clusula THRU. Se llamar al prrafo deseado y a otro prrafo que solo tiene la sentencia EXIT. PERFORM NUM-PARRAFO THRU NUM-PARRAFO-EXIT. NUM-PARRAFO. Instrucciones del prrafo. NUM-PARRAFO-EXIT. EXIT

    El tronco del programa ser este: PERFORM 1000-INICIO THRU 1000-INICIO-EXIT. PERFORM 3000-PROCESO THRU 3000-PROCESO-EXIT UNTIL Condicin. PERFORM 5000-FIN THRU 5000-FIN-EXIT.

    En 1000-INICIO se inicializarn las variables, se abrirn los ficheros, los cursores y se har la primera lectura del fichero (o lo que marque la duracin del programa).

    En 3000-PROCESO se tratar el registro ledo despus se repetir la lectura del fichero.

    En 5000-FIN se cerrar los ficheros, los cursores y se harn todas aquellas tareas no repetitivas que finalicen el proceso.

    Los prrafos que se llamen desde los anteriores se numerarn 1100-, 1200- si se llaman desde 1000-INICIO, 3100-, 3200- si se llaman desde 3000-PROCESO, etc.

  • Aliatis 23

    Tratamiento de Ficheros.

    Operaciones permitidas:

    OPEN, CLOSE, READ, WRITE, REWRITE, DELETE, START. FILE STATUS IS Variable (alfanumrico de dos caracteres) OPEN INPUT/OUTPUT/I-O/EXTEND Fichero CLOSE Fichero

    Secuenciales. READ Fichero (NEXT/PREVIOUS RECORD) INTO w-reg-fichero AT END Instruccin. WRITE reg-fichero-FD FROM w-reg-fichero.

    (Data Division, File Section, FD)

    Es importante chequear el estado de la FILE STATUS.

    Indexados. START nombre de fichero KEY (expresin) nombre de clave (INVALID KEY/NOT INVALID KEY sentencia) READ nombre de archivo (INTO descripcin) (KEY nombre de clave) (INVALID KEY/NOT INVALID KEY sentencia)

    Comunicacin entre Programas.

    El programa llamante invoca a la rutina mediante la instruccin:

  • Aliatis 24

    CALL nombre-rutina USING ident1, ... , identN.

    Las rutinas se codifican de forma diferente a los programas:

    En la Data Division deben tener la LINKAGE-SECTION: es donde se definen las variables del rea de comunicacin con el programa invocante. PROCEDURE DIVISION USING ident1,,identN.

    Final de ejecucin de la rutina: GOBACK.

    Tablas de memoria.

    Se definen mediante la utilizacin de la clusula OCCURS.

    Se asigna un nombre comn a varios campos contiguos

    La clusula OCCURS no se permite a nivel 01.

    Definicin 01 TABLA. 05 FILAS OCCURS 100 PIC X(13). 01 TABLA. 05 FILAS OCCURS 100. 10 CAMPO1 PIC X(10). 10 CAMPO2 PIC 9(3). Move Tabla to Variable. Move Filas(1) to Variable. Move campo1(1) to Variable.

  • Aliatis 25

    Tablas multidimensionales 01 TABLA-BIDIMENSIONAL. 05 MES OCCURS 12. 10 SEMANA OCCURS 4 PIC X(1). Move S TO SEMANA(10, 3).

    Tablas indexadas 01 TAB-EMPRE. 05 EMPRESAS-REG OCCURS 100 TIMES ASCENDING KEY IS CODEMPR INDEXED BY INDICE. 10 CODEMPR PIC S9(5)V COMP-3. 10 DIRECCIO PIC X(10).

    El ndice no hay que declararlo en Working. SET INDICE TO 1. SET INDICE UP BY 1.

    Si se busca con la opcin ALL la tabla debe estar indexada y ordenada. SET INDICE TO 1. SEARCH ALL FILAS AT END instrucciones WHEN condicin instrucciones

    END-SEARCH.

  • Aliatis 26

    Tratamiento de Errores.

    Se codificar un nico prrafo de tratamiento de errores. O si se prefiere un prrafo para los errores de tratamientos de ficheros y validaciones en general y otro para los errores de acceso a DB2.

    Tambin se puede crear una rutina para que la puedan llamar todos los programas del proyecto que estemos desarrollando.

    Antes de llamar a este prrafo se informar una serie de variables para indicar QUE tipo de fallo se ha producido (si el prrafo no puede averiguarlo por si solo) y DONDE se ha producido.

    Por ejemplo, se suele tener una variable WSA-PARRAFO donde se introduce el prrafo donde se ha producido el error. De este modo se puede averiguar fcilmente el origen del fallo. SELECT FICHERO ASSIGN TO F-FICHERO FILE STATUS IS FS-FICHERO. 02 FS-MASAUTOR PIC XX. 88 OPERACIN-OK VALUE 00. 88 FIN-ARCHIVO VALUE 10. 88 ARCHIVO-NO-ABIERTO VALUE 91. 3200-LECTURA-FICHERO. IF ARCHIVO-NO-ABIERTO MOVE '3200- LECTURA-FICHERO' TO WSA-ULT-PARRAFO PERFORM 5500-TRATAR-ERROR END-IF

    ...

    .

  • Aliatis 27

    Sentencias Especiales COBOL

    INITIALIZE

    Los campos numricos se inicializan a con ceros y los alfanumericos con blancos. INITIALIZE campo1 [, campo2, ...] [REPLACING NUMERIC/ALPHANUMERIC DATA BY campo3

    INSPECT

    Busca, cuenta, sustituye y convierte caracteres. INSPECT cadena TALLYING contador FOR CHARACTERS [BEFORE/AFTER INIITAL literal/campo] INSPECT cadena TALLYING contador FOR ALL/LEADING literal/campo [BEFORE/AFTER INIITAL literal/campo]

  • Aliatis 28

    INSPECT cadena REPLACING CHARACTERS BY [BEFORE/AFTER INIITAL literal/campo] INSPECT cadena REPLACING ALL/LEADING/FIRST literaL BY [BEFORE/AFTER INIITAL literal/campo] INSPECT cadena TALLYING... REPLACING ... INSPECT cadena CONVERTING literal/campo TO literal/campo [BEFORE/AFTER INIITAL literal/campo]

    STRING

    STRING VARA VARB DELIMITED BY SIZE/CARACTER INTO VARC STRING "HOY ES " DIA " DE " MES " DE " ANIO DELIMITED BY SIZE INTO FRASE.

    UNSTRING

    Separa cadenas. UNSTRING CAMPO-ORIGEN DELIMITED BY DELIM1 OR DELIM2 INTO CAMPO-FINAL-1 CAMPO-FINAL-2 CAMPO-FINAL-3

    CAMPO-FINAL-4 01 TEXTO PIC X(30) VALUE "MONTES ROBLES, ANDRES". UNSTRING TEXTO DELIMITED BY " " OR ", " INTO APELLI1 APELLI2 NOMBRE.

  • Aliatis 29

    ACCEPT

    Facilita la recuperacin de datos a travs de los propios recursos del sistema. ACCEPT variable FROM (DATE, DAY, DAY-OF-WEEK, TIME).

  • Aliatis 30

  • Inclusin y Manejo de Sentencias DB2

    Sentencias SQL.

    Las instrucciones en lenguaje S.Q.L. (Structured Query Language) permiten comunicar peticiones de acceso a datos al DB2. Son usadas por el administrador de la base de datos para crear y cambiar definiciones de datos, por el administrador del sistema en cuanto a autorizaciones a usuarios de los datos, y por el programador de aplicaciones para recuperar y actualizar datos.

  • Aliatis 32

    Seleccin. SELECT campo_1, campo_2,.., campo_n FROM creador.tabla WHERE campo_clave_1 = valor_1 AND/OR campo_clave_2 = valor_2

    Insercin. INSERT INTO creador.tabla (campo-1, campo-2,.., campo-n) VALUES valor_1, valor_2,.., valor_n

    Modificacin. UPDATE creador.tabla SET campo_clave_1 = valor_1, campo_clave_2 = valor_2 WHERE campo_clave_3 = valor_3 AND/OR campo_clave_4 = valor_4

    Borrado. DELETE FROM creador.tabla WHERE campo_clave_1 = valor_1 AND/OR campo_clave_2 = valor_2

  • Aliatis 33

    SQL embebido en programas COBOL.

    Se introducen las sentencias SQL entre las clusulas EXEC SQL y END-EXEC. Las variables donde se guardan los resultados van precedidas de :,

    Seleccin. EXEC SQL SELECT campo_1, campo_2,.., campo_n INTO :campo-1, :campo-2,..,:campo-n FROM creador.tabla WHERE campo_clave_1 = campo_clave_1 AND/OR campo_clave_2 = campo_clave_2 END-EXEC

    Si la clusula WHERE permitiera recuperar los valores de las columnas de dos o mas filas, DB2 devuelve un codigo de error en el SQLCODE (-811)y no recupera nada. Si ninguna fila cumple la condicin, DB2 devuelve un +100.

    Insercin. EXEC SQL INSERT INTO creador.tabla (campo-1, campo-2,.., campo-n) VALUES :campo_1, :campo_2,..,:campo_n END-EXEC

    Si el registro a insertar tiene una clave que ya existe en la tabla, se devuelve el cdigo de error -803.

  • Aliatis 34

    Modificacin. EXEC SQL UPDATE creador.tabla SET campo_clave_1 = campo_clave_1, campo_clave_2 = campo_clave_2 WHERE campo_clave_1 = campo_clave_1 AND/OR campo_clave_2 = campo_clave_2 END-EXEC

    Borrado. EXEC SQL DELETE FROM creador.tabla WHERE campo_clave_1 = campo_clave_1 AND/OR campo_clave_2 = campo_clave_2 END-EXEC

    Declaracin de cursor.

    El cursor permite a un programa recuperar un conjunto de filas, y luego procesar una fila cada vez.

    El DB2 construye una 'tabla de resultados' para guardar todas las filas recuperadas al ejecutar una instruccin SELECT, y utiliza el cursor para hacerlas disponibles al programa. Un cursor identifica la fila actual de la tabla de resultados, que el programa puede recuperar secuencial mente hasta que alcanza el fin de los datos (SQLCODE).

  • Aliatis 35

    Un programa puede utilizar varios cursores EXEC SQL DECLARE CURSOR nombre-cursor FOR SELECT campo_1, campo_2,..;campo_n FROM creador.tabla WHERE campo_clave_1 = campo_clave_1 AND/OR campo_clave_2 = campo_clave_2 FOR UPDATE OF campo_3 END-EXEC

    Apertura de cursor. EXEC SQL OPEN CURSOR nombre-cursor END-EXEC

    Fetch del cursor. EXEC SQL FETCH CURSOR nombre-cursor INTO :campo-1, :campo-2, .., :campo-n END-EXEC

    Modificacin de un registro del cursor. EXEC SQL UPDATE creador.tabla SET columna_1 = valor1, columna_2 = valor2 WHERE CURRENT OF nombre_del_cursor END-EXEC

  • Aliatis 36

    Cierre del cursor. EXEC SQL CLOSE CURSOR nombre-cursor END-EXEC

    Control de errores SQL. 03 SW-SQLCODE PIC S9(4) COMP. 88 DB2-OK VALUE +0. 88 DB2-NTFND VALUE +100. 88 DB2-NULOS VALUE -305. 88 DB2-EXISTE VALUE -803. ... MOVE SQLCODE TO SW-SQLCODE IF NOT DB2-OK IF DB2-NTFND DISPLAY 'REGISTRO NO ENCONTRADO EN LA TABLA

  • Introduccin IBM TSO

    Desplazamiento por los menus. ----------------- ISPF/PDF PRIMARY OPTION MENU ------------------ OPTION ===> USERID - T932006 0 ISPF PARMS - Specify terminal and user parameters TIME - 09:23 1 BROWSE - Display source data or output listings TERMINAL - 3278 2 EDIT - Create or change source data PF KEYS - 12 3 UTILITIES - Perform utility functions 4 FOREGROUND - Invoke language processors in foreground 5 BATCH - Submit job for language processing 6 COMMAND - Enter TSO Command, CLIST, or REXX exec 7 DIALOG TEST - Perform dialog testing 8 LM UTILITIES- Perform library administrator utility functions 9 OTHER - Other IBM and Non-IBM Products (DMS, TMS, INFO, etc.) 10 SCLM - Software Configuration and Library Manager I IOF - Interactive Output Facility C CHANGES - Display summary of changes for this release T TUTORIAL - Display information about ISPF/PDF X EXIT - Terminate ISPF using log and list defaults Enter END command to terminate ISPF. F1=HELP F2=SPLIT F3=END F4=RETURN F5=RFIND F6=RCHANGE F7=UP F8=DOWN F9=SWAP F10=LEFT F11=RIGHT F12=RETRIEVE

  • Aliatis 38

    Lo que en entorno Windows se realiza con la tecla RETURN aqu se logra con el CTRL derecho.

    La pulsacin RETURN hace como de tabulador, saltando por la pantalla de una opcin a la siguiente.

    La tecla F2 (SPLIT) abre una nueva sesin en la linea del cursor.

    La tecla F9 (SWAP) alterna entre una sesin y la anterior.

    Con el comando KEYS se puede redefinir todas estas teclas.

    El comando START abre una nueva secin a pantalla completa.

    El comando SWAP NEXT recorre las sesiones abiertas.

    El comando SWAP LIST saca la lista de sesiones abiertas para que el usuario elija a la que quiere ir.

    El comando SCRNAME nombre da un ttulo a la sesin actual para luego poder identificarla fcilmente.

    La tecla F3 sale de la ventana actual hasta cerrar la sesin.

    Para subir y bajar en una lista de elementos o en el editos se usa F7 (arriba) y F8 (abajo).

    El comando RETRIEVE permite repetir comandos anteriores sin tener que teclearlos de nuevo.

  • Aliatis 39

    Edicin de ficheros.

    Opcin 2.

    COMMAND ===> ISPF LIBRARY: PROJECT ===> T932006 GROUP ===> TEST2 ===> ===> ===> TYPE ===> TEXT MEMBER ===> (Blank or pattern for member selection list) OTHER PARTITIONED OR SEQUENTIAL DATA SET: DATA SET NAME ===> VOLUME SERIAL ===> (If not cataloged) DATA SET PASSWORD ===> (If password protected) PROFILE NAME ===> (Blank defaults to data set type) INITIAL MACRO ===> LMF LOCK ===> YES (YES, NO or NEVER) FORMAT NAME ===> MIXED MODE ===> NO (YES or NO) F1=HELP F2=SPLIT F3=END F4=RETURN F5=RFIND F6=RCHANGE F7=UP F8=DOWN F9=SWAP F10=LEFT F11=RIGHT F12=RETRIEVE

  • Aliatis 40

    Se selecciona un miebro de la lista.

    File Edit Edit_Settings Menu Utilities Compilers Test Help sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss VIEW DESA2.FUENTE.CICS(MFB30030) - 01.81 Columns 00001 00072 Command ===> Scroll ===> CSR 036500 ESQ **--------------------------------------------------------------** 036600 ESQ * * 036700 ESQ PROCEDURE DIVISION USING DFHEIBLK 036800 ESQ DFHCOMMAREA 036900 ESQ LK-STTRAERR. 037000 ESQ * * 037100 ESQ **---*****-----*****-----*****-----*****-----*****-----*****----** 037200 ESQ * NO SE REALIZARAN MODIFICACIONES EN ESTE PARRAFO * 037300 ESQ **---*****-----*****-----*****-----*****-----*****-----*****----** 037400 ESQ 037500 ESQ PERFORM 10000-INICIO-PROGRAMA 037600 ESQ 037700 ESQ PERFORM 20000-PROCESO-PROGRAMA 037800 ESQ 037900 ESQ PERFORM 30000-FIN-PROGRAMA. 038000 ESQ 038100 ESQ COPY MTPP0001. 038200 ESQ COPY MTPP0003. 038300 ESQ * 038400 ESQ **--------------------------------------------------------------**

  • Aliatis 41

    Comandos generales

    Se introducen en la lnea COMMAND

    FIND Busca cadenas

    SAVE Salva el fichero

    LIST Salta a una lnea determinada

    TOP Salta al inicio del fichero

    BOTTOM Salta al final del fichero

    UP Salta hacia atrs en el fichero

    CUT Copia un cierto nmero de lneas (de un fichero a otro)

    PASTE Pega las lneas copiadas

    DOWN Salta hacia atrs en el fichero

    RESTORE Deshace los comandos introducidos

    Comandos de lnea:

    Se introducen en la lnea a tratar.

    C Copiar

    A Despus

    B Antes

    COLS Muestra los nmeros de columnas

    D Borrar

    I Insertar

    M Mueve

    O Solapar

  • Aliatis 42

    R Repetir

    TS Dividir lnea

    X Excluir

    Desplazar

    () Desplazar

    Para copiar un nmero determinado de lneas de un fichero a otro, se edita el miembro destino, se pone A en la lnea donde se quiera aadir las lneas y se introduce el comando COPY.

    Menu RefList Utilities Help ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss Edit/View - Copy Command ===> More: + "Current" Data Set: E8985.SRCHFOR.LIST From ISPF Library: Project . . . DESA2 Group . . . . FUENTE . . . . . . . . . Type . . . . CICS Member . . . (Blank or pattern for member selection list) From Other Partitioned or Sequential Data Set: Data Set Name . . . 'E8985.SRCHFOR.LIST' Volume Serial . . . (If not cataloged) Data Set Password . . (If password protected) Line Numbers (Blank for entire member or sequential data set) First line . . . . Last line . . . . . Number type . . . . (Standard, ISPFstd, COBOL, or Relative)

  • Aliatis 43

    Utilities

    Opcin 3. Menu Help ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss Utility Selection Panel Option ===> 1 Library Compress or print data set. Print index listing. Print, rename, delete, browse, edit or view members 2 Data Set Allocate, rename, delete, catalog, uncatalog, or display information of an entire data set 3 Move/Copy Move, copy, or promote members or data sets 4 Dslist Print or display (to process) list of data set names. Print or display VTOC information 5 Reset Reset statistics for members of ISPF library 6 Hardcopy Initiate hardcopy output 7 Transfer Download ISPF Client/Server or Transfer data set 8 Outlist Display, delete, or print held job output 9 Commands Create/change an application command table * Reserved This option reserved for future expansion 11 Format Format definition for formatted data Edit/Browse 12 SuperC Compare data sets (Standard Dialog) 13 SuperCE Compare data sets Extended (Extended Dialog) 14 Search-For Search data sets for strings of data (Standard Dialog) 15 Search-ForE Search data sets for strings of data Extended (Extended Dialog)

  • Aliatis 44

    Lista de ficheros y libreras. Opcin 3,4. Menu RefList RefMode Utilities Help ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss Data Set List Utility Option ===> blank Display data set list P Print data set list V Display VTOC information PV Print VTOC information Enter one or both of the parameters below: Dsname Level . . . E8985.J* * CL Volume serial . . Data set list options Initial View . . . 1 1. Volume Enter "/" to select option 2. Space / Confirm Data Set Delete 3. Attrib / Confirm Member Delete 4. Total When the data set list is displayed, enter either: "/" on the data set list command field for the command prompt pop-up, an ISPF line command, the name of a TSO command, CLIST, or REXX exec, or "=" to execute the previous command.

  • Aliatis 45

    Al darle al ENTER obtenemos el listado de ficheros y libreras: Menu Options View Utilities Compilers Help ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss DSLIST - Data Sets Matching E8985.J* Row 1 of 1 Command ===> Scroll ===> CSR Command - Enter "/" to select action Message Volume ------------------------------------------------------------------------------- E8985.JCLLIB MSTD01 ***************************** End of Data Set list ****************************

    Aqu se puede copiar ficheros, renombrar, mover, etc.

    Mantenimiento de ficheros y librerias. Opcin 3,2. Menu RefList Utilities Help ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss Data Set Utility Option ===> A Allocate new data set C Catalog data set R Rename entire data set U Uncatalog data set D Delete entire data set S Short data set information blank Data set information V VSAM Utilities ISPF Library: Project . . DESA2 Group . . . FUENTE Type . . . . CICS Other Partitioned, Sequential or VSAM Data Set: Data Set Name . . . 'E8985.SRCHFOR.LIST' Volume Serial . . . (If not cataloged, required for option "C") Data Set Password . . (If password protected)

  • Aliatis 46

    Al darle al ENTER obtenemos el listado de ficheros y libreras: Data Set Information Command ===> Data Set Name . . . . : E8985.SRCHFOR.LIST General Data Current Allocation Management class . . : MIUSLIST Allocated blocks . : 4 Storage class . . . : STANDARD Allocated extents . : 1 Volume serial . . . : MSTD06 Device type . . . . : 3390 Data class . . . . . : **None** Current Utilization Organization . . . : PS Used blocks . . . . : 1 Record format . . . : FBA Used extents . . . : 1 Record length . . . : 133 Block size . . . . : 13566 1st extent blocks . : 4 Secondary blocks . : 100 Data set name type : SMS Compressible . : NO Creation date . . . : 2004/05/24 Referenced date . . : 2004/05/25 Expiration date . . : ***None***

  • Anexo .

    Codigos de Error

  • Aliatis 48

    File Status. ERROR EXPLICACION

    00 Operacin satisfactoria, todo bien. 10 Cuando se ha llegado al final del fichero y se quiere seguir leyendo. 22 Se intenta copiar un registro con una clave ya existente. 23 Cuando se hace un acceso directo a un registro inexistente. 24 No hay espacio en disco para realizar la operacin.

    30 Es un error grave de entrada/salida, suele ser ajeno a Cobol y mas concreto en cuanto a configuracin del sistema operativo sobre el que se est ejecutando, para solucionarlo deberemos prestar atencin a los dos dgitos siguientes al error.

    34 Igual que el 24 por falta de espacio en disco. 35 El archivo al que hace referencia no existe.

    39 La organizacin del fichero que se quiere abrir no coincide con su organizacin real interna. Suele pasar cuando se modifica una FD y el fichero contina siendo el mismo.

    41 Cuando intentamos abrir un archivo que ya est abierto. 42 Si intentamos cerrar un archivo que no esta abierto.

    43 Cuando se quiere borrar o reescribir un registro en un fichero abierto con acceso secuencial.

    47 Se quiere realizar alguna operacin que no corresponde con el modo de acceder al fichero. Si queremos hacer un READ o un START en un archivo que no ha sido abierto como INPUT o como I-O.

    48 Igual que el anterior, pero para el caso de querer escribir en un fichero que no esta abierto o no est abierto como I-O, OUTPUT o EXTEND.

    49 Cuando queremos borrar o reescribir en un fichero que no ha sido abierto como I-O o el fichero no est abierto.

    90 Cuando COBOL recibe un mensaje irreconocible, suele estar ocasionado por incompatibilidad entre los accesos a los ficheros, su forma de apertura y su modo de acceso.

    91 Igual que el 42. 92 Cuando intentamos leer, escribir, borrar, reescribir sobre un archivo no abierto. 93 El archivo est en conflicto con otro usuario.

    94 Igual que el 39, tiene muchsimas vertientes dependiendo de los dos dgitos siguientes que acompaan al error.

    98

    Grave error interno en la estructura del fichero, generalmente se suelen provocar cuando hay un corte elctrico o una salida brusca del programa y algn fichero indexado se ha quedado abierto, lo que suele ocurrir es problema de correspondencia entre claves y datos.

    99 Al borrar, leer o reescribir un registro que est siendo bloqueado por otro usuario.

  • Aliatis 49

    SQL Code.

    000 SUCCESSFUL EXECUTION. Ejecucion correcta. Warning SQLCODES - Codigos de atencion (Llevan signo) Warning SQLSTATE - Codigos de atencion (Estan entre parentesis) +100 ROW NOT FOUND FOR A FETCH, UPDATE OR DELETE, OR THE RESULT (02000) OF A QUERY IS AN EMPTY TABLE +162 TABLESPACE database-name.tablespace-name HAS BEEN PLACED IN CHECK PENDING +304 A VALUE WITH DATA TYPE data_type1 CANNOT BE ASSIGNED TO A HOST VARIABLE BECAUSE THE VALUE IS NOT WITHIN THE RANGE OF THE HOST VARIABLE IN POSITION position_number WITH DATA TYPE data_type2 +402 LOCATION location IS UNKNOWN +403 THE LOCAL OBJET REFERENCED BY THE CREATE ALIAS STATEMENT DOES NOT EXIST +558 THE WITH GRANT OPTION IS IGNORED BECAUSE GRANT IS TO PUBLIC +560 THE WITH GRANT OPTION IS IGNORED FOR UPDATE (COLUMN_LIST) +561 THE ALTER AND INDEX PRIVILEGES CANNOT BE GRANTED TO "PUBLIC AT ALL LOCATIONS" +625 THE DEFINITION OF TABLE table-name HAS BEEN CHANGED TO IN- COMPLETE +802 EXCEPTION ERROR exception_type OCURRED DURING operation_type OPERATION ON data_type DATA, POSITION position_number Error SQLCODES - Codigos de error (Con signo) Error SQLSTATE - Codigos de error (Entre parentesis) (01501) Al hacer SELECT o INSERT, hay alguna variable truncada, por no coincidir las longitudes -007 STATEMENT CONTAINS THE ILEGAL CHARACTER character -010 THE STRING CONSTANT BEGINNING string IS NOT TERMINATED -060 INVALID type SPECIFICATION: spec

  • Aliatis 50

    -084 UNACCEPTABLE SQL STATEMENT -101 THE STATEMENT IS TOO LONG OR TOO COMPLEX -102 THE LENGTH OF THE STRING CONSTANT BEGINNING string IS GREA- TER THAN 254 CHARACTERS OR 124 GRAPHIC CHARACTERS -103 literal IS AN INVALID NUMERIC LITERAL -104 STATEMENT CONTAINS THE INVALID CHARACTER OR TOKEN token-1. (37501) TOKEN token-2 WAS EXPECTED. Error sintactico. -105 INVALID STRING -107 THE NAMA name IS TOO LONG. MAXIMUN ALLOWABLE SIZE IS size -109 clause CLAUSE IS NOT PERMITTED -110 INVALID HEXADECIMAL LITERAL BEGINNING string -111 A COLUMN FUNCTION DOES NOT INCLUDE A COLUMN NAME -112 THE OPERAND OF A COLUMN FUNCTION IS ANOTHER COLUMN FUNCTION OR DISTINCT FOLLOWED BY AN EXPRESION -113 INVALID CHARACTER FOUND IN NAME: name -115 A PREDICATE IS INVALID BECAUSE THE COMPARISON OPERATOR ope- rator IS FOLLOWED BY A PARENTHESIZED LIST OR BY ANY OR ALL WITHOUT A SUBQUERY -117 THE NUMBER OF INSERT VALUES IS NOT THE SAME AS THE NUMBER (53002) OF OBJET COLUMNS -118 THE OBJET TABLE OR VIEW OF THE INSERT, DELETE, OR UPDATE STATEMENT IS ALSO IDENTIFIED IN A FROM CLAUSE -119 A COLUMN IDENTIFIED IN A HAVING CLAUSE IS NOT INCLUDE IN THE GROUP BY CLAUSE -120 A WHERE CLAUSE OR SET CLAUSE INCLUDES A COLUMN FUNCTION OR A WHERE CLAUSE INCLUDES A REFERENCE TO COLUMN [column-name] WHICH IS DERIVED FROM A COLUMN FUNCTION IN A VIEW DEFINITION -121 THE COLUMN name IS IDENTIFIED MORE THAN ONCE IN THE INSERT OR UPDATE STATEMENT

  • Aliatis 51

    -122 A SELECT STATEMENT WITH NO GROUP BY CLAUSE CONTAINS A COLUMN NAME AND A COLUMN FUNCTION IN THE SELECT CLAUSE OR A COLUMN NAME IS CONTAINED IN THE SELECT CLAUSE BUT NOT IN THE GROUP BY CLAUSE -125 AN INTEGER IN THE ORDER BY CLAUSE DOES NOT IDENTIFY A COLUMN OF THE RESULT -126 THE SELECT STATEMENT CONTAINS BOTH AN UPDATE CLAUSE AND AN ORDER BY CLAUSE -127 DISTINCT IS SPECIFIED MORE THAN ONCE IN A SUBSELECT -128 INVALID USE FOR NULL IN A PREDICATED -129 THE STATEMENT CONTAINS TOO MANY TABLE NAMES -131 STATEMENT WITH LIKE PREDICATE HAS INCOMPATIBLE DATA TYPES -132 A LIKE PREDICATE IS INVALID BECAUSE THE FIRST OPERANDO IS NOT A COLUMN OR THE SECOND OPERAND IS NOT A STRING -133 A COLUMN FUNCTION IN A SUBQUERY OF A HAVING CLAUSE IS INVA- LID BECAUSE IT INCLUDES AN EXPRESSION THAT APPLIES AN OPE- RATOR TO A CORRELATED REFERENCE -134 IMPROPER USE OF LONG STRING COLUMN column-name OR A HOST vaRIABLE OF MAXIMUM LENGTH GREATER THAN 254 -136 SORT CANNOT BE EXECUTED BECAUSE THE SORT KEY LENGTH IS GREA- TER THAN 4000 BYTES -137 RESULT OF CONCATENATION TOO LONG -138 THE SECOND OR THIRD ARGUMENT OF THE SUBSTR FUNCTION IS OUT OF RANGE -150 THE OBJET OF THE INSERT, DELETE, OR UPDATE STATEMENT IS A VIEW FOR WHICH THE REQUEST OPERATION IS NOT PERMITED -151 THE COLUMN column-name CONNOT BE UPDATE BECAUSE IT IS EITHER OR INCLUDED INTHE PARTITIONING KEY OF A PARTITIONES TABLES- PACE DERIVED FROM A SQL FUNCTION OR EXPRESSION -153 THE CREATE VIEW STATEMENT DOES NOR INCLUDE A REQUIRED COLUMN LIST -154 THE CREATE VIEW FAILED BECAUSE THE VIEW DEFINITION CONTAINS A UNION, OR UNION ALL, OR A REMOTE OBJETC

  • Aliatis 52

    -156 THE ALTER TABLE, DROP TABLE, LOCK TABLE, OR CREATER INDEX STATEMENT IDENTIFIES A VIEW THE STATEMENT DOES NOT IDENTIFY A TABLE -157 ONLY A TABLE NAME CAN BE SPECIFIED EN A FOREIGN KEY CLAUSE. object-name IS NOT THE NAME OF A TABLE -158 THE NUMBER OF COLUMNS SPECIFIED FOR THE VIEW IS NOT THE SAME AS THE NUMBER OF COLUMNS SPECIFIED BY THE SELECT CLAUSE -159 THE NAME SPECIFIED ON DROP VIEW IS A TABLE NAME -160 THE WITH CHECK OPTION CANNOT BE USED FOR THE SPECIFIED VIEW -161 THE INSERT OR UPDATE IS NOT ALLOWED BECAUSE A RESULTING ROW DOES NOT SATISFY THE VIEW DEFINITION -164 auth-id1 DOES NOT HAVE THE PRIVILEGE TO CREATE A VIEW WITH QUALIFICATION auth-id2 -170 THE NUMBER OF ARGUMENTS SPECIFIED FOR function-name IS INVA LID -171 THE DATA TYPE, LENGTH, OR VALUE OF ARGUMENT nn OF function- -name IS INVALID -172 function-name IS NOT A VALID FUNCTION NAME -180 THE STRING REPRESENTATION OF A DATETIME VALUE INVALID SYSN- (22007) TAX -181 THE STRING REPRESENTATION OF A DATETIME VALUE IS NOT A VA- LID VALUE -182 AN ARITHMETIC EXPRESSION WITH A DATETIME VALUE IS INVALID -183 AN ARITHMETIC OPERATION ON A DATE OR TIMESTAMP HAS A RESULT THAT IS NOT WITHIN THE VALID RANGE OF DATES -184 AN ARITHMETIC EXPRESSION WITH A DATETIME VALUE CONTAINS A PARAMETER MARKET -185 THE LOCAL FORMAT OPTION HAS BEEN USED WITH A DATE OR TIME AND NO LOCAL EXIT HAS BEEN INSTALLED -186 THE LOCAL DATE LENGTH OR LOCAL TIME LENGTH HAS BEEN ONCREA- SED AND EXECUTING PROGRAM RELIES ON THE OLD LENGTH -187 A REFERENCE TO A CURRENT DATA/TIME SPECIAL REGISTER IS INVA-

  • Aliatis 53

    LID BECAUSE THE MVS TOD CLOCK IS BAD OR THE MVS PARMTZ IS OUT OF RANGE -198 THE OPERAND OF THE PREPARE OR EXECUTE IMMEDIATE STATEMENT IS BLANCK OR EMPTY -199 ILLEGAL USE OF KEYWORD keyword TOKEN token-list WAS EXPEC- TED -203 A REFERENCE TO COLUMN column-name IS AMBIGUOUS -204 name IS AN UNDEFINED NAME. Posiblemente la tabla no tenga sinomimo. -205 column-name IS NOT A COLUMN OF TABLE table-name -206 column-name IS NOT A COLUMN OF AN INSERTED TABLE OR AN TA- BLE IDENTIFIED IN A FROM CLAUSE -207 THE ORDER BY CLAUSE IS INVALID BECAUSE IT INCLUDES A COLUMN NAME BUT IT APPLIES TO THE RESUL OF A UNION OR UNION ALL -208 THE ORDER BY CLAUSE IS INVALID BECAUSE COLUMN name IS NOT PART OF THE RESULT TABLE -219 THE REQUIRED EXPLANATION TABLE table-name DOES NOT EXIST -220 THE COLUMN column-name IN EXPLANATION TABLE table-name IS NOT DEFINED PROPERLY -221 "SET OF OPTIONAL COLUMNS" IS EXPLANATION TABLE table-name IS INCOMPLETE. OPTIONAL COLUMN column-name IS MISSING -250 THE LOCAL LOCATION NAME IS NOT DEFINED WHEN PROCESSING A THREE-PART OBJECT NAME -251 TOKEN name IS NOT VALID -301 THE VALUE OF A HOST VARIABLE CANNOR BE USED AS SPECIFIED BECAUSE OF ITS DATA TYPE -302 THE VALUE OF AN INPUT VARIABLE IS TOO LARGE FOR THE TARGET COLUMN -303 A VALUE CANNOT BE ASSIGNED TO A HOST VARIABLE BECAUSE THE DATA TYPES ARE NOT COMPARABLE -304 A VALUE WITH DATA TYPE data_type1 CANNOT BE ASSIGNED TO A HOST VARIABLE BECAUSE THE VALUES IS NOT WITHIN THE RANGE OF

  • Aliatis 54

    THE HOST VARIABLE IN POSITION position_numer WITH DATA TYPE data_type2. -305 THE NULL VALUE CANNOT BE ASSIGNED TO A HOST VARIABLE BECAUSE NO INDICATOR VARIABLE IS SPECIFIED -309 A PREDICATE IS INVALID BECAUSE A REFERENCED HOST VARIABLE HAS THE NULL VALUE -311 THE INDICATED LENGTH OF A HOST VARIABLE IS NEGATIVE -312 UNDEFINED OR UNUSUABLE HOST VARIABLE variable-name -313 THE NUMBER OF HOST VARIABLES SPECIFIED IS NOT EQUAL TO THE NUMBER OF PARAMETER MARKES -314 THE STATEMENT CONTAINS AN AMBIGUOUS HOST VARIABLE REFERENCE -401 THE OPERANDS OF AN ARITHMETIC OR COMPARISON OPERATION ARE NOT COMPARABLE -402 AN ARITHMETIC FUNCTION OR OPERATOR arith-fop IS APPLIED TO CHARACTER OR DATATIME DATA -404 THE UPDATE OR INSERT STATEMENT SPECIFIES A STRING THAT IS TOO LONG column-name -405 THE NUMERIC LITERAL literal CANNOT BE USED AS SPECIFIED BE- CAUSE IT IS OUT OF RANGE -406 A CALCULATED OR DERRIVED NUMERIC VALUE IS NOT WITHIN THE RANGE OF ITS OBJECT COLUMN -407 AN UPDATE OR INSERT VALUE IS NULL, BUT THE OBJET COLUMN co- lumn-name CANNOT CONTAIN NULL VALUES. La tabla no tiene las columnas que queremos insertar. -408 AN UPDATE OR INSERT VALUE IS NOT COMPARABLE WITH THE DATA TYPE OF ITS OBJECT COLUMN column-name -409 INVALID OPERAND OF A COUNT FUNCTION -410 THE FLOATING POINT LITERAL literal CONTAINS MORE THAN 30 CHARACTERS -411 THE CURRENT DATETIME OR USER KEYWORD CON NOT BE USED AS SPE- CIFIED -412 THE SELECT CLAUSE OF A SUBQUERY SPECIFIES MULTIPLE COLUMNS

  • Aliatis 55

    -413 OVERFLOW OCCURRED DURING DATA TYPE CONVERRSION -414 THE NUMERIC OR DATATIME COLUMN column-name IS SPECIFIED IN A LIKE PREDICATE -415 THE CORRESPONDING COLUMNS, column-number, THE OPERANDS OF A UNION OR A UNION ALL DO NOT HAVE COMPARABLE COLUMN DESCRIP- TIONS -416 AN OPERAND OF A UNION CONTAINS A LONG STRING COLUMN -417 A STATEMENT STRING TO BE PREPARED INCLUDES PARA METER MARKES AS THE OPERANDS OF THE SAME OPERATOR -418 A STATEMENT STRING TO BE PREPARED CONTAINS AN INVALID USE OF PARAMETER MARKES -419 THE DECIMAL DIVIDE OPERATION IS INVALID BECAUSE THE RESULT WOULD HAVE A NEGATIVE SCALE -421 THE OPERANDS OF A UNION ALL DO NOT HAVE THE SAME NUMBER OF COLUMNS -501 THE CURSOR IDENTIFIED IN A FECH OR CLOSE STATEMENT IS NOT (24501) OPEN. El cursor no esta abierto (select) -502 THE CURSOR IDENTIFIED IN AN OPEN STATEMENT IS ALREADY OPEN (24502) El cursor ya esta abierto (select) -503 A COLUMN CANNOT BE UPDATE BECAUSE IT IS NOT IDENTIFIED IN (56012) THE UPDATE CLAUSE OF THE SELECT STATEMENT OF THE CURSOR No se puede actualizar una columna porque no aparece en la sentencia FOR UPDATE OF del cursor -504 THE CURSOR NAME cursor-name IS NOT DEFINED (52008) El cursor no esta definido -507 THE CURSOR IDENTIFIED IN THE UPDATE OR DELETE STATEMENT IS (24501) NOT OPEN El cursor no esta abierto (update) -508 THE CURSOR IDENTIFIED IN THE UPDATE OR DELETE STATEMENT IS (24504) NOT POSITIONED ON A ROW El cursor no esta posicionado en una fila (update) -509 THE TABLE IDENTIFIED IN THE UPDATE OR DELETE STATEMENT IS (53027) NOT THE SAME TABLE DESIGNATED BY THE CURSOR

  • Aliatis 56

    La tabla indicada en el update o select no es la misma que la especificada en el cursor. -510 THE TABLE DESIGNATED BY THE CURSOR OF THE UPDATE OR DELETE (53028) STATEMENT CANNOT BE MODIFIED La tabla designada por el update o delete del cursor no se puede modificar -511 THE FOR UPDATE CLAUSE CANNOT BE SPECIFIED BECAUSE THE TABLE (53029) DESIGNATED BY THE CURSOR CANNOT BE MODIFIED No se puede especificar la clausula FOR UPDATE OF porque la tabla no se puede modificar -512 STATEMENT REFERENCE TO REMOTE OBJECT IS INVALID -513 THE ALIAS alias-name MUST NOT BE DEFINED ON ANOTHER LOCAL OR REMOTE ALIAS -514 THE CURSOR cursor-name IS NOT IN A PREPARED STATE -516 THE DESCRIBE STATEMENT DOES NOT IDENTIFY A PREPARED STATE- MENT -517 CURSOR cursor-name CANNOT BE USED BECAUSE ITS STATEMENT NA- ME DOES NOR IDENTIFY A PREPARED SELECT STATEMTENT -518 THE EXECUTE STATEMENT DOES NOT IDENTIFY A VALID PREPARED STATEMENT -519 THE PREPARE STATEMENT IDENTIFIES THE SELECT TEMENT OF THE OPENED CURSOR cursor-name -530 THE INSERT OR UPDATE VALUE OF FOREIGN KEY constraint-name (23503) IS INVALID La clave ajena no existe como clave primaria -531 THE PRIMARY KEY IN A PARENT ROW CANNOT BE UPDATE BECAUSE IT (23504) HAS ONE OR MORE DEPENDENT ROWS IN A RELATIONSHIP contraint- -name No se puede actualizar la clave primaria por tener filas re- lacionadas en la tabla hijo. -532 THE RELATIONSHIP contraint-name RESTRICTS THE DELETION OF (23504) ROW WITH RID X'rid-number' No se puede borrar la clave primaria por tener filas rela- cionadas en la tabla hijo. -533 INVALID MULTIPLE-ROW INSERT

  • Aliatis 57

    -534 THE PRIMARY KEY CANNOT BE UPDATED BECAUSE OF MULTIPLE-ROW (21502) UPDATE Se intenta actualizar multiples filas de la clave primaria en un solo update. -535 INVALID UPDATE OR DELETE WITH WHERE CURRENT OF -536 THE DELETE STATEMENT IS INVALID BECAUSE TABLE table-name (56104) CAN BE AFFECTED BY THE OPERATION Hay una tabla descendiente afectada en un proceso de borra- do en cascada. -537 THE PRIMARY KEY OR FOREIGN KEY CLAUSE IDENTIFIES COLUMN column-name MORE THEN ONCE -538 FOREIGN KEY name DOES NOT CONFORM TO THE DESCRIPTION OF THE PRIMARY KEY OF TABLE table-name -539 TABLE table-name DOES NOT HAVE A PRIMARY KEY -540 THE DEFINITION OF TABLE table-name IS INCOMPLETE BECAUSE IS DOES NOT HAVE A PRIMARY INDEX -541 FOREIGN KEY name IS INVALID BECAUSE IT IS A DUPLICATE REFE- RENTIAL CONSTRAINT -542 column-name CANNOT BE A COLUMN OF A PRIMARY KEY BECAUSE IT CAN CONTAIN NULL VALUES -551 auth-id DOES NOT HAVE THE PRIVILEGE TO PERFORM OPERATION operation ON OBJET objet-name Cuando se intenta hacer un bing de un programa que no es de la entidad (ejem-caser) hay que hacer : SET CURRENT SQLID='BRB0902'; GRANT BING, EXECUTE ON PLAN ________ TO PUBLIC nom.prog. -552 auth-id DOES NOT HAVE THE PRIVILEGE TO PERFORM OPERATION operation -553 auth-id SPECIFIED IS NOT ONE OF THE VALID AUTHORIZATION IDS -554 AN AUTHORIZATION ID CANNOT GRANT A PRIVILEGE TO ITSELF -555 AN AUTHORIZATION ID CANNOT REVOKE A PRIVILEGE FROM ITSELF -556 A PRIVILEGE CANNOT BE REVOKED BECAUSE IT IS NOT POSSESSED BY auth-id

  • Aliatis 58

    -557 INCONSISTENT GRAND/REVOKE KEYWORD keyword PERMITED KEYWORDS ARE keyword-list -558 INVALID CLAUSE OR COMBINATION OF CLAUSES ON A GRANT OR RE- VOKE -559 ALL AUTHORIZATION FUNCTIONS HAVE BEEN DISABLED -571 THE STATEMENT WOULD RESULT IN A MULTIPLE SITE UPDATE -601 THE NAME OF THE OBJET BE CREATED IS IDENTICAL TO THE EXIS- TING NAME name OF THE OBJET TYPE objet-type El nombre de la tabla o de la vista esta mal definido. -602 TOO MANY COLUMNS SPECIFIED IN A CREATE INDEX -603 A UNIQUE INDEX CANNOT BE CREATED BECAUSE THE TABLE CONTAINS ROWS WHICH ARE DUPLICATES WITH RESPECT TO THE VALUES OF THE IDENTIFIED COLUMNS -604 A COLUMN DEFINITION SPECIFIES AN INVALID LENGTH PRECISION, OR SCALE ATTRIBUTE -607 OPERATION operation IS NOT DEFINED FOR SYSTEM TABLES -612 column-name IS A DUPLICATE COLUMN NAME -613 THE PRIMARY KEY IS TOO LONG OR HAS TOO MANY COLUMNS -614 THE INDEX CANNOT BE CREATED BECAUSE THE SUM OF THE INTERNAL LENGTHS OF THE IDENTIFIED COLUMNS IS GREATER THEN THE ALLO- WABLE MAXIMUN -616 obj-type1 obj-name1 CANNOT BE DROPPED BECAUSE IS REFERENCED BY obj-type2 obj-name2 -618 OPERATION operation IS NOT ALLOWED ON SYSTEM DATA BASES -619 OPERATION DISALLOWED BECAUSE THE WORKFILE DATA BASE IS NOT STOPPED -620 KEYWORD keyword IN stmt type STATEMENT IS NOT PERMITTED FOR A TABLESPACE IN THE WORKFILE DATA BASE -621 DUPLICATE DBID dbid WAS DETECTED AND PREVIOUSLY ASSIGNED TO database-name -623 A CLUSTERING INDEX ALREADY EXIST ON TABLE table-name -624 TABLE table-name ALREADY HAS A PRIMARY KEY

  • Aliatis 59

    -625 TABLE table-name DOES NOT HAVE AN INDEX TO ENFORCE THE UNI- QUENESS OF THE PRIMARY KEY -626 THE ALTER STATEMENT IS NOT EXECUTABLE BECAUSE THE PAGESET IS NOT STOPPED -627 THE ALTER STATEMENT IS INVALID BECAUSE THE PAGESET HAS USER- -MANAGED DATA SETS -628 A SEGMENTED TABLESPACE MAY NOT BE PARTITIONED -629 SET NULL CANNOT BE SPECIFIED BECAUSE FOREIGN KEY name CANNOT CONTAIN NULL VALUES -631 FOREIGN KEY name IS TOO LONG OR HAS TOO MANY COLUMNS -632 THE TABLE CANNOT BE DEFINED AS A DEPENDENT OR table-name BECAUSE OF DELETE RULE RESTRICTIONS -633 THE DELETE RULE MUST BE delete-rule -634 THE DELETE RULE MUST NOT BE CASCADE -635 THE DELETE RULES CANNOT BE DIFFERENT OR CANNOT BE SET NULL -636 THE PARTITIONING KEYS ARE NOT SPECIFIED IN ASCENDING OR DESCENDING ORDER -637 DUPLICATE keyword KEYWORD (lectura) -638 TABLE table-name CANNOT BE CREATED BECAUSE COLUMN DEFINI- TION IS MISSING -639 A NULLABLE COLUMN OF A FOREIGN KEY WITH A DELETE RULE OF SET NULL CANNOT BE A COLUMN OF THE KEY OF A PARTITIONED INDEX -644 INVALID VALUE SPECIFIED FOR KEYWORD keyword IN stmt-type STATEMENT -646 TABLE table-name CANNOT BE CREATED IN PARTITIONED/DEFAULT TABLESPACE tspace-name BACAUSE IT ALREADY CONTAINS A TABLE -647 BUFFERPOOL bp-name CANNOT BE SPECIFIED BECAUSE IT HAS NOT BEEN ACTIVATED -652 VIOLATION OF INSTALLATION DEFINED EDIT OR VALIDATION PROCE- DURE proc-name -653 TABLE table-name IN PARTITIONED TABLESPACE tspace-name IS

  • Aliatis 60

    NOT AVAILABLE BECAUSE ITS PARTITIONED INDEX HAS NOT BEEN CREATED -660 INDEX index-name CANNOT BE CREATED ON PARTITIONED TABLESPACE tspace-name BECAUSE KEY LIMITS ARE NOT SPECIFIED -661 INDEX index-name CANNOT BE CREATED ON PARTITIONED TABLESPACE tspace-name BECAUSE THE NUMBER OF PART SPECIFICATIONS IS NOT EQUAL TO THE NUMBER OF PARTITIONS OF THE TABLASPACE -662 A PARTITIONED INDEX CANNOT BE CREATED ON A NON-PARTITIONED TABLESPACE tspace-name -663 THE NUMBER OF KEY LIMIT VALUES IS EITHER ZERO, OR GREATER THAN THE NUMBER OF COLUMNS IN THE KEY OF INDEX index-name -664 THE INTERNAL LENGTH OF THE LIMIT-KEY FIELDS FOR THE PARTI- TIONED INDEX index-name EXCEEDS THE LENGTH IMPOSED BY THE INDEX MANAGER -665 THE PART CLAUSE OF AN ALTER STATEMENT IS OMITTED OR INVALID -666 stmt-verb object CANNOT BE EXECUTED BECAUSE A UTILITY IS IN PROGRESS -667 THE CLUSTERING INDEX FOR A PARTITIONED TABLESCE CANNOT BE EXPLICITLY DROPPED -668 THE COLUMN CANNOT BE ADDED TO THE TABLE BECAUSE THE TABLE HAS AN EDIT PROCEDURE -669 A TABLE IN A PARTITIONED TABLESPACE CANNOT BE EXPLICITLY DROPPED -670 THE RECORD LENGTH OF THE TABLE EXCEEDS THE PAGE SIZE LIMIT -671 THE BUFFERPOOL ATTRIBUTE OF THE TABLESPACE CAN NOT BE AL- READY AS SPECIFIED BECAUSE IT WOULD CHANGE THE PAGE SIZE OF THE TABLESPACE -676 A 32K PAGE BUFFERPOOL MAY NOT BE USED FOR AN INDEX -677 INSUFFICIENT VIRTUAL STORAGE FOR BUFFERPOOL EXPANSION -678 THE LITERAL literal SPECIFIED FOR THE INDEX LIMIT KEY MUST CONFORM TO THE DATA TYPE data-type OF THE CORRESPONDING CO- LUMN column-name -679 THE OBJET name CANNOT BE CREATED BECAUSE A DROP IS PENDING

  • Aliatis 61

    ON THE OBJET -680 TOO MANY COLUMNS SPECIFIED FOR A TABLE -681 COLUMN column-name IN VIOLATION OF INSTALLATION DEFINED FIELD PROCEDURE. RT: return-code, RS: reason-code, MSG:mes- sage-token -682 FIELD PROCEDURE procedure-name COULD NOT BE LOADED -683 INVLID COLUMN TYPE FOR FIELDPROC OPTION, column-name -684 THE LENGTH OF LITERAL LIST BEGINING string IS TOO LONG -685 INVALID FIEL TYPE, column-name -686 COLUMN DEFINED WITH A FIELD PROCEDURE CAN NOT COMPARE WITH ANOTHER COLUMN WITH DIFFERENT FIELD PROCEDURE -687 FIELD TYPES INCOMPARABLE -688 INCORRECT DATA RETURNED FROM FIELD PROCEDURE, column-name, msgno -802 EXCEPTION ERROR 'exception_type' HAS OCCURRED DURING 'ope- ration_type' OPERATION ON 'data_type' DATA, POSITION 'posi- tion_number' -803 ONE OR MORE INSERT OR UPDATE VALUES ARE INVALID BECAUSE THE (23505) OBJECT COLUMNS ARE CONSTRAINED SUCH THAT NO TWO ROWS OF THE TABLE CAN BE DUPLICATES WITH RESPECT TO THE VALUES OF THOSE COLUMNS. Se esta insertando o actualizando una clave unica con valores duplicados. Clave duplicada. -804 AN ERROR WAS FOUND IN THE APPLICATION PROGRAM INPUT PARAME- TERS FOR THE SQL STATEMENT -805 PROGRAM NAME program-name NOT FOUND IN PLAN plan-name (51002) El programa no esta relacionado con el plan. Falta hacer Bind. -811 THE RESULT OF AN EMBEDDED SELECT STATEMENT IS A TABLE OF MO- (21000) RE THAN ONE ROW, OR THE RESULT OF THE SUBQUERY OF A BASIC PREDICATE IS MORE THAN ONE VALUE -815 A GROUP BY OR HAVING CLAUSE IS IMPLICITLY OR EXPLICITLY SPECIFIED IN AN ENBEDDED SELECT STATEMENT OR A SUBQUERY PF A BASIC PREDICATE -817 THE INSERT, UPDATE, DELETE, DDI, OR AUTHORIZATION STATEMENT

  • Aliatis 62

    CANNOT BE EXECUTED BECAUSE THE IMS/VS TRANSATION IS INQUIRY ONLY -818 THE PRECOMPILER-GENERATED TIMESTAMP x IN THE LOAD MODULE IS (51003) DIFFERENT FROM THE BIND TIME-STAMP y BUILT FROM THE DBRM El timestamp del plan y del modulo no coinciden. No se ha dado new copy. -819 THE VIEW CANNOT BE RECREATED BECAUSE IT REFERENCES A VIEW THAT COULD NOT BE RECREATED -820 THE SQL STATEMENT CANNOR BE PROCESSED BECAUSE calalog-table CONTAINS A VALUE THAT IS NOT VALID IN THIS RELEASE -821 VIEW 'view-creator'.'view-name' HAS BEEN DROPPED DURING MI GRATION. CREATOR 'synonym-creator' OF SYNONYM 'synonym-name' COULD NOT BE RESOLVED -822 THE SQLDA CONTAINS AN INVALID DATA ADDRESS OR INDICATOR VA RIABLE ADDRESS -840 TOO MANY ITEMS RETURNED IN A SELECT OR INSERT LIST -901 UNSUCCESSFUL EXECUTION CAUSED BY A SYSTEM ERROR THAT DOES NOT PRECLUDE THE SUCCESSFUL EXECUTION OF SUBSEQUENT SQL STATEMENTS -902 UNSUCCESSFUL EXECUTION CAUSED BY A SYSTEM ERROR THAT PRECLU- DES THE SUCCESSFUL EXECUTION OF SUBSEQUENT SQL STATEMENTS -904 UNSUCCESSFUL EXECUTION CAUSED BY AN ANAVAILABLE RESOURCE (57011) REASON reason-code, TYPE OF RESOURCE resource-type, AND RE- SOURCE NAME resource-name Recurso no disponible. Puede estar el tablespace pillado. -905 UNSUCCESSFUL EXECUTION DUE TO RESOURCE LIMIT BEING EXCEEDED, RESOURCE NAME = resource-name LIMIT = limit-amount1 CPU SE- CONDS (limit-amount2 SERVICE UNITS) DERIVED FROM limit-so- urce -906 THE SQL STATEMENT CANNOT BE EXECUTED BECAUSE THIS FUNCTION IS DISABLED DUE TO A PRIOR ERROR -907 UNABLE TO DETERMINE IF THE ATTEMPT TO COMMIT UPDATES MADE AT A REMOTE SITE WAS SUCCESSFUL OR NOT -909 THE OBJECT HAS BEEN DELETED -910 THE SQL STATEMENT CANNOT A ACCESS AN OBJECT ON WHICH A DROP

  • Aliatis 63

    OR ALTERL IS PENDING -911 THE CURRENT UNIT OF WORK HAS BEEN ROLLED BACK DUE TO DEAD (40000) LOCK OR TIMEOUT. REASON reason-code, TYPE OF RESOURCE resor- ce-type, AND RESOURCE NAME resource-name. Timeout. Recurso no disponible, alguien esta utilizando la misma ta- bla en la misma transaccion, hay que esperar un poco y vol- verlo a intentar. -913 UNSUCCESSFUL EXECUTION CAUSED BY DEADLOCK OR TIMEOUT. REASON CODE reason-code, TYPE OF RESOURCE resource-type, AND RE- SOURCE NAME resource-name -922 CONNECTION AUTHORIZATION FAILURE: error-type ERROR Poner USER=SYSDBP. -923 CONNECTION NOT ESTABLISHED: DB2 condition REASON reason-co- (57015) de, TYPE resorce-type, NAME resource-name. Posiblemente se ha perdido el bing, volver ha hacerlo, no hace falta com- pilarlo, cuidado con los miembros que tenga, hay que hacer el bing a todos. Mirar nombre del plan y DBRM y la compilacion. -924 DB2 CONNECTION INTERNAL ERROR, function-code, return-code, reason-code -925 COMMIT NOT VALID IN IMS/VS OR CICS/OS/VS ENVIRONMENT -926 ROLLBACK NOT VALID IN IMS/VS OR CICS/OS/VS ENVIRONMENT -927 THE LANGUAJE INTERFACE (LI) WAS CALLED WHEN THE CONNECTING (51006) ENVIRONMENT WAS NOT ESTABLISHED. THE PROGRAM SHOULD BE IN- VOKED UNDER THE DSN COMMAND El programa se debe invocar bajo DSN