La lista a continuación presenta temas relacionados al Lenguaje PL/SQL (Procedural Language/Structured Query Language) el cual es el lenguaje de procedimiento de Oracle Corporation diseñado para reforzar el lenguaje SQL.
Todo este contenido tiene la intención de introducir al lector desde lo simple a lo mas complejo en el poderoso lenguaje PL/SQL, resaltando sus puntos fuertes y facilidades en lo relativo al manejo de Datos almacenados en Bases de Datos Relacionales.
Se trató de exponer los conceptos de manera simple y clara para así facilitar el entendimiento, pero con el fin de mantener la optimalidad y las buenas prácticas. Cada tema contiene ejemplos orientados en escenarios de la vida diaria y aplicables de distintos entornos.
Invito al lector a expresar cualquier duda/sugerencia que pueda surgir durante su visita.
Temas de PL/SQL.
Contenido:
• Arquitectura de PL/SQL
• Beneficios de PL/SQL
• Estructura de Bloque en PL/SQL
• Tipos de Bloque en PL/SQL
• Usos de PL/SQL
| Contenido: • Controlando el Flujo de ejecución Sentencias IF Expresiones CASE Sentencias CASE Variables Escalares Variables Escalares • Control Iterativo Basic LOOP WHILE LOOP FOR LOOP • La Sentencia EXIT • La Sentencia CONTINUE | ||
Contenido: • Variables en PL/SQL • Ajuste de Control SERVEROUTPUT • Los Tipos de Variables Variables Escalares Tipos de datos Compustos Las Variables Bind • Las Nomenclaturas en PL/SQL • Ajuste de Control AUTOPRINT | Contenido: • Tipos de Datos Compuestos PL/SQL Records PL/SQL Collections • Atributo %ROWTYPE • Los NESTED Table • Los VARRAY | ||
Contenido: • Unidades Léxicas en Bloques PL/SQL • Funciones de SQL en PL/SQL • Secuencias en PL/SQL • Conversiones de Tipo de Dato • Los Bloques Anidados • Alcance y Visibilidad de las Variables • Directrices de programación |
Contenido:
• Los Cursores Explícitos Sentencia OPEN Sentencia FETCH Sentencia CLOSE • Cursores FOR LOOP • Atributos de los Cursores Explícitos • Cláusula FOR UPDATE • Cláusula WHERE CURRENT OF | ||
Contenido: • Sentencias SQL en programas PL/SQL • Ambigüedades en la Nomenclatura • Manipulando Datos en PL/SQL • Cursores SQL Atributo SQL%FOUND Atributo SQL%NOTFOUND Atributo SQL%ROWCOUNT |
Contenido:
• Excepciones en PL/SQL
Tipos de Excepciones
Capturando Excepciones
• Cláusula WHEN OTHERS
• Lista de Excepciones Comunes en Oracle
• Función de PRAGMA EXCEPTION_INIT
• Funciones SQLCODE y SQLERRM
• Procedimiento RAISE_APPLICATION_ERROR
|
Generando Valores Aleatorios | |||
| Contenido: • Procedimiento INITIALIZE • Función NORMAL • Procedimiento RANDOM • Procedimientos SEED • Función STRING • Procedimiento TERMINATE • Funciones VALUE | ||
Tipos de Objetos de Oracle | |||
Contenido:
• Los Triggers y sus Usos
• Tipos de Triggers
Row Triggers and Statement Triggers
BEFORE and AFTER Triggers
INSTEAD OF Triggers
System Events and User Events
• Tipos de Triggers
• Sentencia ALTER TRIGGER
• Sentencia DROP TRIGGER
| Contenido: • Programación Orientada a Objetos • Métodos y Atributos • Sus Componentes y Estructura • Sentencia CREATE TYPE • Método EXTEND • Sentencia DROP TYPE Cláusula FORCE Cláusula VALIDATE | ||
Métodos en Objetos Oracle | |||
Contenido: • Los Paquetes de PL/SQL • Ventajas de los Paquetes • Especificación y Cuerpo del Paquete
• Variables y Subprogramas Privados
|
Contenido:
• Los Métodos MEMBER STATIC CONSTRUCTOR MAP ORDER • Uso de SELF • La Herencia en los Objetos | ||
Contenido:
• Paquete UTL_FILE
Función FOPEN
Procedimiento PUT_LINE
Función FCLOSE
Función IS_OPEN
...
|
Contenido:
• Concepto de Polimorfismo. • Las Sobrecargas. • Ejemplos de Sobrecargas: En Bloques Anónimos En Paquete de PL/SQL En Tipos de Objetos |
Las Colecciones de PL/SQL | |||
Weak REF Cursor |
Contenido:
• Las Colecciones de PL/SQL:
Matrices Asociativas
Tablas Anidadas
• Sus Similitudes y DiferenciasLos VARRAYs | ||
JOBS(Tareas) de Base de Datos | SQL Dinámico en PL/SQL | ||
|
Contenido:
• Sentencias DDL y PL/SQL.
• SQL Dinámico.
--SQL Dinámico Nativo.
Sentencia EXECUTE IMMEDIATE.
Sentencias OPEN-FOR, FETCH y CLOSE.
--Package DBMS_SQL.
• SQL Dinámico Nativo vs Package DBMS_SQL.
| ||
Inyección SQL | |||
Contenido:
• Concepto.
• Tipos de Inyección:
---Sentencia de Modificación.
---Sentencia de Inyección.
---Conversión de tipo de datos.
• Ejemplos prácticos.
• Técnicas contra la Inyección SQL.
| |||
...
|
Es prudente destacar que la tecnología implementada en el servidor Oracle está bien posicionada como una de las más avanzadas, potentes y estables entre las Bases de Datos Relacionales del mundo. Oracle provee herramientas de desarrollo que facilitan la interacción con la Base de Datos, manteniendo altos niveles de funcionalidad y buen desempeño.
Resulta algo dificultoso desarrollar aplicaciones solo con el uso de sentencias SQL, consientes de esto es común usar otros lenguajes de programación que usan interfaces estándar de Base de Datos para poder interactuar con los Datos. Es por ello que en un intento de eliminar esta gran dependencia, Oracle decide crear un lenguaje que interactúe de manera directa con las sentencia SQL en su propia Base de Datos.
A partir de la versión v3.0 de SQL*Forms fue introducido PL/SQL (versión 1.0), más tarde, con la herramienta Developer/2000 Release 1 se dio vida a PL/SQL versión 1.1.
En 1991, Oracle Corporation lanzó Oracle Version 6.0, el cuál significó un avance importante en la tecnología de su Base de Datos Relacional. Un componente clave de esta Versión fue la llamada "opción de procedimiento (procedural option)" o PL/SQL. Y casi al mismo tiempo, Oracle lanzó la actualización a SQL * Forms Versión 2.3. SQL * Forms V3.0 incorporó el motor PL/SQL por primera vez integrado con la herramienta, permitiendo a los desarrolladores codificar su lógica procedimental de una manera natural y directa.
Hay que resaltar que la primera versión de PL/SQL fue muy limitada en cuanto a capacidades. De lado del servidor, sólo era posible utilizar PL/SQL para crear SCRIPTs de "procesamiento por lotes (batch-processing)" de sentencias procedimentales y SQL. En otras palabras, no era posible almacenar procedimientos o funciones reutilizables. Del mismo modo no era posible construir aplicaciones modulares ni almacenar complejas reglas de negocio en el servidor. De lado del cliente, si era posible crear procedimientos y funciones, pero no había soporte documentado para las funciones y por lo tanto no fueron utilizadas por muchos desarrolladores durante años. Además, esta versión de PL/SQL no implementó soporte de matriz y no pudo interactuar con el sistema operativo (para entrada o salida). Estaba muy lejos de un lenguaje de programación completo.
A pesar de todas sus limitaciones, PL/SQL fue muy bien recibido por la comunidad de desarrolladores. Esto porque el deseo de tener la capacidad de codificar una simple sentencia IF dentro de SQL * Forms era muy fuerte.
Con el paso de los años, y motivados por la gran demanda de funcionalidad a la hora del mantenimiento de una Base de Datos, Oracle ha introducidos grandes funcionalidades programáticas y procedimentales a su lenguaje PL/SQL, haciéndolo lucir competente ante un mercado exigente y nada conformista.
Sin más decir, les invito a navegar el en Mundo Mágico de PL/SQL.
_____________________________________________________________________________________
Fuentes:
http://www.orafaq.com/wiki/PL/SQL#History_and_support_status
http://www.plsqltutorial.com/what-is-plsql/
http://www.plsqltutorial.com/what-is-plsql/