1.2.1 Unidades Logicas y Bloques PLSQL Anidados

Page 1

Unidades Léxicas y Bloques PL/SQL Anidados MDY3131


Experiencia de Aprendizaje y Competencia Asociada Experiencia

Nº 1

Nombre

Unidad de Competencia Especialidad – Nivel de la Competencia de Empleabilidad

Desarrolla operaciones sobre la base de datos que permitan administrar los objetos de la misma de acuerdo a Construyendo Bloques requerimientos de usuario y buenas Anónimos PL/SQL Simples prácticas de la industria. Resolución de Problemas (N1)


Objetivos de la Clase

• Qué son las Unidades Léxicas y sus características. • Cómo usar de Operadores PL/SQL. • Cómo crear bloques PL/SQL anidados. • Qué es el Ámbito y Visibilidad de la Variable.

3


Unidades Léxicas en un Bloque PL/SQL


Unidades Léxicas en un Bloque PL/SQL Son Son componentes componentes básicos básicos de de cualquier cualquier bloque bloque PL/SQL PL/SQL

Incluyen Incluyen letras, letras, números, números, tabulaciones, tabulaciones, espacios, espacios, saltos saltos de de línea línea yy símbolos símbolos

Pueden Pueden ser ser clasificados clasificados como como identificadores, identificadores, delimitadores delimitadores (símbolos), (símbolos), literales literales yy comentarios comentarios

Identificadores

5


Unidades Léxicas en un Bloque PL/SQL •

Delimitadores Son Son símbolos símbolos que que tienen tienen una una función función especial especial en en un un bloque bloque PL/SQL PL/SQL

6


Unidades Léxicas en un Bloque PL/SQL •

Literales Un Un literal literal es es cualquier cualquier valor valor textual textual que que se se asignado asignado aa una una variable variable

Un Un literal literal es es un un valor valor explícito explícito de de tipo tipo numérico, numérico, caracter, caracter, fecha fecha oo booleano booleano

Los Los literales literales de de caracteres caracteres yy fechas fechas deben deben irir entre entre comillas comillas simples simples

Ejemplo: DECLARE v_comm NUMBER(3) :=50; v_fecha DATE; v_flag BOOLEAN; v_nombre VARCHAR2(30) := 'MARÍA'; BEGIN v_fecha := '01/05/2020'; IF v_comm = 0 THEN v_flag := TRUE; END IF; END;

7


Unidades Léxicas en un Bloque PL/SQL •

Comentario Es Es una una texto texto que que se se incluye incluye en en el el código código que que no no es es interpretado interpretado por por el el compilador compilador

Es Es una una buena buena práctica práctica de de programación programación para para documentar documentar los los programas programas

Se Se pueden pueden usar usar los los símbolos símbolos –– (para (para una una línea) línea) oo /* /* */ */ (múltiples (múltiples líneas) líneas)

Ejemplo: DECLARE v_sal_anual NUMBER (9,2); BEGIN -- Comienzo de la sección ejecutable /* La siguiente sentencia SQL obtiene desde tabla EMPLOYEES el salario anual del empleado con identificación igual a 100 */ SELECT SUM(salary * 12) INTO v_sal_anual FROM employees; DBMS_OUTPUT.PUT_LINE('Salario anual : ' || TO_CHAR(v_sal_anual, '$999,999,999')); END; -- Este es el fin del bloque

8


Operadores PL/SQL Las Las operaciones operaciones dentro dentro de de una una expresión expresión se se realizan realizan en en orden orden de de acuerdo acuerdo aa su su precedencia precedencia

Le Le orden orden de de precedencia precedencia de de los los operadores operadores se se puede puede cambiar cambiar utilizando utilizando paréntesis paréntesis

9


Operadores PL/SQL •

Ejemplo: DECLARE v_loop_cuenta NUMBER(3):=0; v_buen_sal BOOLEAN; v_mensaje VARCHAR2(40); v_salario NUMBER(8):=8000; BEGIN v_loop_cuenta := v_loop_cuenta + 1; v_buen_sal := v_salario BETWEEN 50000 AND 150000; v_mensaje := 'El nuevo salario es: ' || v_salario * 1.15; END;

10


Bloques PL/SQL Anidados


Anidar Bloques PL/SQL Los Los bloques bloques PL/SQL PL/SQL se se pueden pueden anidar anidar

La La sección sección ejecutable ejecutable (BEGIN (BEGIN ... ... END) END) puede puede contener contener bloques bloques anidados anidados

La La sección sección de de excepción excepción también también puede puede contener contener bloques bloques anidados anidados

12


Anidar Bloques PL/SQL •

Ejemplo: DECLARE v_variable_externa VARCHAR2(20):='VARIABLE GLOBAL'; BEGIN DECLARE v_variable_interna VARCHAR2(20):='VARIABLE LOCAL'; BEGIN DBMS_OUTPUT.PUT_LINE(v_variable_interna); DBMS_OUTPUT.PUT_LINE(v_variable_externa); END; DBMS_OUTPUT.PUT_LINE(v_variable_externa); END;

13


Anidar Bloques PL/SQL •

Ejemplo: DECLARE v_nom_emp employees.first_name%type; v_nom_pais VARCHAR2(30); BEGIN SELECT first_name INTO v_nom_emp FROM employees WHERE employee_id = 100; BEGIN SELECT country_name INTO v_nom_pais FROM countries WHERE country_id='ZZ'; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('No hay fila en tabla COUNTRIES'); END; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('No hay fila en tabla EMPLOYEES'); END; 14


Ámbito y Visibilidad de la Variable Ámbito Ámbito es es la la parte parte del del programa programa en en la la cual cual la la variable variable se se declara declara yy es es accesible accesible

Ejemplo:

Visibilidad Visibilidad es es la la parte parte del del programa programa donde donde se se puede puede acceder acceder aa la la variable variable sin sin tener tener que que usar usar un un calificador calificador

DECLARE v_nom_padre VARCHAR2(20):='Patricio'; v_fecha_cumple DATE:='20-Abr-1972'; BEGIN DECLARE v_nom_hijo VARCHAR2(20):='Miguel'; v_fecha_cumple DATE:='13-May-1992'; BEGIN DBMS_OUTPUT.PUT_LINE('El hijo ' || v_nom_hijo || ' nació el ' || v_fecha_cumple); DBMS_OUTPUT.PUT_LINE('El papá de ' || v_nom_hijo || ' se llama ' || v_nom_padre); END; DBMS_OUTPUT.PUT_LINE('Don ' || v_nom_padre || ' nació el ' ||v_fecha_cumple); END;

15


Ámbito y Visibilidad de la Variable Un Un calificador calificador es es un un nombre nombre que que se se le le da da aa un un bloque bloque para para la la visibilidad visibilidad de de una una variable variable con con el el mismo mismo nombre nombre en en diferentes diferentes bloques bloques

Ejemplo:

<<bloque_padre>> DECLARE v_nom_padre VARCHAR2(20):='Patricio'; v_fecha_cumple DATE:='20-Abr-1972'; BEGIN DECLARE v_nom_hijo VARCHAR2(20):='Miguel'; v_fecha_cumple DATE:='13-May-1992'; BEGIN DBMS_OUTPUT.PUT_LINE('El hijo ' || v_nom_hijo || ' nació el ' || v_fecha_cumple); DBMS_OUTPUT.PUT_LINE('El papá de ' || v_nom_hijo || ' se llama ' || v_nom_padre); DBMS_OUTPUT.PUT_LINE('Don ' || v_nom_padre || ' nació el ' ||bloque_padre.v_fecha_cumple); END; END; 16


Resumen de la Clase

• Se explicó que son las Unidades Léxicas y sus características. • Se explicó el uso de Operadores PL/SQL. • Se explicó cómo crear bloques PL/SQL anidados. • Se explicó qué es el Ámbito y Visibilidad de la Variable.

17


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.