El siguiente tema se trata sobre procedimientos almacenados que utilicen las siguientes instrucciones:
· Varray
· Record
· Table
· instruccion case
· %type
· %Rowtype
VARRAYS
Un varray se manipula de forma muy similar a las tablas de PL, pero se implementa de forma diferente. Los elementos en el varray se almacenan comenzando en el índice 1 hasta la longitud máxima declarada en el tipo varray.
La sintaxis:
TYPE <nombre_tipo> IS VARRAY (<tamaño_maximo>) OF <tipo_elementos>;
Ejemplo:
DECLARE
Ejemplo:
DECLARE
/* Declaramos el tipo VARRAY de cuatro elementos VARCHAR2*/
TYPE t_cadena IS VARRAY(4) OF VARCHAR2(50);
/* Asignamos los valores con un constructor */
v_lista t_cadena:= t_cadena('Gerardo', 'Francisco', ,'','');
BEGIN
v_lista(3) := 'Miguel';
v_lista(4) := 'Marco';
END;
RECORD
Es una estructura de datos en PL/SQL, 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.
La sintaxis:
TYPE <nombre> IS RECORD
(
campo <tipo_datos> [NULL | NOT NULL]
[,<tipo_datos>...]
);
Ejemplo:
DECLARE
TYPE baseDeDatos IS RECORD
(
CODIGO VARCHAR2(50),
DESCRIPCION VARCHAR2(50),
PROFESOR VARCHAR2(20)
);
/* Declara una variable identificada por baseDeDatos de tipo ASIGNATURA.
Esto significa que la variable baseDeDatos tendrá los campos
CODIGO, DESCRIPCION y PROFESOR.
*/
baseDeDatos ASIGNATURA;
BEGIN
/* Asignamos valores a los campos de la variable.
*/
baseDeDatos.CODIGO:= 'ACI800';
baseDeDatos.DESCRIPCION := 'PL SQL';
baseDeDatos.PROFESOR := 'Erwin Fischer';
END;
TABLE
Las tablas de PL/SQL son tipos de datos que nos permiten almacenar varios valores del mismo tipo de datos.
Una tabla PL/SQL :
· Es similar a un array
· Tiene dos componenetes: Un índice de tipo BINARY_INTEGER que permite acceder a los elementos en la tabla PL/SQL y una columna de escalares o registros que contiene los valores de la tabla PL/SQL
· Puede incrementar su tamaño dinámicamente.
La sintaxis:
TABLE
Las tablas de PL/SQL son tipos de datos que nos permiten almacenar varios valores del mismo tipo de datos.
Una tabla PL/SQL :
· Es similar a un array
· Tiene dos componenetes: Un índice de tipo BINARY_INTEGER que permite acceder a los elementos en la tabla PL/SQL y una columna de escalares o registros que contiene los valores de la tabla PL/SQL
· Puede incrementar su tamaño dinámicamente.
La sintaxis:
TYPE <nombre_tipo_tabla> IS TABLE OF
<tipo_datos> [NOT NULL]
INDEX BY BINARY_INTEGER ;
Ejemplo:
Ejemplo:
DECLARE
/* Definimos el tipo PAISES como tabla PL/SQL */
TYPE PAISES IS TABLE OF NUMBER INDEX BY BINARY_INTEGER ;
/* Declaramos una variable del tipo PAISES */
tPAISES PAISES;
BEGIN
tPAISES(1) := 1;
tPAISES(2) := 2;
tPAISES(3) := 3;
END;
INSTRUCCIONES CASE
La estructura condicional CASE permite evaluar una expresion y devolver un valor u otro.
La sintaxis:
CASE <expresion>
INSTRUCCIONES CASE
La estructura condicional CASE permite evaluar una expresion y devolver un valor u otro.
La sintaxis:
CASE <expresion>
WHEN <valor_expresion> THEN <valor_devuelto>
WHEN <valor_expresion> THEN <valor_devuelto>
ELSE <valor_devuelto> -- Valor por defecto
END
Ejemplo:
Ejemplo:
DECLARE
docente varchar(100),
asignatura varchar(20)
SET asignatura = 'SQL'
SET docente = (CASE
WHEN asignatura = 'SQL SERVER' THEN 'Maoma el profe'
WHEN asignatura = 'PL SQL' THEN 'Bueno el Profe'
ELSE 'Buscando Profe'
END)
PRINT docente
%TYPE y %ROWTYPE
Atributos de tipo. Un atributo de tipo PL/SQL es un modificador que puede ser usado para obtener información de un objeto de la base de datos. El atributo %TYPE permite conocer el tipo de una variable, constante o campo de la base de datos. El atributo%ROWTYPE permite obtener los tipos de todos los campos de una tabla de la base de datos, de una vista o de un cursor.
La sintaxis %TYPE :
tipo_campo | variable%TYPE
customers.name%type
La sintaxis %ROWTYPE :
{Cursor_name | cursor_variable_name | nombre_tabla}% ROWTYPE
Ejemplo:
PRINT docente
%TYPE y %ROWTYPE
Atributos de tipo. Un atributo de tipo PL/SQL es un modificador que puede ser usado para obtener información de un objeto de la base de datos. El atributo %TYPE permite conocer el tipo de una variable, constante o campo de la base de datos. El atributo%ROWTYPE permite obtener los tipos de todos los campos de una tabla de la base de datos, de una vista o de un cursor.
La sintaxis %TYPE :
tipo_campo | variable%TYPE
customers.name%type
La sintaxis %ROWTYPE :
{Cursor_name | cursor_variable_name | nombre_tabla}% ROWTYPE
Ejemplo:
CREATE PROCEDURE simple_procedure IS
v_location VARCHAR2(15) := ’Granada’;
PI CONSTANT NUMBER := 3.1416;
v_nombre tabla_empleados.nombre%TYPE;
PI CONSTANT NUMBER := 3.1416;
v_nombre tabla_empleados.nombre%TYPE;
reg_datos micursor%ROWTYPE;
BEGIN
BEGIN
/*Parte de ejecucion*/
EXCEPTION
EXCEPTION
/*Parte de excepciones*/
END;
Referencias:
http://www.devjoker.com/contenidos/catss/62/Tipo-VARRAY.aspx
http://www.tutorialspoint.com/plsql/plsql_arrays.htm
http://sql-plsql.blogspot.com/2007/05/oracle-plsql-varrays.html
END;
Referencias:
http://www.devjoker.com/contenidos/catss/62/Tipo-VARRAY.aspx
http://www.tutorialspoint.com/plsql/plsql_arrays.htm
http://sql-plsql.blogspot.com/2007/05/oracle-plsql-varrays.html
No hay comentarios.:
Publicar un comentario