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.
Abril 7, 2008 a las 2:14 pm
pero como hago una tabulación?
Abril 7, 2008 a las 6:48 pm
Hola tomas,
A que te refieres con tabulación? que es lo quieres hacer?