UNIVERSIDAD NACIONAL DE CHIMBORAZO
FACULTAD DE CIENCIAS DE LA EDUCACIÓN HUMANAS Y TECNOLOGÍAS
ESCUELA DE INFORMÁTICA APLICADA A LA EDUCACIÓN
Realizado por: Jhonny Tenesaca.
Curso: Sexto
1. Que es PL/SQL (Procedural Language/Structured Query Language) - Lenguaje de programación
incrustado en Oracle.
SQL es un lenguaje de consulta para los sistemas de bases de datos relaciónales, pero que no posee la potencia
de los lenguajes de programación. No permite el uso de variables, estructuras de control de flujo, bucles... y
demás elementos característicos de la programación. No es de extrañar, SQL es un lenguaje de consulta, no
un lenguaje de programación.
Sin embargo, SQL es la herramienta ideal para trabajar con bases de datos. Cuando se desea realizar una
aplicación completa para el manejo de una base de datos relacional, resulta necesario utilizar alguna
herramienta que soporte la capacidad de consulta del SQL y la versatilidad de los lenguajes de programación
tradicionales. PL/SQL es el lenguaje de programación que proporciona Oracle para extender el SQL estándar
con otro tipo de instrucciones y elementos propios de los lenguajes de programación.
Con PL/SQL vamos a poder programar las unidades de programa de la base de datos ORACLE, están son:
 Procedimientos almacenados
 Funciones
 Triggers
 Scripts
Pero además PL/SQL nos permite realizar programas sobre las siguientes herramientas de ORACLE:
 Oracle Forms
 Oracle Reports
 Oracle Graphics
 Oracle Aplication Server
(devjoker, 2014)
¿Qué es PL/SQL?
 Lenguaje de procesamiento procedimental.
 Implementado por Oracle.
 Dispone de estructuras de programación similares a las de la mayoría de los lenguajes de
programación.
 Objetivo: Interactuar con la B.D.
PL/SQL (Estructura Bloques Anónimos)
 [DECLARE]
Define objetos PL/SQL que serán utilizados dentro del mismo bloque
 BEGIN
Sentencias Ejecutables
 [EXCEPTION]
Qué hacer si la acción ejecutada causa error
 END;
PL/SQL (Estructura de Procedimiento)
 PROCEDURE nombre IS
Sección Declarativa
 BEGIN
Sección Ejecutable
 [EXCEPTION]
Sección de Excepciones
 END;
UNIVERSIDAD NACIONAL DE CHIMBORAZO
FACULTAD DE CIENCIAS DE LA EDUCACIÓN HUMANAS Y TECNOLOGÍAS
ESCUELA DE INFORMÁTICA APLICADA A LA EDUCACIÓN
PL/SQL (Estructura de Función)
 FUNCTION nombre RETURN tipo_dato IS
Sección Declarativa
 BEGIN
Sección Ejecutable
 [EXCEPTION]
Sección de Excepciones
 END;
PL/SQL (Declaración de Variables)
Reglas para nombres:
 Dos variables pueden tener el mismo nombre, si están en bloques diferentes.
 El nombre de la variable (identificador) no debería ser el mismo que el de una columna de una tabla
utilizada en el bloque.
PL/SQL (Asignación e Inicialización de Variables)
 Asignación:
 Inicialización:
 Por defecto, todas las variables se inicializan a NULL.
PL/SQL (Tipos de Variables)
 ESCALARES
 BOOLEANAS
 COMPUESTAS
 LOB
 DE ENLACE (BIND)
PL/SQL (Variables Escalares)
 VARCHAR2 (longitud_máxima)
 NUMBER [(precisión, escala)]
 DATE
 CHAR [(longitud_máxima)]
 LONG
 LONG RAW
 BOOLEAN
 BINARY_INTEGER
(www.mundoracle., 2014)
2. Características PL/SQL (Procedural Language/Structured Query Language) - Lenguaje de
programación incrustado en Oracle
 Utilización de constantes, variables y tipos (tanto predefinidos, como definidos por el usuario).
 Estructuras de control: bucles, ordenes condicionadas.
 Paquetes, procedimientos, funciones, bloques PL/SQL.
UNIVERSIDAD NACIONAL DE CHIMBORAZO
FACULTAD DE CIENCIAS DE LA EDUCACIÓN HUMANAS Y TECNOLOGÍAS
ESCUELA DE INFORMÁTICA APLICADA A LA EDUCACIÓN
 Funciones predefinidas: aritméticas, lógicas, relacionales.
 Cursores.
 Tratamiento de excepciones.
 Posibilidad de utilización de comentarios.
El lenguaje PL/SQL no distingue de mayúscula de minúscula.
Los comentarios monolínea van precedidos de “–” y los comentarios multilíneas estarían entre “/*” y “*/”.
VARIABLES Y CONSTANTES
La declaración de variables tiene el formato siguiente:
Nombre_variable tipo_dato [NOT NULL] [ :=valor];
La declaración de constantes tiene el formato siguiente:
Nombre_constante CONSTANT tipo_dato :=valor;
Siendo tipo_dato: tipo de datos soportados por Oracle como: NUMBER, DATE, CHAR, VARCHAR VARCHAR2,
BOOLEAN, …
BLOQUE PL/SQL
Elementos de un bloque serían:
 Declaraciones (opcional): Es donde se declaran las constantes, variables y cursores, que se utilizarán
en el bloque.
 Instrucciones (obligatorio): Contiene las sentencias a ejecutar.
 Excepciones (opcional): Desde este elemento se puede capturar las excepciones del sistema o
lanzada por el propio usuario.
BLOQUE PL/SQL NO ALMACENADO:
[ DECLARE | IS / AS ]
BEGIN
[ EXCEPTION ]
END
PROCEDIMIENTO:
CREATE [OR REPLACE] PROCEDURE nombre_procedimiento [nombre_parametro modo tipodatos_parametro
] IS | AS
BEGIN
[ EXCEPTION ]
END
FUNCIÓN:
CREATE [OR REPLACE] FUNCTION nombre_función [nombre_parámetro modo tipodatos_parametro ]
RETURN tipodatos_retorno IS | AS
BEGIN
[ EXCEPTION ]
END
TRIGGER:
CREATE [OR REPLACE] TRIGGER nombre_trigger
momento_ejecución evento [evento] ON nombre_tabla
[REFERENCING OLD AS old | NEW AS new]
FOR EACH ROW
[WHEN condición]
BEGIN
[ EXCEPTION ]
END
UNIVERSIDAD NACIONAL DE CHIMBORAZO
FACULTAD DE CIENCIAS DE LA EDUCACIÓN HUMANAS Y TECNOLOGÍAS
ESCUELA DE INFORMÁTICA APLICADA A LA EDUCACIÓN
Ejemplo procedimiento:
DECLARE
/* Declaración de la variable donde se recogerá el valor de la fecha actual */
fecha DATE;
/* Declaración genérica de error no controlado por el sistema */
error_generico CONSTANT VARCHAR2(10):= 'Error descontrolado';
BEGIN
/* Parte de ejecución */
SELECT SYSDATE INTO fecha -- Recoge la fecha actual y la asigna a la variable fecha
FROM DUAL;
dbms_output.put_line('La fecha actual es: '||fecha);
EXCEPTION
-- tratamiento de excepciones
WHEN OTHERS THEN -- Captura las excepciones generadas por el sistema
dbms_output.put_line(error_generico); -- Muestra el error declarado previamente como constante
END;
/
(mundodb, 2014)
3. Ventajas y desventajas de PL/SQL (Procedural Language/Structured Query Language) - Lenguaje de
programación incrustado en Oracle.
Ventajas.
 Creación de sentencias en tiempo de ejecución.
 Interactivo con el usuario.
 Acceder a objetos no existentes en tiempo de compilación.
 Gestión de permisos de usuarios de forma dinámica.
 Permite ejecutar instrucciones DDL (create, alter, drop, grant, …)
Desventajas
 No siempre se forman las consultas más óptimas.
 Problemas de seguridad por ataques de inyección SQL.
Bibliografía
devjoker. (2014). Programación con PL/SQL. Obtenido de Programacion .NET ASP.NET C# VB.NET
SQL Server ORACLE: http://www.devjoker.com/contenidos/articulos/21/Programacion-
con-PLSQL.aspx
mundodb. (2014). Introducción a Oracle PL/SQL. Obtenido de mundodb.es:
http://mundodb.es/introduccion-a-oracle-plsql
www.mundoracle. (2014). Manual de Iniciación a Oracle. Obtenido de mundoracle:
http://www.mundoracle.com/pl-sql.html?Pg=sql_plsql_11.htm

Tenesaca jhonny 6_s_ti_2

  • 1.
    UNIVERSIDAD NACIONAL DECHIMBORAZO FACULTAD DE CIENCIAS DE LA EDUCACIÓN HUMANAS Y TECNOLOGÍAS ESCUELA DE INFORMÁTICA APLICADA A LA EDUCACIÓN Realizado por: Jhonny Tenesaca. Curso: Sexto 1. Que es PL/SQL (Procedural Language/Structured Query Language) - Lenguaje de programación incrustado en Oracle. SQL es un lenguaje de consulta para los sistemas de bases de datos relaciónales, pero que no posee la potencia de los lenguajes de programación. No permite el uso de variables, estructuras de control de flujo, bucles... y demás elementos característicos de la programación. No es de extrañar, SQL es un lenguaje de consulta, no un lenguaje de programación. Sin embargo, SQL es la herramienta ideal para trabajar con bases de datos. Cuando se desea realizar una aplicación completa para el manejo de una base de datos relacional, resulta necesario utilizar alguna herramienta que soporte la capacidad de consulta del SQL y la versatilidad de los lenguajes de programación tradicionales. PL/SQL es el lenguaje de programación que proporciona Oracle para extender el SQL estándar con otro tipo de instrucciones y elementos propios de los lenguajes de programación. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos ORACLE, están son:  Procedimientos almacenados  Funciones  Triggers  Scripts Pero además PL/SQL nos permite realizar programas sobre las siguientes herramientas de ORACLE:  Oracle Forms  Oracle Reports  Oracle Graphics  Oracle Aplication Server (devjoker, 2014) ¿Qué es PL/SQL?  Lenguaje de procesamiento procedimental.  Implementado por Oracle.  Dispone de estructuras de programación similares a las de la mayoría de los lenguajes de programación.  Objetivo: Interactuar con la B.D. PL/SQL (Estructura Bloques Anónimos)  [DECLARE] Define objetos PL/SQL que serán utilizados dentro del mismo bloque  BEGIN Sentencias Ejecutables  [EXCEPTION] Qué hacer si la acción ejecutada causa error  END; PL/SQL (Estructura de Procedimiento)  PROCEDURE nombre IS Sección Declarativa  BEGIN Sección Ejecutable  [EXCEPTION] Sección de Excepciones  END;
  • 2.
    UNIVERSIDAD NACIONAL DECHIMBORAZO FACULTAD DE CIENCIAS DE LA EDUCACIÓN HUMANAS Y TECNOLOGÍAS ESCUELA DE INFORMÁTICA APLICADA A LA EDUCACIÓN PL/SQL (Estructura de Función)  FUNCTION nombre RETURN tipo_dato IS Sección Declarativa  BEGIN Sección Ejecutable  [EXCEPTION] Sección de Excepciones  END; PL/SQL (Declaración de Variables) Reglas para nombres:  Dos variables pueden tener el mismo nombre, si están en bloques diferentes.  El nombre de la variable (identificador) no debería ser el mismo que el de una columna de una tabla utilizada en el bloque. PL/SQL (Asignación e Inicialización de Variables)  Asignación:  Inicialización:  Por defecto, todas las variables se inicializan a NULL. PL/SQL (Tipos de Variables)  ESCALARES  BOOLEANAS  COMPUESTAS  LOB  DE ENLACE (BIND) PL/SQL (Variables Escalares)  VARCHAR2 (longitud_máxima)  NUMBER [(precisión, escala)]  DATE  CHAR [(longitud_máxima)]  LONG  LONG RAW  BOOLEAN  BINARY_INTEGER (www.mundoracle., 2014) 2. Características PL/SQL (Procedural Language/Structured Query Language) - Lenguaje de programación incrustado en Oracle  Utilización de constantes, variables y tipos (tanto predefinidos, como definidos por el usuario).  Estructuras de control: bucles, ordenes condicionadas.  Paquetes, procedimientos, funciones, bloques PL/SQL.
  • 3.
    UNIVERSIDAD NACIONAL DECHIMBORAZO FACULTAD DE CIENCIAS DE LA EDUCACIÓN HUMANAS Y TECNOLOGÍAS ESCUELA DE INFORMÁTICA APLICADA A LA EDUCACIÓN  Funciones predefinidas: aritméticas, lógicas, relacionales.  Cursores.  Tratamiento de excepciones.  Posibilidad de utilización de comentarios. El lenguaje PL/SQL no distingue de mayúscula de minúscula. Los comentarios monolínea van precedidos de “–” y los comentarios multilíneas estarían entre “/*” y “*/”. VARIABLES Y CONSTANTES La declaración de variables tiene el formato siguiente: Nombre_variable tipo_dato [NOT NULL] [ :=valor]; La declaración de constantes tiene el formato siguiente: Nombre_constante CONSTANT tipo_dato :=valor; Siendo tipo_dato: tipo de datos soportados por Oracle como: NUMBER, DATE, CHAR, VARCHAR VARCHAR2, BOOLEAN, … BLOQUE PL/SQL Elementos de un bloque serían:  Declaraciones (opcional): Es donde se declaran las constantes, variables y cursores, que se utilizarán en el bloque.  Instrucciones (obligatorio): Contiene las sentencias a ejecutar.  Excepciones (opcional): Desde este elemento se puede capturar las excepciones del sistema o lanzada por el propio usuario. BLOQUE PL/SQL NO ALMACENADO: [ DECLARE | IS / AS ] BEGIN [ EXCEPTION ] END PROCEDIMIENTO: CREATE [OR REPLACE] PROCEDURE nombre_procedimiento [nombre_parametro modo tipodatos_parametro ] IS | AS BEGIN [ EXCEPTION ] END FUNCIÓN: CREATE [OR REPLACE] FUNCTION nombre_función [nombre_parámetro modo tipodatos_parametro ] RETURN tipodatos_retorno IS | AS BEGIN [ EXCEPTION ] END TRIGGER: CREATE [OR REPLACE] TRIGGER nombre_trigger momento_ejecución evento [evento] ON nombre_tabla [REFERENCING OLD AS old | NEW AS new] FOR EACH ROW [WHEN condición] BEGIN [ EXCEPTION ] END
  • 4.
    UNIVERSIDAD NACIONAL DECHIMBORAZO FACULTAD DE CIENCIAS DE LA EDUCACIÓN HUMANAS Y TECNOLOGÍAS ESCUELA DE INFORMÁTICA APLICADA A LA EDUCACIÓN Ejemplo procedimiento: DECLARE /* Declaración de la variable donde se recogerá el valor de la fecha actual */ fecha DATE; /* Declaración genérica de error no controlado por el sistema */ error_generico CONSTANT VARCHAR2(10):= 'Error descontrolado'; BEGIN /* Parte de ejecución */ SELECT SYSDATE INTO fecha -- Recoge la fecha actual y la asigna a la variable fecha FROM DUAL; dbms_output.put_line('La fecha actual es: '||fecha); EXCEPTION -- tratamiento de excepciones WHEN OTHERS THEN -- Captura las excepciones generadas por el sistema dbms_output.put_line(error_generico); -- Muestra el error declarado previamente como constante END; / (mundodb, 2014) 3. Ventajas y desventajas de PL/SQL (Procedural Language/Structured Query Language) - Lenguaje de programación incrustado en Oracle. Ventajas.  Creación de sentencias en tiempo de ejecución.  Interactivo con el usuario.  Acceder a objetos no existentes en tiempo de compilación.  Gestión de permisos de usuarios de forma dinámica.  Permite ejecutar instrucciones DDL (create, alter, drop, grant, …) Desventajas  No siempre se forman las consultas más óptimas.  Problemas de seguridad por ataques de inyección SQL. Bibliografía devjoker. (2014). Programación con PL/SQL. Obtenido de Programacion .NET ASP.NET C# VB.NET SQL Server ORACLE: http://www.devjoker.com/contenidos/articulos/21/Programacion- con-PLSQL.aspx mundodb. (2014). Introducción a Oracle PL/SQL. Obtenido de mundodb.es: http://mundodb.es/introduccion-a-oracle-plsql www.mundoracle. (2014). Manual de Iniciación a Oracle. Obtenido de mundoracle: http://www.mundoracle.com/pl-sql.html?Pg=sql_plsql_11.htm