Oracle

Páginas: 6 (1427 palabras) Publicado: 25 de abril de 2013
PL/SQL - Oracle

PL/SQL (Procedural Language/SQL) es una extensión de SQL, que agrega ciertas
construcciones propias de lenguajes procedimentales, obteniendose como resultado un lenguaje
estructural mas poderoso que SQL.
La unidad de programación utilizada por PL/SQL es el bloque.
Todos los programas de PL/SQL están conformados por bloques. Tipicamente, cada bloque lleva a
cabo una acciónlógica en el programa. Un bloque tendrá siempre la siguiente estructura:

DECLARE
//Sección declarativa: variables, tipos, y subprogramas
//de uso local

BEGIN
//Sección ejecutable: las instrucciones procedimentales, y de SQL
//aparecen aquí. Es la unica sección obligatoria en el bloque.

EXCEPTION
//Sección de manejo de excepciones. Las rutinas de manejo de errores
//aparecen aquiEND;
Solo se requiere que aparezca la sección ejecutable. Lo demas es opcional. Las unicas
instrucciones SQL permitidas en un bloque PL/SQL son INSERT, UPDATE, DELETE y SELECT,
ademas de algunas instrucciones para manipulación de datos, e instrucciones para control de
transacciones. Otras instrucciones de SQL como DROP, CREATE o ALTER no son permitidas. Se
permite el uso de comentariosestilo C (/* . . .*/). PL/SQL no es case sensitive por lo que no hay
distinción entre nombres con mayusculas y minusculas.
En la sección de declaraciones, se indican las variables que serán usadas dentro del bloque y sus
tipos. Por ejemplo:

DECLARE
myBeer VARCHAR(20);
price NUMBER(6,2);
En algunos casos, es posible que se desee que el tipo de una variable coincida con el tipo usado
para unacolumna de una tabla determinada, en esos casos se puede usar la construcción:

DECLARE
myBeer Beers.name%TYPE;
Con lo cual se logra que la variable myBeer tenga el mismo tipo que la columna name de la tabla
Beers.
Tambien es posible inicializar las variables, mediante el operador :=. Ademas, mediante el uso del
mismo operador es posible hacer asignaciones en el cuerpo del programa. Porejemplo:

DECLARE
price NUMBER := 300;
K.D.D Ltda. Compañía 1068 Of 502, Sgto. Centro, Sgto. Teléfono / fax 56 2) 696 47 21

2

BEGIN
price := price + 150;
END;
.
run
La ejecución de este bloque no tendrá ningun efecto, ya que no se están haciendo cambios sobre
la base de datos.
Ademas es posible usar sentencias condicionales y ciclos dentro de los bloques de PL/SQL. Una
sentenciacondicional tipica es de la forma:

IF (condicion)
THEN (lista de acciones)
ELSE (lista de acciones)
END IF;
Si se desea, se puede hacer el uso de varios casos de condición, mediante el uso de:

IF . . . THEN . . .
ELSIF . . . THEN . . .
ELSIF . . . THEN . . .
.
.
.
ELSE . . .
END IF;
En ambos casos, la clausula ELSE es opcional.
Si se desea crear un lazo, se puede usar lainstrucción:

LOOP
lista_de_instrucciones
END LOOP;
Al menos alguna de las instrucciones debe ser:

EXIT WHEN condicion;
De esta manera, el lazo terminará cuando la condición sea verdadera. Además es posible utilizar la
instrucción:

WHILE (condicion) LOOP
lista_de_instrucciones
END LOOP;
De esta forma, el ciclo solo se inicia si la condicion es verdadera en principio. Es posible que elprograma nunca entre en el ciclo. Usando la instrucción LOOP se garantizaba que siempre se
ejecutaría el cuerpo del ciclo al menos una vez. Por último, es posible usar ciclos que se ejecuten
un numero predeterminado de veces, mediante el uso de la instrucción:

K.D.D Ltda. Compañía 1068 Of 502, Sgto. Centro, Sgto. Teléfono / fax 56 2) 696 47 21

3

FOR i IN a..b LOOP
lista_de_instruccionesEND LOOP;
En este caso i es una variable de uso local, por lo que no es necesario que sea declarada, y puede
ser usada dentro del lazo, mientras que a y b son constantes.

K.D.D Ltda. Compañía 1068 Of 502, Sgto. Centro, Sgto. Teléfono / fax 56 2) 696 47 21

4

Procedimientos almacenados
Un procedimiento almacenado es un conjunto de instrucciones en PL/SQL, que pueden ser
llamado usando...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Oracle
  • Oracle
  • oracle
  • Oracle
  • Oracle
  • oracle
  • ORACLE
  • oracle

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS