Primeros Pasos Con PL SQL
Primeros Pasos Con PL SQL
Primeros Pasos Con PL SQL
Hasta ahora hemos usado ampliamente SQL con la potencia que le caracteriza para
formular consultas y administrar la base de datos, pero hay algunos aspectos que SQL
no es capaz de cubrir. MySQL no usa PL/SQL, éste se usa en otro SGBD llamado Oracle.
Para solventar esto surge la figura de PL/SQL (Procedural Language/ Structured Query
Language) que es un lenguaje procedimental desarrollado por Oracle. Es un lenguaje de
programación incrustado en Oracle que es capaz de entender las consultas SQL, pero no
soporta las sentencias de definición de datos (DDL) o de control de datos (DCL).
PL/SQL incluye características propias de un lenguaje procedimental:
1. Uso de variables.
2. Estructuras de control de flujo y toma de decisiones.
3. Control de excepciones.
4. Reutilización del código a través de procedimientos y funciones.
PL/SQL amplia SQL con los elementos característicos de los lenguajes de programación,
variables, sentencias de control de flujo, bucles ...
Cuando se desea realizar una aplicación completa para el manejo de una base de datos
relacional, resulta necesario utilizar alguna herramienta que soporte la capacidad de
consulta del SQL y la versatilidad de los lenguajes de programación tradicionales. PL/SQL
es el lenguaje de programación que proporciona Oracle para extender el SQL estándar
con otro tipo de instrucciones.
Como introducción vamos a ver algunos elementos y conceptos básicos del lenguaje.
-- Linea simple
/*
Conjunto de Lineas
*/
PL/SQL proporciona una variedad predefinida de tipos de datos . Casi todos los tipos
de datos manejados por PL/SQL son similares a los soportados por SQL. A continuación
se muestran los TIPOS de DATOS más comunes:
CHAR (Carácter): Almacena datos de tipo carácter con una longitud máxima de 32767
y cuyo valor de longitud por defecto es 1
-- CHAR [(longitud_maxima)]
nombre CHAR(20);
/* Indica que puede almacenar valores alfanuméricos de 20
posiciones */
-- VARCHAR2 (longitud_maxima)
nombre VARCHAR2(20);
/* Indica que puede almacenar valores alfanuméricos de hasta
20
posicones */
/* Cuando la longitud de los datos sea menor de 20 no se
rellena con blancos */
hay_error BOOLEAN;
DATE (fecha): Almacena datos de tipo fecha. Las fechas se almacenan internamente
como datos numéricos, por lo que es posible realizar operaciones aritméticas con ellas.
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. PL/SQL también permite la creación de
tipos personalizados (registros) y colecciones (tablas de PL/SQL), que veremos en sus
apartados correspondientes.
Existen, por supuesto, muchos más tipos de datos, de los que no es necesario
aprender todos, la siguiente tabla los muestra:
Tipo de dato
Oracle 8i Oracle 9i Descripción
/ Sintáxis
float
int
integer
smallint
BBBBBBB.RRRR.FFFFF BBBBBBB.RRRR.FFFFF
donde BBBBBBB es el donde BBBBBBB es el Datos binarios de ancho fijo. Cada
rowid registro de la base de datos tiene una
bloque en el fichero bloque en el fichero
dirección física o rowid.
de la base de datos; de la base de datos;
RRRR es la fila del RRRR es la fila del
bloque; FFFFF es el bloque; FFFFF es el
fichero de la base de fichero de la base de
datos. datos.
urowid Rowid universal. Donde tamaño es
Hasta 2000 bytes. Hasta 2000 bytes.
[tamaño] opcional.
Operadores en PL/SQL
Operador Acción
:= Operador de asignación
** Exponenciación (potencia)
* Multiplicación
/ División
+ Suma
- Resta
|| Concatenación. Útil para unir varias cadenas en una
Operadores lógicos:
NOT negación lógica de un tipo boolean
AND operador AND lógico entre dos tipos de dato boolean
OR operador OR lógico entre dos tipos de dato boolean
a:=3+5**3 será interpretado como 3+53, con lo cual a valdría 128, sin embargo,