Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Yungan geovanny 6_s_ti_2
1. ESCUELA DE: Informática Aplicada A La Educación
NOMBRE: Franklin Geovanny Yungán Gualli
DOCENTE: Leonardo Ayavaca
SEXTO: Semestre “A”
RIOBAMBA- ECUADOR
2. PL/SQL (PROCEDURAL LANGUAGE/STRUCTURED QUERY LANGUAGE) -
LENGUAJE DE PROGRAMACIÓN INCRUSTADO EN ORACLE
¿Qué es?
PL/SQL significa Procedural Language/Structured Query Language (una extensión de
programación estructurada sobre SQL). PL/SQL ofrece un conjunto de instrucciones clásicos de la
programación estructurada (instrucción condicional IF, loops o iteraciones, asignaciones),
organizado dentro de bloques (lo que se explica más adelante), que complementan y amplían el
alcance de SQL.
Sin duda que es posible crear aplicaciones sobre Oracle y SQL sin usar PL/SQL. Sin embargo,
utilizar PL/SQL para realizar operaciones específicas de bases de datos, particularmente la
ejecución de sentencias SQL, ofrece varias ventajas, incluyendo una estrecha integración con
SQL, un mejor rendimiento a través del tráfico de red reducido, y la portabilidad (los programas
PL/SQL pueden correr en cualquier instancia de base de datos Oracle). Por lo tanto, el código del
front-end de muchas aplicaciones ejecuta tanto sentencias SQL como bloques PL/SQL, para
maximizar el rendimiento al tiempo que mejora la capacidad de mantenimiento de las aplicaciones.
PL/SQL es un lenguaje estructurado con bloques. Un bloque PL/SQL es definido por las palabras
clave declare, begin, exception, y end, que dividen el bloque en tres secciones
Declarativa: sentencias que declaran variables, constantes y otros elementos de código, que
después pueden ser usados dentro del bloque ejecutable: sentencias que se ejecutan cuando se
ejecuta el bloque manejo de excepciones: una sección especialmente estructurada para atrapar y
manejar cualquier excepción que se produzca durante la ejecución de la sección ejecutable
Sólo la sección ejecutable es obligatoria. No es necesario que usted declare nada en un bloque, ni
que maneje las excepciones que se puedan lanzar.
Un bloque es en sí mismo una sentencia ejecutable, por lo que se pueden anidar los bloques unos
dentro de otros.
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.
Las funciones y procedimientos tipos de bloques con un nombre son discutidos con mayor detalle
más adelante en este artículo, así como los paquetes. En pocas palabras, sin embargo, un paquete
es un contenedor de múltiples funciones y procedimientos. Oracle extiende PL/SQL con muchos
paquetes incorporados en el lenguaje.
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.
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.
3. PL/SQL es el lenguaje de programación que proporciona Oracle para extender el SQL estándar
con otro tipo de instruccione
Con PL/SQL se programar las unidades de la base de datos ORACLE, están son:
Procedimientos almacenados
Funciones
Triggers
Scripts
ORACLE:
Oracle Forms
Oracle Reports
Oracle Graphics
Oracle Aplication Server
El lenguaje PL-SQL permite soportar todas las consultas a la Base de Datos Oracle, ya que para
manipular los datos se usan las mismas instrucciones del lenguaje SQL estándar usado en las
Bases de Datos.
PL-SQL es un lenguaje que está estructurado en bloques de código, los que son utilizados para
construir PL-SQL Packages en Oracle, PL-SQL Procedures en Oracle, PL-SQL Function en
Oracley scripts de código. (Feuerstein, marzo 2012)
Los desarrolladores pueden construir sus bloques PL-SQL y almacenarlos como objetos en el
entorno de la Base de Datos Oracle. Estos programas o paquetes en PL-SQL son ejecutados en el
servidor lo que permite ahorrar recursos en el entorno del cliente.
Los programas o PL-SQL Packages en Oracle solo pueden ser accesados o ejecutados por los
usuarios debidamente autorizados..
Ejemplo #1: Veamos estructuras de bloques:
/* PL-SQL Packages en Oracle */
Begin
< Instrucciones >
End;
Este ejemplo muestra un bloque básico de PL-SQL.
/* PL-SQL Packages en Oracle */
Begin
< Instrucciones >
Exception
< Tratamiento de excepciones >
4. End;
En este ejemplo se muestra un bloque PL-SQL con la cláusula exception para controlar las
excepciones que puedan ocurrir.
Ejemplo #2: Veamos los tipos de estructuras:
/* PL-SQL Packages en Oracle */
Create Procedure mi_proceso(mi_variable modo tipo_de_dato) As
<Declaración de variables>
Begin
< Instrucciones >
Exception
< Tratamiento de excepciones >
End mi_proceso;
En este ejemplo se muestra la estructura en PL-SQL de los PL-SQL Procedures en Oracle.
/* PL-SQL Packages en Oracle */
Create Function mi_funcion(mi_variable modo tipo_de_dato) Return tipo_de_dato Is
<Declaración de variables>
Begin
< Instrucciones >
Exception
< Tratamiento de excepciones >
End mi_funcion;
En este ejemplo se muestra la estructura en PL-SQL de una PL-SQL Function en Oracle.
Te propongo que pruebes de inmediato estos ejemplos en tu Base de Datos con tus propias
tablas, PL-SQL Procedures en Oracle y PL-SQL Function en Oracle, para que comiences a
ejercitar la mano y aprendas a dominar esta nueva técnica en tus PL-SQL Packages en Oracle
Note que he llamado a la variable l mensaje. Normalmente uso el prefijo para variables locales
variables definidas dentro del código de un bloque y el prefijo para variables globales definidas en
un paquete. (Sevilla, noviembre 2011)
CARACTERÍSTICAS
5. Tiene como característica principal que es un lenguaje procedural, que supera y amplia las
capacidades del SQL estándar, por ejemplo, pueden definir secuencias de control, de flujo y toma
de decisiones.
Los programas que son creados en PL-SQL, solo pueden compilarse si se utilizan herramientas
de Oracle, tales como Fonts, Reports, etc., y también se implementa en un servidor de Bases de
Datos PL-SQL, además de soportar todas las formas de manipulación de datos de SQL, incluye
las siguientes características.
• Estructuras modulares.
• El manejo de variables.
• Control de excepciones.
• Estructuras de control.
Estructura modular
En PL/SQL podemos distinguir 3 tipos de programas o bloques.
Bloques anónimos: Son los que no tienen nombre y comienzan con el DECLARE, es decir los que
hemos ido viendo hasta ahora.
Procedimientos: Se trata del programa más utilizado en PL/SQL y su formato es el siguiente:
PROCEDURE <nombre_procedimiento>
[(<lista de parámetros>)]
IS
[<declaraciones>]
BEGIN
<instrucciones>;
[EXCEPTIONS
<excepciones>;]
END;
En el formato distinguimos dos partes claramente, la cabecera donde esta el nombre del
procedimiento y los parámetros y el cuerpo donde se situá un bloque anónimo.
Funciones: similares a los procedimientos pero con la función añadida de que pueden devolver
valores.
Si subís varias lineas y veis el ejemplo de control de excepciones, podéis ver que hemos utilizado
un atributo como DBMS_OUTPUT. Bien pues esto lo que nos permite es visualizar en pantalla los
resultados, tanto excepciones como mensajes. Lo utilizamos porque PL/SQL no dispone de
órdenes o sentencias que capturen datos introducidos por teclado, ni tampoco para visualizar
datos en pantalla.
DBMS_OUTPUT.PUT_LINE nos permite visualizar en pantalla, pero para que funcione
correctamente tenemos que poner el SET SERVEROUTPUT a ON
Si queremos que un bloque nos pida algún dato tenemos que anteponer el símbolo & delante de
la variable, de esta forma cuando el bloque llegue a ese punto nos pedirá por pantalla el valor.
Otra sentencia importante es la que nos permite visualizar los errores que hemos podido tener al
crear el bloque o procedimiento. Esta sentencia es: show errors
6. Si queremos que el bloque anónimo se ejecute directamente cuando terminamos de crearlo
debemos poner el símbolo / que, ademas de guardar el bloque en el buffer, lo ejecuta.
También podemos guardar los bloques anónimos en ficheros para poderlos ejecutar
posteriormente. Para ello ejecutamos la siguiente sentencia:
Todos los programas creados utilizando PL-SQL, de la misma manera los paquetes, pueden ser
almacenados en la Base de Datos, como un dato más, lo cual optimiza el uso por parte del
usuario cada línea de PL-SQL, tiene grupos de caracteres, que normalmente se conocen como
Unidades Léxicas, estas están clasificadas en 4 grupos:
• DELIMITADORES: Símbolos simples o compuestos, como por ejemplo operadores aritméticos,
lógicos o relacionales, que cumplen con un objetivo específico en PL-SQL.
• IDENTIFICADORES: Compuesto por Constantes, Variables, Cursores, Subprogramas,
Excepciones y Paquetes, que se invocan con el fin de nombrar objetos de programas y unidades
dentro del PL-SQL.
• LITERAL: Es un valor específico, de tipo numérico, lógico, carácter o cadena, que no está
representado por un identificador.
• COMENTARIO: Se encierran en los caracteres // para una sola línea y /* */ para un conjunto de
líneas
Una vez cargado el fichero ejecutamos el bloque con la sentencia run nombre fichero o podemos
hacer los dos pasos con una sola sentencia: start nombre fichero
Sin embargo para los procedimientos es totalmente distinto ya que al tener nombre se almacena
automáticamente en la base de datos y para ejecutarlo tan solo tenemos que realizar la siguiente
operación
Las excepciones sirven para tratar los errores y mensajes. Oracle tiene una serie de excepciones
que son las más frecuentes y con las que la mayoría de la gente trabaja
PL/SQL Developer incluye varias herramientas que facilitarán tu trabajo de desarrollo. Puedes
recompilar objetos inválidos, buscar texto en fuentes de bases de datos, importar y exportar tablas,
generar datos de prueba, importar archivos de texto o ODBC data, compara información contenida
en tablas, monitoriza los eventos de dbms_alert y de dbms_pipe, ve información sobre la sesión,
etc.
Con el tiempo, se ha visto que la lógica empresarial y de aplicaciones tiende al uso de Oracle
Server, por lo que la programación PL/SQL se ha convertido en una parte significativa del proceso
de desarrollo. PL/SQL Developer se centra en su facilidad de uso, la calidad del código y la
productividad, que son clave a la hora de crear aplicaciones con Oracle.
7. Tipos de Datos: Cada una de las variables y las constantes deben ir asociadas a un tipo de dato,
que tiene un grupo de características como formato de almacenamiento, restricciones y rango de
valores válidos, y principalmente están divididos en dos grupos, Escalares y Compuestos.
• CHAR (Carácter): Almacena hasta 32767 datos de tipo carácter, o sea letras
• VARCHAR (Carácter de longitud variable): Almacena datos de tipo carácter pero solo utiliza la
cantidad necesaria. BOOLEAN (lógico): Se almacenan datos, de tipo booleano, es decir los datos
de tipo True o False.
• DATE (Fecha): Almacena datos de fechas que están contenidas entre el año de 4712 a.C. hasta
el 4712 D.C.
La sección declarativa en donde se declaran todas las constantes y variables que se van a utilizar
en la ejecución del bloque.
Los lenguajes de cuarta generación son ciertas herramientas prefabricadas, que aparentemente
dan lugar a un lenguaje de programación de alto nivel que se parece más alidioma inglés que a
un lenguaje de tercera generación, porque se aleja más del concepto de "procedimiento". Pueden
acceder a bases de datos.
Procedimientos Almacenados
Procedimientos Almacenados: Es un programa o proceso que puede ser creado y guardado en la
base de datos y que puede ser invocado en cualquier momento en un programa. Generalmente
están escritos en lenguajes de Bases de Datos como PL-SQL para Oracle o PL-PgSQL para
PostgreSQL.
La principal ventaja de un Procedimiento Almacenado, es que al ser invocado, este se ejecuta
desde el servidor de la base de datos lo que hace que el proceso sea mucho más rápido, y
deshaciéndose del exceso de carga al manejar grandes cantidades, ya que solo requiere enviar los
resultados al usuario.
En general, los usos más comunes de Procedimientos Almacenados, van desde la implementación
para validación de datos, utilizando detonadores, que están integrados a la misma Base de Datos,
pasando por cumplir con la función de encapsular en un proceso más grande y complicado, de
esta manera los últimos datos procesados serán los más rápidos.
La gran aplicación de los Procedimientos Almacenados, se presenta cuando una Base de Datos es
accesada desde muchos sitios externos al servidor, lo cual genera que se embeba la lógica de
todos los programas haciendo que esta sea más reducida, esto puede crear y mantener los
sistemas relacionados
Un buen ejemplo se presenta cuando se necesita realizar una acción en un servidor de una o
muchas de las tablas de las Bases de Datos, para esto se utilizan los Procedimientos
Almacenados auto creables. (galeon.com, 2014)
VENTAJAS Y DESVENTAJAS
Consiste en la ejecución de sentencias SQL o bloques PL/SQL a partir de una cadena de texto
8. montadas de manera dinámica.
El uso de execute inmediata es muy cómodo para la construcción de sql dinámicos el problema es
el parseo de estas sentencias. Las bind variables, evita parseos innecesarios. Para evitar SQL
Injection en PL/SQL dinámico es importante utilizar bind variables en vez de concatenación de
cadenas.
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 optimas
Problemas de seguridad por ataques de inyección SQL
(García, 2013)
Bibliografía
Feuerstein, S. (marzo 2012). Construyendo con Bloques en PL/SQL. Oracle Magazine. Obtenido de
http://www.oracle.com/technetwork/es/articles/sql/construyendo-con-bloques-parte-1-
1549135-esa.html
galeon.com. (2014). proyecto bases de datos. hispavista. Obtenido de
http://proyectobasesdedatos.galeon.com/enlaces1416755.html
García, J. (2013). PL SQL dinámico. mundoDB. Obtenido de http://mundodb.es/pl-sql-dinamico
Sevilla, U. d. (noviembre 2011). Introducción a PL/SQL. STSII. Obtenido de
http://www.lsi.us.es/docencia/get.php?id=5788