Desarrollo Cobol/DB2



Documentos relacionados
SQL EMBEBIDO FELIPE GARCÍA GÓMEZ

Introducción al SQL embebido

Bases de Datos: Structured Query Language (SQL)

Sistemas de Datos Curso: Ernesto Chinkes. Subconsultas Stored Procedures - Triggers

FIUBA /75.28 BASE DE DATOS Agosto 1992 SQL

A.1. Definiciones de datos en SQL

Tema 4. SQL. Juan Ignacio Rodríguez de León

Permite definir cada relación que pertenece a la base de datos relacional, incluyendo:

El usuario puede utilizar esta tabla derivada como una tabla más, en sus consultas.

Base de Datos Oracle: desarrollo de aplicaciones

OPTIMIZACIÓN DE CONSULTAS EN SQL. Análisis de Consultas y Transacciones Ajuste de Indices Ajuste de Consultas

5- Uso de sentencias avanzadas

Formato para prácticas de laboratorio

Práctica 3. Consultas SQL

Tema 4. Manipulación de datos con SQL

SQL Embebido. Introducción (I)

El Lenguaje PL/SQL. Un lenguaje de propósito general orientado a la inclusión de sentencias SQL. Estructura del código PL/SQL.

CURSORES EN SQL SERVER

CONSULTAS BASICAS EN SQL SERVER

Base de datos Lenguaje SQL

MySQL y Sesiones en PHP. Área de Ingeniería Telemática

Sintaxis: CURSOR nombre_cursor[(param1 [IN] tipo1,... )] IS consulta ;

Oracle básico (IV): Programación en PL/SQL

TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL

Tema: Procedimientos almacenados y cursores. Facultad : Ingeniería Escuela : Computación Asignatura: SQL SERVER. GUÍA 2 Pág. 1

BASES DE DATOS EN VISUAL BASIC ACCESS + SQL

BASES DE DATOS - SQL. Javier Enciso

Curso SQL Nivel Avanzado 1. Miguel Jurado García

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

2- Creación de tablas y manejos de datos.

Bases de Datos 2. Teórico

6 - Recuperar algunos registros (where)

Trabajos de Ampliación. Bases de datos NoSQL.

APÉNDICE SQL (Structures Query Language)

Ministerio de Educación. Base de datos en la Enseñanza. Open Office. Módulo 6: Iniciación a SQL

T12 Vistas y tablas temporales

Tema: Uso de sentencias SQL

Bases de Datos Relacionales

Lenguaje de Consulta Estructurado S Q. Lenguaje de Consulta Estructurado. Wael Najjar /

Procedimientos, Funciones, Trigger y Cursores en ORACLE

BASES DE DATOS AVANZADAS Transacciones en MYSQL

Formatos para prácticas de laboratorio

ÍNDICE INTRODUCCIÓN...13

Dependiendo de las tareas, podemos clasificar las sentencias SQL en dos tipos:

Base de datos I Facultad de Ingeniería. Escuela de computación.

Estándar de desarrollo de aplicaciones del Govern de les Illes Balears

Manipulando Datos. y Transacciones

INTRODUCCIÓN INTRODUCCIÓN INTRODUCCIÓN INTRODUCCIÓN INSTRUCCIONES DE DEFINICIÓN DE TABLAS E ÍNDICES INSTRUCCIONES DE DEFINICIÓN DE TABLAS E ÍNDICES

M. C. Gustavo Alfonso Gutiérrez Carreón

MANUAL BÁSICO DEL LENGUAJE SQL

Formato para prácticas de laboratorio

Structured Query Language (SQL) Fundamentos de Bases de Datos InCo

Administración Básica de Oracle9i

UNIVERSIDAD DEL ISTMO CAMPUS IXTEPEC LIC. INFORMATICA GRUPO 508 PROCEDIMIENTOS ALMACENADOS EN SQL SERVER 2000

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

MANUALITO MS-SQL SERVER

Motivación: SQL Interactivo vs. No Interactivo

LENGUAJE SQL. En Mysql se utiliza un subconjunto de SQL (update, insert into, delete, select, truncate,etc).

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

Guía práctica de introducción básica a JDBC

Consultas con combinaciones

SQL (Structured Query Language)

Bases de Datos SQL - Ejemplos

Organización de Computadoras

LAS SUBCONSULTAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Objetos de la Base de Datos

2. ESTUDIO DE INDICES

1. DML. Las subconsultas

Tablas internas 1-12

Sub consultas avanzadas

CONSULTAS MULTITABLAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

vgestorweb vgestorweb 1/9

BASE DE DATOS - CURSO 02/03 PRÁCTICA 2: SQL: Lenguaje de definición de datos (DDL)

Modulo 1 El lenguaje Java

Son objetos cuya función es el tratamiento de varios registros exclusivamente durante la ejecución de un programa.

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

Restricciones de Integridad

Bases de Datos 3º Informática de Sistemas

PL/SQL. DECLARE /* Parte Declarativa */ BEGIN /* Parte de Ejecución */ EXCEPTION /* Parte de Excepciones */ END;

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

Bases de datos relacionales y el modelo entidad-relación

CONSULTAS DE RESUMEN SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

SQL (DML) Carlos A. Olarte Gestión y Modelación de SQL Datos (DML)

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Programación de sitios web Act 11: Reconocimiento de la unidad 3

Programación SQL. Lucio Salgado Diciembre 2008

A continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla.

EXAMEN TEMAS 3, 4 y 5. CREACIÓN Y EXPLOTACIÓN DE UNA BASE DE DATOS

LABORATORIO 10. Concurrencia y bloqueos en el SMBD Oracle

Referencia SQL en la versión de HUGOSQL White Paper por: HUGOSQL 2012

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

SQL (Structured Query Language)- DML

SQL PROCEDURAL Triggers y Stored Procedures. Ing. Gustavo A. Correa Reina UNCPBA 2008

Los paquetes tienen dos partes: una especificación y un cuerpo que están almacenados por separado en la base de datos.

6- Combinación de tablas

Diseño de bases de datos

Administradores de Bases de Datos Studio.NET 2005 Y SQL Server Barrios

Transcripción:

Desarrollo Cobol/DB2

Preparación de programas

Precompilador DB2 Toma los postulados SQL del programa fuente Revisa la sintaxis de SQL Crea un programa fuente traducido de las sentencias SQL Crea el DBRM (Data Bases Request Module) y lo deja en la librería de usuario Los catálogos de DB2 no son accesados Timestamp en el precompilador DB2

Bind VALIDACION SOBRE: Tablas/Columnas Referencias Descripciones AUTORIZACION Accesos Requerimientos de usuarios ESTRATEGIA DE ACCESO Acceso físico Características del requerimiento LOS DBRM pueden estar dentro de paquetes y/o Planes

SQL en comandos Instrucciones SQL codificadas en el programa con delimitadores SQL hace referencia a variables host Ejemplo: EXEC SQL SELECT A, B INTO :X, :Y FROM T1 WHERE C = :Z END-EXEC. El programa debe contener el SQL Communication Area, que a su vez contiene el STATUS CODE Para procesar varios renglones, se utiliza un CURSOR En Cobol, SQL debe estar entre las columnas 12 y 72 del programa

SQL en comandos INSTRUCCIÓN SQL: UPDATE TEMPL SET NUMDEP = C02 WHERE NUMDEP = C01 INSTRUCCIÓN SQL en un programa Cobol: EXEC SQL UPDATE TEMPL SET NUMDEP = C02 WHERE NUMDEP = C01 END-EXEC.

Variables Host COBOL: MOVE C01 TO W-DEP W-DEP C01 SQL:... WHERE NUMDEP = :W-DEP La variable host va precedida por el carácter dos puntos : Las variables host deben coincidir en el tipo de dato de la columna Estas no se podrán utilizar como nombres de objetos DB2

Variables Host Ejemplos: SQL Cobol INSERT INTO EMP (NOEMP, APELLIDO) VALUES ( 000190, JONES ) EXEC SQL INSERT INTO EMP (NOEMP, APELLIDO) VALUES (:W-NOEMP, :W-APELLIDO) END-EXEC. W-NOEMP 000190 W-APELLIDO JONES

Variables Host Ejemplos: SQL Cobol UPDATE EMP SET SALARIO = SALARIO * 1.05 WHERE CODPUESTO = 54 EXEC SQL UPDATE EMP SET SALARIO = SALARIO * :W-PORCENT WHERE CODPUESTO = :W-CODIGO END-EXEC. W-CODIGO 54 1.05 W-PORCENT

Definición de variables Host DATOS NUMÉRICOS SMALLINT INTEGER o INT DECIMAL(5,2) o DEC(5,2) PIC S9(04) COMP. PIC S9(09) COMP. DATOS ALFANUMÉRICOS PIC S9(03)V99 COMP-3 3 bytes 2 bytes 4 bytes CHAR(10) PIC X(10). 10 bytes VARCHAR(80) 01 CAMPVAR. 05 CAMPOL PIC S9(04) COMP. 05 CAMPOC PIC X(80). DATE/TIME DATE PIC X(10). 10 bytes TIME PIC X(08). 8 bytes TIMESTAMP PIC X(26) 26 bytes

Indicador de nulidad SELECT COLUMA INTO :W-A:W-AINDAIND W-A W-AIND - Un campo de indicador de nulidad (smallint) es requerido si la columna tiene característica allows NULL Si la columna contiene NULOS, el indicador de nulidad contendrá un valor negativo. El valor de la variable no se toca El indicador de nulidad puede ser puesto a valor negativo por programa para indicar NULL en UPDATE o INSERT

Indicador de nulidad Ejemplo: EXEC SQL SELECT CODPUESTO, NUMDEP, TELEFONO END-EXEC. INTO :W-CPTO:W-CPTO-I, :W-DEP, :W-TEL:W-TEL-I FROM EMP WHERE NOEMP = :W-NOEMP CODPUESTO y TELEFONO son columnas con ALLOW NULL

Dando valor nulo a una columna UPDATE: EXEC SQL UPDATE EMP SET CODPUESTO = NULL WHERE NOEMP = :W-NOEMP END-EXEC. Otra opción: WORKING-STORAGE SECTION. 01 W-CPTO-I PIC S9(04) COMP. 01 W-TEL-I PIC S9(04) COMP.......... PROCEDURE DIVISION.......... MOVE 1 TO W-CPTO-I. EXEC SQL UPDATE EMP SET CODPUESTO = :W-CPTO:W-CPTO-I WHERE NOEMP = :W-NOEMP END-EXEC.

Utilización de cursores Definiendo el cursor EXEC SQL DECLARE CURSOR C1 CURSOR FOR SELECT NOEMP, APELLIDO FROM EMP WHERE NUMDEP = :W-DEP END-EXEC. Abriendo el cursor EXEC SQL OPEN C1 END-EXEC.

Utilización de cursores Obteniendo resultados uno a la vez EXEC SQL FETCH C1 INTO :W-NOEMP, W-APELLIDO END-EXEC. Cerrando el cursor EXEC SQL CLOSE C1 END-EXEC. EXEC.

Utilización de cursores Borrando registros por medio de un cursor EXEC SQL DECLARE C2 CURSOR.................. EXEC SQL OPEN C2 END-EXEC................... EXEC SQL FETCH C2 INTO.... END-EXEC.......... EXEC SQL DELETE FROM EMP WHERE CURRENT OF C2 END-EXEC.......... EXEC SQL CLOSE C2 END-EXEC.

Actualizando registros vía un cusor EXEC SQL DECLARE C3 CURSOR FOR SELECT NOEMP, APELLIDO FROM EMP WHERE NUMDEP = :W-DEP FOR UPDATE OF APELLIDO END-EXEC.......... EXEC SQL OPEN C3 END-EXEC.......... EXEC SQL FETCH C3 INTO :W-NOEMP, :W-APELLIDO END-EXEC.......... EXEC SQL UPDATE EMP SET APELLIDO = :W-APE-NUEVO WHERE CURRENT OF C3 END-EXEC.......... EXEC SQL CLOSE C3 END-EXEC.

Actualizando registros vía un cursor Si la instrucción SELECT de un cursor contiene ORDER BY, GROUP BY, DISTINCT, UNION, funciones o JOIN, no se pueden utilizar los postulados FOR UPDATE OF y DELETE WHERE CURRENT OF COMMIT puede cerrar cursores abiertos CLOSE de cursor no hace COMMIT

Commit/Rollback COMMIT Indica la terminación de una unidad de trabajo Los cambios a datos se hacen permanentes Todos los LOCK de páginas son liberados Los bloqueos a TABLESPACE son liberados si existe el postulado RELEASE(COMMIT) en el BIND ROLLBACK La unidad de trabajo actual es abandonada Los cambios a los datos son hechos hasta el último COMMIT Todos los LOCK de página son liberados Los LOCK de TABLESPACE son liberados si existe el postulado RELEASE(COMMIT) en el BIND Los cursores son cerrados

SQLCA (SQL Communication area) Provee información que describe el estatus de la última instrucción SQL ejecutada Debe ser examinada por el programa después de cada requerimiento Es requerida y debe ser nombrada SQLCA Se puede incorporar al programa con la instrucción de pre-compilación: EXEC SQL INCLUDE SQLCA END-EXEC.

FORMATO DEL SQLCA: SQLCAID CHAR(08) SQLCABC INTEGER SQLCODE INTEGER SQLERRM VARCHAR(70) SQLERRP CHAR(08) SQLERRD(1) INTEGER SQLERRD(2) INTEGER SQLERRD(3) INTEGER SQLERRD(4) INTEGER SQLERRD(5) INTEGER SQLERRD(6) INTEGER SQLWARNO, SQLWARN1, SQLWARN2, SQLWARN3, SQLWARN4, SQLWARN5, SQLWARN6, SQLWARN7, SQLWARN8, SQLWARN9, SQLWARNA (Todos los SQLWARNx son CHAR(01) SQLSTATE CHAR(05)

Códigos de SQLCA CONDICION SQLCODE SQLWARNO STATUS REQUERIMIENTO ERROR < 0 FALLA WARNING > 0 PERO NO + 100 W SATISFECHO PERO CON UNA CONDICION ESPECIAL NOT FOUND + 100 SIN DATOS O INEXISTENTE CORRECTO 0 CORRECTO El SQLERRD(3) indica el número de líneas cambiadas por INSERT, UPDATE o DELETE SQLWARN0 Contiene: = Si los SQLWARN1-A tienen blancos W = Si hay uno o más SQLWARN1-A

Códigos de SQLCA: SQLWARN1. String truncada en la variable host SQLWARN2. Valor(es) nulos eliminados en evaluación o función de columna SQLWARN3. Número de columnas mayor al número de variables host SQLWARN4. UPDATE o DELETE sin cláusula WHERE SQLWARN5. Instrucción SQL no válida en DB2 SQLWARN6. Valor de DATE o TIMESTAMP ajustado para corregir un resultado válido de fecha

Códigos de SQLCA: SQLWARN7. Uno o más dígitos no-cero fueron eliminados de una fracción de un número usado en operación de multiplicación o división SQLWARN8. Un carácter que no pudo ser convertido, fue reemplazado con un carácter sustituto SQLWARN9. Excepciones aritméticas fueron ignoradas durante COUNT DISTINCT SQLWARNA. No aplica SQLSTATE. Contiene el código de retorno de la más reciente ejecución de un SQL

FIN DE MODULO

Derechos de autor Este producto has sido elaborado por Jorge Godínez Rodríguez. Derechos reservados Prohibida su reproducción parcial o total 26