SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
ESCUELA DE: Informática Aplicada A La Educación
NOMBRE: Franklin Geovanny Yungán Gualli
DOCENTE: Leonardo Ayavaca
SEXTO: Semestre “A”
RIOBAMBA- ECUADOR
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.
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 >
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
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
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.
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
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

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Bloques
BloquesBloques
Bloques
 
Statement
StatementStatement
Statement
 
Plsql y paquetes
Plsql y paquetesPlsql y paquetes
Plsql y paquetes
 
Intro sql y plsql
Intro sql y plsqlIntro sql y plsql
Intro sql y plsql
 
Fundamentos de Sistemas de Base de Datos (Capítulo 9 y 10)
Fundamentos de Sistemas de Base de Datos (Capítulo 9 y 10)Fundamentos de Sistemas de Base de Datos (Capítulo 9 y 10)
Fundamentos de Sistemas de Base de Datos (Capítulo 9 y 10)
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
CakePHP
CakePHPCakePHP
CakePHP
 
Bloques
BloquesBloques
Bloques
 
M o d_u_l_a_r_i_d_a_d
M o d_u_l_a_r_i_d_a_dM o d_u_l_a_r_i_d_a_d
M o d_u_l_a_r_i_d_a_d
 
MVC en CakePHP 2.0
MVC en CakePHP 2.0MVC en CakePHP 2.0
MVC en CakePHP 2.0
 
Guia herramientas de bd
Guia herramientas de bdGuia herramientas de bd
Guia herramientas de bd
 
Cap I Plsql
Cap I PlsqlCap I Plsql
Cap I Plsql
 
Aguagallo doris 6_s_ti_2pdf vfr
Aguagallo  doris 6_s_ti_2pdf vfrAguagallo  doris 6_s_ti_2pdf vfr
Aguagallo doris 6_s_ti_2pdf vfr
 
Como programar un plc
Como programar un plcComo programar un plc
Como programar un plc
 
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
 
Leccion11
Leccion11Leccion11
Leccion11
 
Sesion 7 3 diseño diagramas de componentes
Sesion 7 3 diseño   diagramas de componentesSesion 7 3 diseño   diagramas de componentes
Sesion 7 3 diseño diagramas de componentes
 
103305862 t-sql
103305862 t-sql103305862 t-sql
103305862 t-sql
 
Capitulo 2
Capitulo 2Capitulo 2
Capitulo 2
 
PL/SQL
PL/SQLPL/SQL
PL/SQL
 

Destacado

Proyecto innovador
Proyecto innovadorProyecto innovador
Proyecto innovadorKarenLbt
 
Políticas de adopción de tic
Políticas de adopción de ticPolíticas de adopción de tic
Políticas de adopción de ticgatorrojo
 
Orientaciones y tendencias del futuro en la formacion
Orientaciones y tendencias del futuro en la formacionOrientaciones y tendencias del futuro en la formacion
Orientaciones y tendencias del futuro en la formacionAmamiros Herrera
 
ACTIVIDADES DEL CENTRO DE MAESTROS
ACTIVIDADES DEL CENTRO DE MAESTROSACTIVIDADES DEL CENTRO DE MAESTROS
ACTIVIDADES DEL CENTRO DE MAESTROSjavier perez
 
Ik Kil: uno de los cenotes mas famosos de la Riviera Maya
Ik Kil: uno de los cenotes mas famosos de la Riviera MayaIk Kil: uno de los cenotes mas famosos de la Riviera Maya
Ik Kil: uno de los cenotes mas famosos de la Riviera MayaDescubreMexico
 
Los destinos más románticos de méxico
Los destinos más románticos de méxicoLos destinos más románticos de méxico
Los destinos más románticos de méxicoDescubreMexico
 
Von ESE zu EDM und darüber hinaus: Wie Europeana Zugang zu Objekten des Kultu...
Von ESE zu EDM und darüber hinaus: Wie Europeana Zugang zu Objekten des Kultu...Von ESE zu EDM und darüber hinaus: Wie Europeana Zugang zu Objekten des Kultu...
Von ESE zu EDM und darüber hinaus: Wie Europeana Zugang zu Objekten des Kultu...Digitised Manuscripts to Europeana
 
En javi i la targeta de crèdit
En javi i la targeta de crèditEn javi i la targeta de crèdit
En javi i la targeta de crèdit6aigua
 
Intervención familiar desde la educación infantil
Intervención familiar desde la educación infantilIntervención familiar desde la educación infantil
Intervención familiar desde la educación infantilangelitolopezro
 
Report in history-PAGLALAYAG NI MAGELLAN
Report in history-PAGLALAYAG NI MAGELLANReport in history-PAGLALAYAG NI MAGELLAN
Report in history-PAGLALAYAG NI MAGELLANOlhen Rence Duque
 
Inteligencias múltiples de gardner
Inteligencias múltiples de gardnerInteligencias múltiples de gardner
Inteligencias múltiples de gardnermonicamr941415t
 
Almacenamiento de informacion
Almacenamiento de informacionAlmacenamiento de informacion
Almacenamiento de informacionBryan Alexander
 

Destacado (20)

entrevista
entrevistaentrevista
entrevista
 
Proyecto innovador
Proyecto innovadorProyecto innovador
Proyecto innovador
 
Políticas de adopción de tic
Políticas de adopción de ticPolíticas de adopción de tic
Políticas de adopción de tic
 
Orientaciones y tendencias del futuro en la formacion
Orientaciones y tendencias del futuro en la formacionOrientaciones y tendencias del futuro en la formacion
Orientaciones y tendencias del futuro en la formacion
 
Rebeldes
RebeldesRebeldes
Rebeldes
 
ACTIVIDADES DEL CENTRO DE MAESTROS
ACTIVIDADES DEL CENTRO DE MAESTROSACTIVIDADES DEL CENTRO DE MAESTROS
ACTIVIDADES DEL CENTRO DE MAESTROS
 
Ik Kil: uno de los cenotes mas famosos de la Riviera Maya
Ik Kil: uno de los cenotes mas famosos de la Riviera MayaIk Kil: uno de los cenotes mas famosos de la Riviera Maya
Ik Kil: uno de los cenotes mas famosos de la Riviera Maya
 
Los destinos más románticos de méxico
Los destinos más románticos de méxicoLos destinos más románticos de méxico
Los destinos más románticos de méxico
 
Von ESE zu EDM und darüber hinaus: Wie Europeana Zugang zu Objekten des Kultu...
Von ESE zu EDM und darüber hinaus: Wie Europeana Zugang zu Objekten des Kultu...Von ESE zu EDM und darüber hinaus: Wie Europeana Zugang zu Objekten des Kultu...
Von ESE zu EDM und darüber hinaus: Wie Europeana Zugang zu Objekten des Kultu...
 
Eneatipos resumen
Eneatipos resumenEneatipos resumen
Eneatipos resumen
 
En javi i la targeta de crèdit
En javi i la targeta de crèditEn javi i la targeta de crèdit
En javi i la targeta de crèdit
 
Intervención familiar desde la educación infantil
Intervención familiar desde la educación infantilIntervención familiar desde la educación infantil
Intervención familiar desde la educación infantil
 
Industrial
IndustrialIndustrial
Industrial
 
Report in history-PAGLALAYAG NI MAGELLAN
Report in history-PAGLALAYAG NI MAGELLANReport in history-PAGLALAYAG NI MAGELLAN
Report in history-PAGLALAYAG NI MAGELLAN
 
Rubrica competencia siglo 21
Rubrica competencia siglo 21Rubrica competencia siglo 21
Rubrica competencia siglo 21
 
Inteligencias múltiples de gardner
Inteligencias múltiples de gardnerInteligencias múltiples de gardner
Inteligencias múltiples de gardner
 
Almacenamiento de informacion
Almacenamiento de informacionAlmacenamiento de informacion
Almacenamiento de informacion
 
Dinr
DinrDinr
Dinr
 
Austria
AustriaAustria
Austria
 
Proyecto tic digaroba
Proyecto tic digarobaProyecto tic digaroba
Proyecto tic digaroba
 

Similar a Yungan geovanny 6_s_ti_2

Similar a Yungan geovanny 6_s_ti_2 (20)

U8- BBDD - El lenguaje PLSQL operadores y estructuras de control.pdf
U8- BBDD - El lenguaje PLSQL operadores y estructuras de control.pdfU8- BBDD - El lenguaje PLSQL operadores y estructuras de control.pdf
U8- BBDD - El lenguaje PLSQL operadores y estructuras de control.pdf
 
Sql Procedural
Sql ProceduralSql Procedural
Sql Procedural
 
Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)
 
Orden carlos 6_s_ti_2
Orden carlos 6_s_ti_2Orden carlos 6_s_ti_2
Orden carlos 6_s_ti_2
 
Rosero inés 6_s_t1_2 (1)
Rosero inés 6_s_t1_2 (1)Rosero inés 6_s_t1_2 (1)
Rosero inés 6_s_t1_2 (1)
 
Rosero inés 6_s_t1_2 (1)
Rosero inés 6_s_t1_2 (1)Rosero inés 6_s_t1_2 (1)
Rosero inés 6_s_t1_2 (1)
 
ANSI SQL
ANSI SQLANSI SQL
ANSI SQL
 
Diapositivas transact sql
Diapositivas transact sqlDiapositivas transact sql
Diapositivas transact sql
 
Ansi Sql
Ansi SqlAnsi Sql
Ansi Sql
 
Ansi Sql
Ansi SqlAnsi Sql
Ansi Sql
 
Ansi Sql
Ansi SqlAnsi Sql
Ansi Sql
 
Ansi Sql
Ansi SqlAnsi Sql
Ansi Sql
 
Hector lumisaca 6 s_ti_2
Hector lumisaca 6 s_ti_2Hector lumisaca 6 s_ti_2
Hector lumisaca 6 s_ti_2
 
Tenesaca jhonny 6_s_ti_2
Tenesaca jhonny 6_s_ti_2Tenesaca jhonny 6_s_ti_2
Tenesaca jhonny 6_s_ti_2
 
Base de datos
Base de datosBase de datos
Base de datos
 
Valdivieso oscar 6_s_ti_2 (1).
Valdivieso oscar 6_s_ti_2 (1).Valdivieso oscar 6_s_ti_2 (1).
Valdivieso oscar 6_s_ti_2 (1).
 
Lenguaje sql
Lenguaje sqlLenguaje sql
Lenguaje sql
 
Ansi sql
Ansi sqlAnsi sql
Ansi sql
 
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
 
Presentacion oracle
Presentacion oraclePresentacion oracle
Presentacion oracle
 

Más de GeovannyYungan

Más de GeovannyYungan (20)

Examen
Examen Examen
Examen
 
Seguimiento
Seguimiento Seguimiento
Seguimiento
 
Correccion
Correccion Correccion
Correccion
 
Final
Final Final
Final
 
Herramientas para crear y compartir
Herramientas para crear y compartir Herramientas para crear y compartir
Herramientas para crear y compartir
 
Herreamientas
Herreamientas  Herreamientas
Herreamientas
 
Web2.0 v
Web2.0 vWeb2.0 v
Web2.0 v
 
Tecnologías de la información y la comunicación
Tecnologías de la información y la comunicación   Tecnologías de la información y la comunicación
Tecnologías de la información y la comunicación
 
Tecnologías de la información y la comunicación
Tecnologías de la información y la comunicación Tecnologías de la información y la comunicación
Tecnologías de la información y la comunicación
 
Tecnologías de la información y la comunicación
Tecnologías de la información y la comunicación Tecnologías de la información y la comunicación
Tecnologías de la información y la comunicación
 
Funciones
Funciones Funciones
Funciones
 
Plan buen vivir
Plan buen vivir Plan buen vivir
Plan buen vivir
 
Geovanny 1
Geovanny 1 Geovanny 1
Geovanny 1
 
Geovanny yungan
Geovanny yungan Geovanny yungan
Geovanny yungan
 
Acuerdos y compromisos
Acuerdos y compromisos   Acuerdos y compromisos
Acuerdos y compromisos
 
Acta de compromiso (1)
Acta de compromiso (1) Acta de compromiso (1)
Acta de compromiso (1)
 
Yungan geovanny rl_1cd
Yungan geovanny rl_1cdYungan geovanny rl_1cd
Yungan geovanny rl_1cd
 
ffghYungan geovanny bdii_t8
ffghYungan geovanny bdii_t8ffghYungan geovanny bdii_t8
ffghYungan geovanny bdii_t8
 
Yungán geovanny bdii_t7
Yungán geovanny bdii_t7Yungán geovanny bdii_t7
Yungán geovanny bdii_t7
 
Data warehouse
Data warehouseData warehouse
Data warehouse
 

Último

codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfMARIAPAULAMAHECHAMOR
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 

Último (20)

codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdf
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
Razonamiento Matemático 1. Deta del año 2020
Razonamiento Matemático 1. Deta del año 2020Razonamiento Matemático 1. Deta del año 2020
Razonamiento Matemático 1. Deta del año 2020
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
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