Saltar la navegación

2.3.- El bloque PL/SQL.

Ya hemos visto las unidades léxicas que componen PL/SQL, los tipos de datos que podemos utilizar y cómo se definen las variables y las constantes. Ahora vamos a ver la unidad básica en PL/SQL que es el bloque.

Un bloque PL/SQL consta de tres zonas:

  • Declaraciones: definiciones de variables, constantes, cursores y excepciones.
  • Proceso: zona donde se realizará el proceso en sí, conteniendo las sentencias ejecutables.
  • Excepciones: zona de manejo de errores en tiempo de ejecución.

La sintaxis es la siguiente:


[DECLARE
     [Declaración de variables, constantes, cursores y excepciones]]
BEGIN
     [Sentencias ejecutables]
[EXCEPTION
     Manejadores de excepciones]
END;

Los bloques PL/SQL pueden anidarse a cualquier nivel. Como hemos comentado anteriormente el ámbito y la visibilidad de las variables es la normal en un lenguaje procedimental. Por ejemplo, en el siguiente fragmento de código se declara la variable aux en ambos bloques, pero en el bloque anidado aux con valor igual a 10 actúa de variable global y aux con valor igual a 5 actúa como variable local, por lo que en la comparación evaluaría a FALSE, ya que al tener el mismo nombre la visibilidad dominante sería la de la variable local.

DECLARE
     aux number := 10;-- Variable global
BEGIN
     DECLARE
          aux number := 5;    -- Variable local al bloque donde es definida      
     BEGIN
          ...
          IF aux = 10 THEN     --evalúa a FALSE, no entraría
          ...
     END;
END;


La "visibilidad" de un identificador determina las partes del programa en las que se puede hacer referencia a él (su "ámbito"). Un identificador está visible (es decir, se puede utilizar) solo en las partes de un programa enmarcado por su "ámbito", que se puede limitar (en orden de restricción creciente) al archivo, función, bloque o prototipo de función en que aparece. El ámbito de un identificador es la parte del programa en que se puede usar el nombre. Esto a veces se denomina "ámbito léxico"

Para saber más

En el siguiente enlace podrás ampliar información sobre el ámbito y la visibilidad de las variables en PL/SQL.

Ámbito y visibilidad en PL/SQL.