sábado, 15 de septiembre de 2007

Bienvenidos Todos

Este es otro espacio para el intercambio de ideas y estudio.
Espero que les sirva para aprender.

La estructura general es:

[DECLARE
variables, constantes, excepciones de usuario...]
BEGIN
órdenes SQL
órdenes PL/SQL
[EXCEPTION
acciones a realizar al ocurrir un error]
END;
/

NOTA:
Para ejecutar un bloque PL/SQL siempre hay que colocar al final la barra /.



Podemos crear diferentes tipos de bloques:
Bloques anónimos: Se construyen de forma dinámica y se suelen ejecutar una sola
vez.
Bloques nominados: Igual que los anónimos pero con una etiqueta que les da
nombre.
Subprogramas: Procedimientos, paquetes y funciones, almacenados en la base de
datos y que se ejecutan en múltiples ocasiones. Los subprogramas se ejecutarán
mediante una llamada.
Disparadores (“Triggers”): Bloques nominados que se almacenan en la base de
datos y que se ejecutan ante algún suceso.

Variables

Las variables se definen en la sección declarativa de los bloques PL/SQL dónde también
pueden inicializarse.
La asignación de nuevos valores a las variables puede hacerse en la parte ejecutable del
bloque.
Pueden utilizarse para pasar valores como argumentos a subprogramas. Estas podrán ser
de tipo IN (variable de entrada, OUT, variable de salida o INOUT, variable de
entrada/salida).
También podrán utilizarse para almacenar valores devueltos o requeridos por una orden
SQL.
Todas las variables tienen un tipo. Los posibles tipos de una variable son:
Escalar. Almacenan un valor único. Son los mismos que los de las columnas de las
tablas (VARCHAR2, NUMBER, DATE, CHAR, LONG, LONG_RAW,
BINARY_INTEGER, LAW_INTEGER) más el BOOLEAN
Compuesto. Grupos de datos: tablas PL/SQL, registros...
Puntero. Designan elementos de otros programas.
LOB (Large OBjects). Almacenan gran cantidad de información. Las variables de
tipo LOB permiten almacenar datos no estructurados (imágenes, texto...) de hasta 4
GB de tamaño

Declaración de variables

Sintaxis:
[CONSTANT] [NOT NULL] [{:= DEFAULT
}];

Ejemplo:
DECLARE
fecha DATE;
dep_num NUMBER(2) NOT NULL := 10;
ciudad VARCHAR2(10) := ‘Ciudad Real’;
Km_a_milla CONSTANT NUMBER := 1.4;
NOTA:
Las variables declaradas como NOT NULL siempre deben ser inicializadas.
La inicialización puede hacerse utilizando := o la palabra reservada DEFAULT.
Si una variable no se inicializa contendrá el valor NULL.
Las constantes deben ser inicializadas.

Atributo %TYPE

El atributo %TYPE se utiliza para declarar una variable con el mismo tipo que una
columna de una tabla o que otra variable definida anteriormente.

Sintaxis:
/*************************************************************************/
Ejemplo:
var_nombre Empleados.nombre%TYPE;
balance NUMBER;
balance_minimo balance%TYPE := 10;

Comentarios en PL/SQL

Pueden añadirse comentarios al código. Estos comentarios pueden ser especificados con:

/*comentario
más comentario */

-- comentario de línea

Funciones PL/SQL

Las funciones utilizables en PL/SQL
(
LOWER:
UPPER:
INITCAP:
CANCAT:
SUBSTR:
LENGTH:
ROUND:
TRUNC:
MOD:
MONTHS_BETWEEN:
ADD_MONTHS:
NEXT_DAY, LAST_DAY:
TRIM:
)
excepto las de agrupamiento, ya que estas se aplican sobre una columna de una tabla.