Programación de bases de datos con PL /
SQL
1-3
Creación de bloques PL / SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos.
Objetivos
•Esta lección cubre los siguientes objetivos:
-Describe la estructura de un bloque PL / SQL.
-Identificar los diferentes tipos de bloques PL / SQL
-Identificar entornos de programación PL / SQL
-Cree y ejecute un bloque PL / SQL anónimo
-Mensajes de salida en PL / SQL
PLSQL 1-3
Creación de bloques PL /SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 3
Propósito
•Aquí aprenderá la estructura de un bloque PL / SQL y creará
un tipo de bloque: un bloque anónimo
•Más adelante en el curso, aprenderá a crear procedimientos,
funciones y paquetes utilizando la estructura básica que se encuentra
en bloques anónimos.
•Después de conocer los diferentes entornos en los que
puede desarrollar sus programas PL / SQL, también comience
a codificar PL / SQL en el entorno de desarrollo de Application Express
PLSQL 1-3
Creación de bloques PL /SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 4
Estructura de bloque PL / SQL
•Un bloque PL / SQL consta de tres secciones
Sección Descripción
La sección declarativa comienza con la palabra clave
Declarativo
DECLARE y termina cuando se inicia la sección ejecutable.
(Opcional)
La sección ejecutable comienza con la palabra clave BEGIN y
termina con END. Observe que END termina con un punto y
Ejecutable coma. La sección ejecutable de un bloque PL / SQL puede
(obligatorio) incluir cualquier número de bloques PL / SQL anidados.
Excepción La sección de excepción está anidada dentro de la sección
manejo ejecutable. Esta sección comienza con la palabra clave
(Opcional) EXCEPCIÓN.
PLSQL 1-3
Creación de bloques PL /SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 5
Secciones de estructura de bloque PL / SQL
Sección Descripción Inclusión
Contiene declaraciones de todas las variables,
Declarativo constantes, cursores y excepciones definidas por el
Opcional
(DECLARAR) usuario a las que se hace referencia en las secciones de
ejecutables y excepciones.
Contiene sentencias SQL para recuperar datos de la base
Ejecutable de datos y sentencias PL / SQL para
Obligatorio
(BEGIN… END;) ma nipular datos en el bloque. Debe contener en
al menos una declaración.
Excepción Especifica las acciones a realizar cuando se producen errores
(EXCEPCIÓN) y surgen condiciones anormales en la Opcional
sección ejecutable.
PLSQL 1-3
Creación de bloques PL /SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 6
Bloques anónimos
•Características de los bloques anónimos:
-Bloque sin nombre
-No almacenado en la base de datos
-Declarado en línea en el punto de una aplicación donde se ejecuta
-Compilado cada vez que se ejecuta la aplicación
-Pasado al motor PL / SQL para su ejecución en tiempo de ejecución
-No se puede invocar o llamar porque no tiene un nombre y no existe
después de que se ejecuta
PLSQL 1-3
Creación de bloques PL /SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 7
Bloques anónimos - Estructura básica
•Estructura básica de un bloque anónimo:
[DECLARE]
BEGIN
--statements
[EXCEPTION]
END;
•Las palabras clave / secciones DECLARE y EXCEPTION son
opcionales
PLSQL 1-3
Creación de bloques PL /SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 8
Ejemplos de bloques anónimos
•Solo sección ejecutable (mínimo requerido)
BEGIN
DBMS_OUTPUT.PUT_LINE('PL/SQL is easy!');
END;
•Secciones declarativas y ejecutables
DECLARE
v_date DATE := SYSDATE;
BEGIN
DBMS_OUTPUT.PUT_LINE(v_date);
END;
PLSQL 1-3
Creación de bloques PL /SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 9
Ejemplos de bloques anónimos
•Secciones declarativa, ejecutable y de excepción
DECLARE
v_first_name VARCHAR2(25);
v_last_name VARCHAR2(25);
BEGIN
SELECT first_name, last_name
INTO v_first_name, v_last_name
FROM employees
WHERE last_name = 'Oswald’;
DBMS_OUTPUT.PUT_LINE ('The employee of the month is: ‘
|| v_first_name || ' ' || v_last_name || '.’);
EXCEPTION
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE ('Your select statement retrieved
multiple rows. Consider using a cursor or changing the search criteria.’);
END;
PLSQL 1-3
Creación de bloques PL /SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 10
El compilador PL / SQL
•El bloque anónimo que se encuentra en la diapositiva anterior se
compila automáticamente cuando se ejecuta
•Si el código tiene errores que impiden su compilación, no se
ejecutará, pero devolverá el primer error de compilación que detecte
PLSQL 1-3
Creación de bloques PL /SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 11
El compilador PL / SQL
•Cada programa escrito en un lenguaje de programación de alto nivel
(C, Java, PL / SQL, etc.) debe verificarse y traducirse a código binario
(unos y ceros) antes de que pueda ejecutarse.
•El software que realiza esta verificación y traducción se llama
compilador.
•El compilador PL / SQL se ejecuta automáticamente cuando es
necesario
•Comprueba no solo que cada comando esté escrito correctamente, sino
también que exista cualquier objeto de base de datos referenciado (como
tablas) y que el usuario tenga los privilegios necesarios para acceder a ellos.
PLSQL 1-3
Creación de bloques PL /SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 12
Subprogramas
•Se denominan bloques PL / SQL
•Se almacenan en la base de datos.
•Se puede invocar cuando lo desee en función de su
solicitud
PROCEDURE name
IS
-- variable declarations
BEGIN
-- statements
[EXCEPTION]
END;
PLSQL 1-3
Creación de bloques PL /SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 13
Subprogramas
•Pueden declararse como procedimientos o como funciones.
-Procedimiento: realiza una acción
-Función: Calcula y devuelve un valor.
FUNCTION name
RETURN datatype
-- variable declaration(s)
IS
BEGIN
-- statements
RETURN value;
[EXCEPTION]
END;
PLSQL 1-3
Creación de bloques PL /SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 14
Ejemplos de bloques de código de subprograma
•Bloque de código para crear un procedimiento llamado PRINT_DATE:
CREATE OR REPLACE PROCEDURE print_date IS
v_date VARCHAR2(30);
BEGIN
SELECT TO_CHAR(SYSDATE,'Mon DD, YYYY’)
INTO v_date
FROM DUAL;
DBMS_OUTPUT.PUT_LINE(v_date);
END;
•Puede llamar a este procedimiento en una sección ejecutable:
BEGIN
PRINT_DATE;
END;
PLSQL 1-3
Creación de bloques PL /SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 15
Ejemplos de bloques de código de subprograma
•Bloque de código para crear una función llamada MAÑANA:
CREATE OR REPLACE FUNCTION tomorrow (p_today IN DATE)
RETURN DATE IS
v_tomorrow DATE;
BEGIN
SELECT p_today + 1 INTO v_tomorrow
FROM DUAL;
RETURN v_tomorrow;
END;
•Puede llamar a la función usando una declaración SQL o un
bloque PL / SQL como se muestra a continuación:
SELECT TOMORROW(SYSDATE) AS "Tomorrow's Date"
FROM DUAL;
or
BEGIN
DBMS_OUTPUT.PUT_LINE(TOMORROW(SYSDATE));
END;
PLSQL 1-3
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. dieciséis
Creación de bloques PL /SQL
Entornos de programación PL / SQL
•Hay muchas herramientas disponibles de Oracle que
proporcionan un entorno para desarrollar aplicaciones basadas
en bases de datos utilizando PL / SQL.
Entorno de desarrollo de aplicaciones basado en
Aplicación Express
navegador y basado en bases de datos.
Taller de SQL Un componente de Application Express.
Generador de aplicaciones Un componente de Application Express.
Un IDE para el desarrollo y la gestión de bases
Desarrollador SQL
de datos.
JDeveloper Un IDE para desarrollo basado en Java.
NetBeans Un IDE para Java, HTML5, PHP y C ++.
PLSQL 1-3
Creación de bloques PL /SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 17
Comandos SQL
•Como hizo en el curso de SQL, puede usar comandos SQL para
ingresar y ejecutar una instrucción SQL ÚNICA
•También usa comandos SQL para ingresar y ejecutar un bloque SINGLE
PL / SQL
PLSQL 1-3
Creación de bloques PL /SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 18
Scripts SQL
•Los scripts SQL pueden contener una o más sentencias SQL y/o
bloques PL / SQL
•Utilice secuencias de comandos SQL para ingresar y ejecutar secuencias de comandos de
declaraciones múltiples
•En los scripts SQL, los bloques PL / SQL anónimos deben ir
seguidos de una barra inclinada (/)
PLSQL 1-3
Creación de bloques PL /SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 19
Uso de DBMS_OUTPUT.PUT_LINE Ejemplo
•Mire este simple bloque PL / SQL y su salida
•¿Cómo puede mostrar el resultado?
PLSQL 1-3
Creación de bloques PL /SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 20
Uso de DBMS_OUTPUT.PUT_LINE Ejemplo
•Agreguemos una llamada a la función PUT_LINE en el
Paquete DBMS_OUTPUT.
•Ahora puedes ver
PLSQL 1-3
Creación de bloques PL /SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 21
Usando DBMS_OUTPUT.PUT_LINE
•DBMS_OUTPUT.PUT_LINE le permite mostrar resultados para que
pueda verificar que su bloque está funcionando
correctamente
•Le permite mostrar una cadena de caracteres a la vez, aunque
esto se puede concatenar
DECLARE
v_emp_count NUMBER;
BEGIN
DBMS_OUTPUT.PUT_LINE('PL/SQL is easy so far!’);
SELECT COUNT(*) INTO v_emp_count FROM employees;
DBMS_OUTPUT.PUT_LINE('There are '||v_emp_count||' rows in the employees table');
END;
PLSQL 1-3
Creación de bloques PL /SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 22
Terminología
•Los términos clave utilizados en esta lección incluyen:
-Bloque PL / SQL anónimo
-Compilador
-Subprogramas
-Procedimientos
-Funciones
PLSQL 1-3
Creación de bloques PL /SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 23
Resumen
•En esta lección, debería haber aprendido a:
-Describe la estructura de un bloque PL / SQL.
-Identificar los diferentes tipos de bloques PL / SQL
-Identificar entornos de programación PL / SQL
-Cree y ejecute un bloque PL / SQL anónimo
-Mensajes de salida en PL / SQL
PLSQL 1-3
Creación de bloques PL /SQL
Copyright © 2020, Oracle y / o sus afiliados. Reservados todos los derechos. 24