Capitulo 3

By delfinonunez

Aunque los bloques anónimos son muy útiles, sobre todo en la creación de scripts para ejecución batch ó de otro tipo. Regularmente se utilizan los bloques nombrados, algunos ejemplos que ya se mencionaron son los stored procedures, functions, triggers,etc.

Bloques anidados

En el capitulo anterior mencione que se pueden tener bloques dentro de otros bloques, a este tipo de diseño se le conoce como bloques anidados (nested blocks). Como ya se mencionó anteriormente, PL/SQL esta basado en el lenguaje de programación ADA y por consiguiente Pascal, PL/SQL es un lenguaje de bloques estructurados. En los ejemplos anteriores mencione que un bloque anónimo puede contener otro bloque anónimo; en el caso de los bloques nombrados sucede lo mismo, éstos pueden tener bloques anónimos y/o nombrados dentro de ellos.

Ejemplo:

PROCEDURE print_message IS

BEGIN

    DBMS_OUTPUT.PUT_LINE('prueba');

 

    BEGIN

       DBMS_OUTPUT.PUT_LINE('bloque interno');

    EXCEPTION

    WHEN OTHERS THEN

       DBMS_OUTPUT.PUT_LINE('error encontrado');

    END;

 

EXCEPTION

WHEN OTHERS THEN

    DBMS_OUTPUT.PUT_LINE('error encontrado en bloque principal');

END;

 

En el ejemplo anterior hay un bloque anónimo dentro de un bloque nombrado (procedure), dentro del bloque anónimo se va a imprimir el mensaje bloque interno y/o el mensaje de error error encontrado.

PROCEDURE print_message IS

 

   procedure mess is

   begin

     dbms_output.put_line('programa interno');

   end;

BEGIN

   mess();

END;

 

En éste ejemplo se puede ver que se tiene un stored procedure dentro de otro stored procedure.

 

El conjunto de caracteres de PL/SQL (character set)

El tipo de caracteres que se utiliza en PL/SQL es el US7ASCII.

Tipo

Caracteres

Letras

A-Z, a-z

Dígitos

0-9

Símbolos

~ ! @ # $ % * ( ) _ – + = | : ; ” ‘ < > , . ? / ^

Espacios en blanco

Tab, espacio, nueva línea, retorno de carro.

 

Símbolos en PL/SQL

Símbolo

Descripción

;

Termina las líneas de PL/SQL

%

Indicador de atributos como %ISOPEN de los cursores ó %ROWTYPE para la declaración de variables.

_

Underscore. Se utiliza en la condition de LIKE.

@

Indicador de localización remota.

:

Variables bind.

<>, ¡=, ^=,~=

Diferente

||

Concatenación

<< >>

Etiquetas

<=,>=

Comparación

:=

Asignación de valores.

=>

Operador de asociación

..

Rangos

/* */

Comentarios de varias líneas

Comentarios de una linea

 

Respuestas del capitulo anterior.

1.-

SQL> declare

  2  v_var number;

  3  begin

  4  null;

  5  exception

  6  when others then

  7  null;

  8  end;

  9  /

 

PL/SQL procedure successfully completed.

 

2.-

SQL> begin

  2     begin

  3       begin

  4         null;

  5       end;

  6     end;

  7  end;

  8  /

 

PL/SQL procedure successfully completed.

 

3.-

SQL> begin

  2     begin

  3       null;

  4     end;

  5     begin

  6       null;

  7     end;

  8  end;

  9  /

 

PL/SQL procedure successfully completed.

 

4.-

SQL> begin

  2  null;

  3  exception

  4  when others then

  5     begin

  6       null;

  7     end;

  8  end;

  9  /

 

PL/SQL procedure successfully completed.

2 comentarios para “Capitulo 3”

  1. tomas xD Dice:

    pero como hago una tabulación?

  2. delfinonunez Dice:

    Hola tomas,
    A que te refieres con tabulación? que es lo quieres hacer?

Escribe un comentario