Base de datos

Solo disponible en BuenasTareas
  • Páginas : 5 (1034 palabras )
  • Descarga(s) : 0
  • Publicado : 7 de marzo de 2010
Leer documento completo
Vista previa del texto
1. Registros PL/SQL
Un registro es un grupo de datos relacionados, almacenados en campos, cada uno de los cuales tiene su propio nombre y tipo y que se tratan como una sola unidad lógica. Los campos de un registro pueden ser inicializados y pueden ser definidos como NOT NULL. Aquellos campos que no sean inicializados explícitamente, se inicializarán a NULL. Los registros pueden estar anidados.1.1. Declaración de tipos y de variables registro Declaración del tipo registro: Sintaxis: TYPE nombre_tipo_reg IS RECORD (declaración_campo [,declaración_campo]...); Donde declaración_campo tiene la forma: nombre_campo {tipo_campo | variable%TYPE | table.columns%TYPE | table%ROWTYPE } [ [NOT NULL] {:= | DEFAULT} expresión] Declaración de una variable del tipo registro: id_variable nombre_tipo_reg;1.2. Acceso a un campo de una variable de tipo registro id_variable.nombre_campo 1.3. Asignación de valores Puede asignarse un valor directamente a un campo: Id.campo := 3; Puede asignarse valor a todos los campos de un registro utilizando una sentencia SELECT. En este caso hay que tener cuidado en especificar las columnas en el orden conveniente según la declaración de los campos del registro.Puede asignarse un registro a otro siempre y cuando sean del mismo tipo 1.4. Declaración de registros con el atributo %ROWTYPE

Se puede declarar un registro basándose en una colección de columnas de una tabla o una vista de la base de datos mediante el atributo %ROWTYPE. Por ejemplo, si tengo una tabla empleado declarada como: CREATE TABLE empleado( id number, nombre char(10), apellidochar(20), dirección char(30)); Puedo declarar una variable de tipo registro como: DECLARE reg_emp empleado%ROWTYPE; Lo cual significa que el registro reg_emp tendrá la siguiente estructura: id number, nombre char(10), apellido char(20), dirección char(30) De esta forma se podrán asignar valores a los campos de un registro a través de un select sobre la tabla a partir de la cual se creo el registro.

2 2. Tablas PL/SQL
Una tabla PL/SQL : • • • Es similar a un array Tiene dos componenetes: Una clave primaria de tipo BINARY_INTEGER que permite indexar en la tabla PL/SQL y una columna de escalares o registros que contiene los elementos de la tabla PL/SQL Puede incrementar su tamaño dinámicamente.

2.1. Creación de una tabla Declaración de un tipo tabla PL/SQL. Sintaxis: TYPE nombre_tipo_tablaIS TABLE OF {tipo_columna|varible%TYPE!tabla.columna%TYPE}[NOT NULL] INDEX BY BINARY_INTEGER ; Declaración de una variable del tipo nombre_var nombre_tipo_tabla; No es posible inicializar las tablas en la inicialización. 2.2. Referenciar un elemento de la tabla Sintaxis: Pl/sql_nombre_table(valor_primary_key); El rango de binary integer es –2147483647.. 2147483647, por lo tanto el índice puedeser negativo, lo cual indica que el índice del primer valor no tiene que ser necesariamente el uno.

3. Tablas PL/SQL de registros
Es posible declarar elementos de una tabla PL/SQL como de tipo registro. Para referenciar un elemento se hará de la siguiente forma: nombre_tabla(índice).nombre_campo

3

4. Funciones para el manejo de tablas PL/SQL
Función EXISTS(i). Utilizada para saber si enun cierto índice hay almacenado un valor. Devolverá TRUE si en el índice i hay un valor. Función COUNT. Devuelve el número de elementos de la tabla PL/SQL. Función FIRST. Devuelve el menor índice de la tabla. NULL si está vacía. Función LAST. Devuelve el mayor índice de la tabla. NULL si está vacía. Función PRIOR (n). Devuelve el número del índice anterior a n en la tabla. Función NEXT (n).Devuelve el número del índice posterior a n en la tabla. Función TRIM. Borra un elemento del final de la tabla PL/SQL. TRIM(n) borra n elementos del final de la tabla PL/SQL. Función DELETE. Borra todos los elementos de la tabla PL/SQL. DELETE(n) borra el correspondiente al índice n. DELETE(m,n) borra los elementos entre m y n.

4

4. ARRAYS Un varray se manipula de forma muy similar a las tablas...
tracking img