6 Copyright © 2004, Oracle. Todos los derechos reservados. Trabajar con Tipos de Dato Compuestos.

Slides:



Advertisements
Presentaciones similares
SQL Sigla del nombre “Structured Query Language”.
Advertisements

Insercion de datos..
BASE DE DATOS OBJETO RELACIONAL
Introducción a Transact-SQL
Marzo de 2010Dos Ideas - La visión de Sistemas desde el Desarrollo Introducción a PL/SQL Conceptos básicos.
Fernando Velasco
Presentación Asignatura POF030 Semana 1. Contenido En forma general, los conceptos que se estudiarán en la asignatura son: – Procedures – Functions –
PL/SQL Francisco Moreno Universidad Nacional.
Características Objeto Relacionales en Oracle
PL/SQL Francisco Moreno Universidad Nacional.
Control del Acceso de los Usuarios
MySQL M.C. Pedro Bello López.
Lenguaje SQL (Structured Query Language)
PL/SQL Francisco Moreno Universidad Nacional. Introducción al PL/SQL ¿Por qué PL/SQL? A pesar de que SQL tiene mecanismos de control condicional (cláusula.
Bases de Datos Relacionales
16/04/ Sesión 11 Funciones y procedimientos Ing. Ricardo Inquilla.
PL/SQL Francisco Moreno Universidad Nacional.
D Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados. Uso de SQL*Plus.
PL/SQL Francisco Moreno Universidad Nacional.
Subconsultas Avanzadas
Ing. Ricardo Carlos Inquilla Quispe
Procedimientos Almacenados Funciones Agregadas
6 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados. Visualización de Datos de Varias Tablas Utilizando Uniones.
Bases de datos en la Web n Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web n Ventajas –Proporcionar.
Gestión de Objetos con Vistas de Diccionario de Datos
F Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados. Sintaxis de Unión en Oracle.
UNITA - IBARRA TRIGGERS
John Freddy Duitama M.U.de.A. Facultad de Ingeniería. Creación del esquema de Una Base de Datos. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
TRIGGERS EN ORACLE 8 J. Iriarte S. España
SQL: DDL Francisco Moreno & Carlos Mario Zapata. SQL:DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la Base de Datos Tipos de Objetos:
Sesión 9 Construcción de cursores.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 19 Extensiones de Oracle 9i para las sentencias DML y DDL.
Triggers(Disparadores)
Características Objeto-Relacionales en Oracle Francisco Moreno Universidad Nacional.
Structured Query Language (Lenguaje Estructurado de Consultas)
John Freddy Duitama M.U.de.A. Facultad de Ingeniería. Creación del esquema de Una Base de Datos. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
SQL: DDL Francisco Moreno. SQL: DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la BD Tipos de objetos: - Tablas: corresponden a las.
LENGUAJE ESTRUCTURADO DE CONSULTAS
SQL Sigla del nombre “Structured Query Language”.
Base de datos Francisco Castro. Creación de una tabla drop table TABLA cascade constraints; /*==============================================================*/
PUESTO-TRABAJO (Código-Puesto, Empresa, Sueldo, DNI- Contratado) TITULADO (DNI-Titulado, Nombre, Apellidos, Dirección) TITULACION (Iden-Titulación, Nombre,
Comandos de SQL Prog. Orientada a Eventos. Inserción de datos (INSERT) INSERT….VALUES INSERT INTO Tabla1 (Columna1, Columna2…) VALUES (‘ValorAlfa’, ValorNum…);
Estructuras de Control
MSSQL SERVER CURSO BÁSICO 1. DESCRIPCIÓN DEL CURSO. Sesión 4: Sentencia Insert,Transacciones,Insert general, Insert Select * From, Sentencia Update,Update.
Marzo de 2010Dos Ideas - La visión de Sistemas desde el Desarrollo SQL en PL/SQL Conceptos básicos.
SQL Lenguaje Estructurado de Consultas. Structured Query Lenguaje (SQL). Lenguaje de acceso a bases de datos. Proyecto de Investigación de IBM. La mayoria.
Bases de Datos SQL.
AA Gerardo Morgade Donato AA Isnel Leyva Herbella.
Después de completar esta lección, debe ser capaz de:  Crear registro definidos por el usuario.  Crear un registro con el atributo %ROWTYPE.  Crear.
5 Paquetes ORACLE Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
Base de Datos I – Ing. Mary Carlota Bernal J. BASE DE DATOS I PL/SQL.
Apuntes PL-SQL Triggers II. Tipos de datos compuestos Registros PL/SQL: Son similares a un tipo struct en C o a un tipo Registro en otros 3GL. Se componen.
SQL: DDL.
6 Triggers ORACLE - II Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
Copyright  Oracle Corporation, All rights reserved. 8 Manipulación de Datos.
Copyright  Oracle Corporation, All rights reserved. 1 Escritura de sentencias SQL SELECT básicas.
3 Cursores ORACLE Bases de datos II I-2014 Universidad del Cauca In. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca In. Wilson Ortega.
Mtr. Adrián Monge Monge Educación 2015 Maestría, Mención en Administración de Proyectos ULACITMaestría, Mención en Administración de Proyectos 2012 Licenciatura,
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Copyright  Oracle Corporation, All rights reserved. 2 Restricción y ordenación de datos.
Base de Datos I – Ing. Mary Carlota Bernal J.  Cada instrucción PL/SQL tiene asociado internamente un cursor  Los cursores en PL/SQL pueden ser de dos.
Copyright  Oracle Corporation, All rights reserved. 11 Creación de Vistas.
Querys a bases de datos con MS ACCESS. DEFINAMOS LOS TERMINOS: DML=Lenguaje de manipulación de datos Las sentencias DML permiten generar consultas para.
DML Transact SQL Sesión X Triggers. Duración 2 Horas.
Copyright  Oracle Corporation, All rights reserved. 9 Creación y gestión de tablas.
6 Triggers ORACLE - III Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
Crear una tabla (create table - sp_tables - sp_columns - drop table) Para ver las tablas existentes creadas por los usuarios en una base de datos usamos.
Copyright  Oracle Corporation, All rights reserved. 6 Subconsultas.
Copyright  Oracle Corporation, All rights reserved. 10 Constraints (Restricciones)
Oracle Pl/SQl Developer – Nivel 1
Transcripción de la presentación:

6 Copyright © 2004, Oracle. Todos los derechos reservados. Trabajar con Tipos de Dato Compuestos

Copyright © 2004, Oracle. Todos los derechos reservados. Objetivos Al finalizar esta lección, debería estar capacitado para lo siguiente: Crear registros PL/SQL definidos por el usuario Crear un registro con el atributo %ROWTYPE Crear una tabla INDEX BY Crear una tabla de registros INDEX BY Describir la diferencia entre registros, tablas y tablas de registros

Copyright © 2004, Oracle. Todos los derechos reservados. Tipos de Dato Compuestos Pueden contener varios valores, a diferencia de los tipos escalares Existen dos tipos: –Registros PL/SQL –Recopilaciones PL/SQL Matrices asociativas o tablas INDEX BY Tabla anidada VARRAY

Copyright © 2004, Oracle. Todos los derechos reservados. Tipos de Dato Compuestos Utilizar registros PL/SQL para almacenar valores de distintos tipos de dato, pero sólo una incidencia cada vez. Utilizar recopilaciones PL/SQL cuando desee almacenar valores del mismo tipo de dato.

Copyright © 2004, Oracle. Todos los derechos reservados. Registros PL/SQL Deben contener uno o más componentes de cualquier tipo de dato escalar, RECORD o de tabla INDEX BY, denominados campos Son similares a las estructuras en la mayoría de los lenguajes 3GL, incluidos C y C++ Están definidos por el usuario y pueden ser el subjuego de una fila en una tabla Tratan una recopilación de campos como una unidad lógica Resultan convenientes para recuperar una fila de datos de una tabla para su procesamiento

Copyright © 2004, Oracle. Todos los derechos reservados. Creación de un Registro PL/SQL Sintaxis: TYPE type_name IS RECORD (field_declaration[, field_declaration]…); field_name {field_type | variable%TYPE | table.column%TYPE | table%ROWTYPE} [[NOT NULL] {:= | DEFAULT} expr] identifiertype_name; 1 2 field_declaration:

Copyright © 2004, Oracle. Todos los derechos reservados. Creación de un Registro PL/SQL Declarar variables para almacenar el nombre, el trabajo y el salario de un nuevo empleado. Ejemplo:... TYPE emp_record_type IS RECORD (last_name VARCHAR2(25), job_id VARCHAR2(10), salary NUMBER(8,2)); emp_record emp_record_type;...

Copyright © 2004, Oracle. Todos los derechos reservados. Estructura de Registro PL/SQL Ejemplo: 100 King AD_PRES employee_id number(6)last_name varchar2(25)job_id varchar2(10) Campo 2 (tipo de dato)Campo 3 (tipo de dato)Campo 1 (tipo de dato) Campo 2 (tipo de dato)Campo 3 (tipo de dato)Campo 1 (tipo de dato)

Copyright © 2004, Oracle. Todos los derechos reservados. Atributo %ROWTYPE Declarar una variable según la recopilación de columnas en una vista o tabla de base de datos. Anteponer %ROWTYPE con la vista o tabla de base de datos. Los campos del registro toman los nombres y los tipos de dato de las columnas de la tabla o vista. DECLARE identifier reference%ROWTYPE; Sintaxis:

Copyright © 2004, Oracle. Todos los derechos reservados. Atributo %ROWTYPE Declarar una variable según la recopilación de columnas en una vista o tabla de base de datos. Anteponer %ROWTYPE con la tabla de base de datos. Los campos del registro toman los nombres y los tipos de dato de las columnas de la tabla o vista.

Copyright © 2004, Oracle. Todos los derechos reservados. Ventajas del Uso de %ROWTYPE No es necesario conocer el número y los tipos de dato de las columnas subyacentes de base de datos. Puede que el número y los tipos de dato de la columna subyacente de base de datos cambien en tiempo de ejecución. El atributo resulta útil al recuperar una fila con la sentencia SELECT *.

Copyright © 2004, Oracle. Todos los derechos reservados. Atributo %ROWTYPE... DEFINE employee_number = 124 DECLARE emp_rec employees%ROWTYPE; BEGIN SELECT * INTO emp_rec FROM employees WHERE employee_id = &employee_number; INSERT INTO retired_emps(empno, ename, job, mgr, hiredate, leavedate, sal, comm, deptno) VALUES (emp_rec.employee_id, emp_rec.last_name, emp_rec.job_id,emp_rec.manager_id, emp_rec.hire_date, SYSDATE, emp_rec.salary, emp_rec.commission_pct, emp_rec.department_id); END; /

Copyright © 2004, Oracle. Todos los derechos reservados. Inserción de un Registro mediante %ROWTYPE... DEFINE employee_number = 124 DECLARE emp_rec retired_emps%ROWTYPE; BEGIN SELECT employee_id, last_name, job_id, manager_id, hire_date, hire_date, salary, commission_pct, department_id INTO emp_rec FROM employees WHERE employee_id = &employee_number; INSERT INTO retired_emps VALUES emp_rec; END; / SELECT * FROM retired_emps;

Copyright © 2004, Oracle. Todos los derechos reservados. Actualización de una Fila en una Tabla mediante un Registro SET SERVEROUTPUT ON SET VERIFY OFF DEFINE employee_number = 124 DECLARE emp_rec retired_emps%ROWTYPE; BEGIN SELECT * INTO emp_rec FROM retired_emps; emp_rec.leavedate:=SYSDATE; UPDATE retired_emps SET ROW = emp_rec WHERE empno=&employee_number; END; / SELECT * FROM retired_emps;

Copyright © 2004, Oracle. Todos los derechos reservados. Matrices Asociativas o Tablas INDEX BY Son estructuras PL/SQL con dos columnas: –Cadena o entero de tipo de clave primaria –Columna de tipo de dato escalar o de registro No tienen límite en cuanto a tamaño. No obstante, el tamaño dependerá de los valores que pueda contener el tipo de dato clave.

Copyright © 2004, Oracle. Todos los derechos reservados. Creación de una Tabla INDEX BY Sintaxis: TYPE type_name IS TABLE OF {column_type | variable%TYPE | table.column%TYPE} [NOT NULL] | table%ROWTYPE [INDEX BY PLS_INTEGER | BINARY_INTEGER | VARCHAR2( )]; identifiertype_name;... TYPE ename_table_type IS TABLE OF employees.last_name%TYPE INDEX BY PLS_INTEGER;... ename_table ename_table_type; Declarar una tabla INDEX BY para almacenar los apellidos de los empleados.

Copyright © 2004, Oracle. Todos los derechos reservados. Creación de una Tabla INDEX BY

Copyright © 2004, Oracle. Todos los derechos reservados. Estructura de la Tabla INDEX BY Clave únicaValor... 1Jones 5Smith 3Maduro... PLS_INTEGER Escalar

Copyright © 2004, Oracle. Todos los derechos reservados. Creación de una Tabla INDEX BY DECLARE TYPE ename_table_type IS TABLE OF employees.last_name%TYPE INDEX BY PLS_INTEGER; TYPE hiredate_table_type IS TABLE OF DATE INDEX BY PLS_INTEGER; ename_table ename_table_type; hiredate_table hiredate_table_type; BEGIN ename_table(1) := 'CAMERON'; hiredate_table(8) := SYSDATE + 7; IF ename_table.EXISTS(1) THEN INSERT INTO END; /

Copyright © 2004, Oracle. Todos los derechos reservados. Uso de los Métodos de Tablas INDEX BY Los siguientes métodos facilitan el uso de las tablas INDEX BY : – PRIOR – NEXT – DELETE – EXISTS – COUNT – FIRST y LAST

Copyright © 2004, Oracle. Todos los derechos reservados. Tabla de Registros INDEX BY Defina una variable de tabla INDEX BY para contener una fila completa de una tabla. Ejemplo: DECLARE TYPE dept_table_type IS TABLE OF departments%ROWTYPE INDEX BY PLS_INTEGER; dept_table dept_table_type; -- Each element of dept_table is a record

Copyright © 2004, Oracle. Todos los derechos reservados. Tabla de Registros INDEX BY

Copyright © 2004, Oracle. Todos los derechos reservados. Ejemplo de Tabla de Registros INDEX BY SET SERVEROUTPUT ON DECLARE TYPE emp_table_type IS TABLE OF employees%ROWTYPE INDEX BY PLS_INTEGER; my_emp_table emp_table_type; max_count NUMBER(3):= 104; BEGIN FOR i IN 100..max_count LOOP SELECT * INTO my_emp_table(i) FROM employees WHERE employee_id = i; END LOOP; FOR i IN my_emp_table.FIRST..my_emp_table.LAST LOOP DBMS_OUTPUT.PUT_LINE(my_emp_table(i).last_name); END LOOP; END; /

Copyright © 2004, Oracle. Todos los derechos reservados. Tablas Anidadas GB Bombay Sydney Oxford Londres....

Copyright © 2004, Oracle. Todos los derechos reservados. Tablas Anidadas

Copyright © 2004, Oracle. Todos los derechos reservados. Bombay Sydney Oxford Londres.... VARRAY Tokio

Copyright © 2004, Oracle. Todos los derechos reservados. Resumen En esta lección, debe haber aprendido lo siguiente: Definir y hacer referencia a variables PL/SQL de tipos de dato compuestos: –Registros PL/SQL –Tablas INDEX BY –Tabla de registros INDEX BY Definir un registro PL/SQL mediante el atributo %ROWTYPE

Copyright © 2004, Oracle. Todos los derechos reservados. Práctica 6: Visión General En esta práctica se abordan los siguientes temas: Declaración de las tablas INDEX BY Procesamiento de datos mediante las tablas INDEX BY Declaración de un registro PL/SQL Procesamiento de datos mediante un registro PL/SQL

Copyright © 2004, Oracle. Todos los derechos reservados.