Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PARA UN BUEN
DESARROLLO DE BASE DE
DATOS EN PL/SQL
Para realizar un buen desarrollo de base de datos en ORACLE con
PL/SQL es indispensable cuidar la aplicación adecuada de los
siguientes 5 temas, que son clave al momento de realizar un
desarrollo:
1. JOINS
2. INDICES
3. EXCEPCIONES
4. CURSORES
5. CONVENCIONES
TIPOS DE JOIN
Los JOINS en ORACLE se utilizan para recuperar
información de multiples tablas.
INNER JOIN
LEFT OUTER JOIN
RIGHT OUTER JOIN
FULL OUTER JOIN
INNER JOIN
El INNER JOIN retorna todos los registros que existen tanto en la tabla 1 como en la tabla 2.
Sintaxis
Este tipo de JOIN retorna todos los registros de la tabla de la izquierda (tabla 1 para este ejemplo), y
solamente los registros de la otra tabla que cumplan con la condición.
Sintaxis
NOTA:
En algunas bases de datos, las palabras clave LEFT OUTER JOIN se reemplazan con LEFT JOIN.
RIGTH OUTER JOIN
Este tipo de JOIN retorna todos los registros de la tabla de la derecha (tabla 2 para este ejemplo), y
solamente los registros de la otra tabla que cumplan con la condición.
Sintaxis
NOTA:
En algunas bases de datos, las palabras clave RIGTH OUTER JOIN se reemplazan con RIGTH JOIN.
FULL OUTER JOIN
Este tipo de JOIN retorna todos los registros tanto de las 2 tablas, colocando null en los campos donde
no se cumple la condición.
Sintaxis
SELECT columnas
FROM tabla1 FULL [OUTER] JOIN tabla2
ON table1.columan = table2.columan;
NOTA:
En algunas bases de datos, las palabras clave FULL OUTER JOIN se reemplazan con FULL JOIN.
INDICES
Un índice es una estructura de datos que mejora la velocidad de las
operaciones de consulta de datos en una tabla, estos pueden ser
simples o compuestos.
Simples: están conformados por un solo campo
Compuestos: están conformados por más de un campo.
Sintaxis
CREATE [UNIQUE] INDEX nombre_indice ON table_name nombre_tabla (columna1,
columna2, ... columnaN) ;
MANEJO DE EXCEPCIONES
¿Qué es una excepción ?
Una excepción es una advertencia o condición de error.
SINTAXIS
DECLARE
-- Declaraciones
BEGIN
-- Sentencias de Ejecución
EXCEPTION
-- Sentencias de Control de Excepciones
END;
Predefinidas
Definidas por el Usuario
Excepciones Predefinidas.
Las excepciones predefinidas no necesitan ser declaradas. Simplemente se
utilizan cuando estas son lanzadas por algún error determinado.
Sintaxis
DECLARE
-- Declaraciones
BEGIN
-- Ejecución
EXCEPTION
WHEN NO_DATA_FOUND THEN
-- Se ejecuta cuando ocurre una excepción de tipo NO_DATA_FOUND
WHEN ZERO_DIVIDE THEN
-- Se ejecuta cuando ocurre una excepción de tipo ZERO_DIVIDE
WHEN OTHERS THEN
-- Se ejecuta cuando ocurre una excepción de un tipo no controlado anteriormente
END;
Listado de Excepciones Predefinidas.
Excepciones definidas por el usuario.
Estas deben ser declaradas en el segmento DECLARE de un bloque, subprograma o
paquete.
Se deben declarar como cualquier otra variable, asignándole el tipo de dato
EXCEPTION.
La excepción se debe capturar y lanzar desde una sentencia RAISE.
Sintaxis
DECLARE
-- Declaraciones
MiNuevaExcepcion EXCEPTION;
BEGIN
-- Ejecución
RAISE MiNuevaExcepcion ;
EXCEPTION
WHEN MiNuevaExcepcion THEN
-- Se ejecuta cuando ocurre una excepción de tipo MiNuevaExcepcion
END;
MANEJO DE CURSORES
PL/SQL utiliza cursores para gestionar las instrucciones SELECT.
Un cursor es un conjunto de registros devuelto por una
instrucción SQL. Técnicamente los cursores son fragmentos de
memoria reservados para procesar los resultados de una
consulta SELECT.
SINTAXIS
SELECT <columna/s>
INTO <variable/s>
FROM <tabla> [where];
Importante considerar:
Con cada cursor implícito debe existir la palabra clave INTO.
Las variables que reciben los datos devueltos por el cursor tienen que
contener el mismo tipo de dato que las columnas de la tabla.
Solo pueden devolver una única fila. En caso de que se devuelva más de
una fila (o ninguna fila) se producirá una excepción.
SINTAXIS
CURSOR EXPLÍCITO
declare
cursor c_paises is
SELECT CO_PAIS, DESCRIPCION
FROM PAISES;
begin
/* Sentencias del bloque ...*/
end;
NOTA: Para procesar instrucciones SELECT que devuelvan más de una fila, son
necesarios cursores explícitos combinados con un estructura de bloque.
CONVENCIONES
Las convenciones a la hora de codificar ayudan a la uniformidad y
legibilidad del código fuente, facilitando su mantenimiento por terceros
y eliminando la dependencia del desarrollador.