Está en la página 1de 7

Leccin 1- Introduccin a PL / SQL Objetivos 1. 2. 3. 4.

Explicar la necesidad de PL / SQL Explicar los beneficios de PL / SQL Identificar los diferentes tipos de bloques PL / SQL Mensajes de salida en PL / SQL

Esta leccin presenta a PL / SQL y construcciones de programacin PL / SQL. Usted aprender acerca de los beneficios de PL / SQL. Acerca de PL / SQL Structured Query Language (SQL ) es el idioma principal utilizado para acceder y modificar los datos en bases de datos relacionales. Hay slo unos pocos comandos SQL, por lo que pueden aprender y utilizar fcilmente. Veamos un ejemplo: SELECT first_name, department_id, salary FROM employees; La sentencia SQL anterior es simple y directo. Sin embargo, si desea modificar los datos que se recuperan de una manera condicional, pronto se encuentra con las limitaciones de SQL. Considere la posibilidad de una declaracin del problema ligeramente modificada: por cada empleado recuperada, de comprobar el ID de departamento y el salario. Dependiendo del rendimiento del departamento y tambin el salario del empleado, es posible que desee establecer diversos bonos a los empleados. Mirando el problema, usted sabe que usted tiene que ejecutar la sentencia SQL anterior, recopilar los datos, y aplicar la lgica a los datos. Una solucin consiste en escribir una sentencia SQL para cada departamento para dar bonificaciones a los empleados de ese departamento. Recuerde que usted tambin tiene que comprobar el componente de sueldos antes de decidir la cantidad del bono. Esto hace que sea un poco complicado. Ahora siente que sera mucho ms fcil si usted tena instrucciones condicionales. PL / SQL est diseado para cumplir con tales requisitos. Proporciona una extensin de programacin a SQL ya existente. PL / SQL define una estructura de bloques para la escritura de cdigo. El mantenimiento y depuracin del cdigo se hace ms fcil con una estructura de este tipo. Se puede entender fcilmente el flujo y la ejecucin de la unidad de programa. PL / SQL ofrece caractersticas modernas de ingeniera de software, tales como la encapsulacin de datos, manejo de excepciones, la ocultacin de informacin y orientacin a objetos. Trae la programacin en el servidor Oracle y el conjunto de herramientas de state-ofthe-art. PL / SQL proporciona todas las construcciones de procedimiento que estn disponibles en cualquier lenguaje de tercera generacin (3GL). Ambiente de PL / SQL La diapositiva muestra el entorno de ejecucin de PL / SQL en el servidor de base de datos Oracle. Un bloque PL / SQL contiene declaraciones procesales y sentencias SQL. Cuando usted enva el bloque PL / SQL para el servidor, el motor de PL / SQL analiza primero el bloque. El motor de PL / SQL identifica las sentencias de procedimiento y las sentencias SQL. Pasa a las declaraciones de procedimiento para el ejecutor declaracin de procedimiento y las sentencias

SQL a la declaracin ejecutor SQL individualmente. El diagrama de la diapositiva muestra el motor de PL / SQL en el servidor de base de datos. Las herramientas de desarrollo de aplicaciones de Oracle pueden contener tambin un motor de PL / SQL. La herramienta pasa a los bloques para su motor de PL / SQL local. Por lo tanto, todas las declaraciones de procedimiento se ejecutan localmente y slo las sentencias SQL se ejecutan en la base de datos. El motor utilizado depende del lugar donde el bloque PL / SQL que se est llamando desde.

Ventajas de PL / SQL Integracin de las construcciones de procedimiento con SQL: La ventaja ms importante de PL / SQL es la integracin de las construcciones de procedimiento con SQL. SQL es un lenguaje no procedimental. Cuando se emite un comando SQL, el comando le dice al servidor de base de datos de qu hacer. Sin embargo, no se puede especificar cmo hacerlo. PL / SQL integra sentencias de control e instrucciones condicionales con SQL, que le da un mejor control de las sentencias SQL y su ejecucin. Anteriormente en esta leccin, usted vio un ejemplo de la necesidad de dicha integracin. Rendimiento mejorado: Sin PL / SQL, usted no sera capaz de combinar lgicamente sentencias SQL como una unidad. Si ha diseado una aplicacin que contiene los formularios, usted puede tener muchas formas diferentes, con campos de cada formulario. Cuando un formulario enva los datos, puede que tenga que ejecutar una serie de sentencias SQL. Sentencias SQL se envan a la base de datos de uno en uno. Esto se traduce en muchos viajes de la red y una llamada a la base de datos para cada sentencia de SQL, lo que aumenta el trfico de red y la reduccin del rendimiento (especialmente en un modelo cliente / servidor). Con PL / SQL, puede combinar todas estas sentencias SQL en una sola unidad de programa. La aplicacin puede enviar todo el bloque a la base de datos en lugar de enviar las sentencias SQL de una en una. Esto reduce significativamente el nmero de llamadas de base de datos. A medida que la diapositiva ilustra, si la aplicacin es SQL intensiva, puede utilizar los bloques PL / SQL para sentencias SQL de grupo antes de enviarlos al servidor de base de datos Oracle para su ejecucin.

El desarrollo del programa modularizado: Una unidad bsica en todos los programas PL / SQL es el bloque. Los bloques pueden estar en una secuencia o pueden ser anidados en otros bloques. El desarrollo del programa modular proporciona las siguientes ventajas: 1. Puede agrupar declaraciones dentro de los bloques relacionados lgicamente. Usted puede anidar dentro de bloques ms grandes para construir programas de gran alcance. 2. Puede alterar la aplicacin en mdulos ms pequeos. Si est diseando una aplicacin compleja, PL / SQL le permite desglosar la aplicacin en mdulos ms pequeos y manejables, y lgicamente relacionados. 3. Usted puede mantener fcilmente y depurar el cdigo. 4. En PL / SQL, la modularizacin se implementa utilizando los procedimientos, funciones y paquetes, que se discuten en la leccin titulada "Creacin de procedimientos almacenados y funciones. " Integracin con herramientas: El motor de PL / SQL est integrado en las herramientas de Oracle como Oracle Forms, Reports de Oracle, y as sucesivamente. Al utilizar estas herramientas, el motor de PL / SQL localmente disponibles procesa las sentencias de procedimiento; slo las sentencias SQL se pasan a la base de datos. Portabilidad: programas PL / SQL se pueden ejecutar en cualquier lugar una se ejecuta el servidor de Oracle, con independencia del sistema operativo y la plataforma. Usted no debe personalizarlos para cada nuevo entorno. Puedes escribir paquetes de programas portables y crear bibliotecas que pueden ser reutilizados en diferentes entornos. El manejo de excepciones: PL / SQL le permite manejar excepciones de manera eficiente. Se pueden definir bloques separados para tratar las excepciones. Se aprende ms sobre el manejo de excepciones en la leccin titulada "Manejo de excepciones." PL / SQL comparte el mismo sistema de tipo de datos como SQL (con algunas extensiones) y utiliza la misma sintaxis de expresin. PL / SQL para estructura de bloque

La diapositiva muestra un bloque bsico de PL / SQL. Un bloque PL / SQL consta de tres secciones: Declarativa (opcional): La seccin declarativa comienza con la palabra clave DECLARE y termina cuando la seccin ejecutable comienza.

Ejecutable (requerido): La seccin ejecutable comienza con la palabra clave BEGIN y termina con END. Esta seccin esencialmente tiene que tener por lo menos un comunicado. Observe que END se termina con un punto y coma. La seccin ejecutable de un bloque PL / SQL puede, a su vez, incluir cualquier nmero de bloques de PL / SQL. El manejo de excepciones (opcional): La seccin excepcin est anidada dentro de la seccin ejecutable. Esta seccin comienza con la palabra clave EXCEPCTION. En un bloque PL / SQL, las palabras clave DECLARE, Begin, y la excepcin no se terminan con un punto y coma. Sin embargo, la palabra clave END, todas las sentencias SQL y sentencias PL / SQL se debe terminar con un punto y coma. Declarativa (DECLARE) Contiene declaraciones de todas las variables, constantes, cursores y excepciones definidas por el usuario que se hace referencia en los ejecutables y de excepcin secciones opcionales Ejecutable (BEGIN ... END) Contiene sentencias SQL para recuperar datos de la base de datos; contiene declaraciones PL / SQL para manipular los datos en el bloque Obligatorio Excepcin (EXCEPCIN) Especifica las acciones a realizar cuando los errores y las condiciones anormales surgen en la seccin ejecutable Opcional Tipos de bloques Un programa de PL / SQL comprende uno o ms bloques. Estos bloques pueden estar completamente separados o anidados dentro de otro bloque. Hay tres tipos de bloques que conforman un programa de PL / SQL. Ellos son: 1. Los bloques annimos 2. Procedimientos 3. Funciones Los bloques annimos: Annimo bloques son bloques sin nombre. Se declaran en lnea en el momento de una aplicacin en la que se deben ejecutar y se compilan cada vez que se ejecuta la aplicacin. Estos bloques no se almacenan en la base de datos. Ellos se pasan al motor de PL / SQL para su ejecucin en tiempo de ejecucin. Los desencadenantes de los componentes de Oracle Developer consisten en tales bloques. Estos bloques annimos se ejecutan en tiempo de ejecucin, ya que estn en lnea. Si desea ejecutar el mismo bloque de nuevo, usted tiene que volver a escribir el bloque. Usted no puede invocar o llamar al bloque que usted escribi anteriormente porque los bloques son annimos y no existen despus de que se ejecuten. Subprogramas: Subprogramas son complementarios a bloques annimos. Se denominan bloques PL / SQL que se almacenan en la base de datos. Debido a que se nombran y se almacenan, se puede invocar siempre que lo desee (segn la aplicacin). Usted puede declararlos, ya sea como procedimientos o funciones. Normalmente, se utiliza un procedimiento para realizar una accin y una funcin para calcular y devolver un valor. Puede almacenar subprogramas a nivel de servidor o aplicacin. El uso de componentes de Oracle Developer (Forms, Reports), puede declarar procedimientos y funciones en el marco de la aplicacin (un formulario o informe) y llamarlos desde otros procedimientos, funciones, y desencadena dentro de la misma aplicacin, cuando sea necesario. Nota: Una funcin es similar a un procedimiento, excepto que una funcin debe devolver un valor.

Construye Programa La siguiente tabla muestra una variedad de construcciones de programa PL / SQL que utilizan el elemento bsico de PL / SQL. Las construcciones del programa estn disponibles en base al entorno en el que se ejecutan.

Crear un bloque de Anonimo Para crear un bloque annimo mediante SQL Developer, entrar en el bloque en el espacio de trabajo (como se muestra en la diapositiva). El bloque tiene la parte declarativa y la seccin ejecutable. Usted no tiene que prestar atencin a la sintaxis de las sentencias del bloque; que aprenda la sintaxis ms adelante en el curso. El bloque annimo obtiene el first_name del empleado cuyo employee_id es de 100, y la almacena en una variable llamada v_fname.

Ejecutar un bloque annimo Haga clic en el botn Ejecutar secuencias de comandos para ejecutar el bloque annimo en el rea de trabajo. Tenga en cuenta que el mensaje de "bloque annimo completado" se muestra en la ventana de salida de secuencias de comandos despus de ejecutar el bloque.

Pruebe la salida de un Bloque PL / SQL En el ejemplo mostrado en la diapositiva anterior, un valor se almacena en la variable F_Name. Sin embargo, el valor no se ha impreso. Ahora aprender a imprimir el valor. PL / SQL no se han incorporado en la entrada o salida de la funcionalidad. Por lo tanto, es necesario utilizar los paquetes de Oracle predefinidos para la entrada y salida. Para generar la salida, usted debe: Activacin de la salida en SQL Developer haciendo clic en el botn Activar salida en la ficha de salida DBMS. Esto, a su vez, ejecute el serveroutput SET orden ON, que se muestra en la ventana. Para habilitar la salida en SQL * Plus, debe emitir explcitamente el serveroutput SET orden ON. Utilice el procedimiento PUT_LINE del paquete DBMS_OUTPUT para mostrar la salida. Pase el valor que tiene para ser impreso como argumento para este procedimiento (como se muestra en la diapositiva). El procedimiento a continuacin, genera el argumento.

La diapositiva muestra la salida del bloque PL / SQL despus de la inclusin de un cdigo para generar la salida.

Resumen PL / SQL es un lenguaje que tiene caractersticas de programacin que sirven como una extensin de SQL. SQL, que es un lenguaje no procedimental, se hace de procedimiento con construcciones de programacin PL / SQL. Aplicaciones PL / SQL se pueden ejecutar en cualquier plataforma o sistema operativo en el que se ejecuta un servidor Oracle. En esta leccin, usted aprendi cmo construir bloques bsicos de PL / SQL. 1. 2. 3. 4. Integrar sentencias SQL con las construcciones del programa PL / SQL Describir los beneficios de PL / SQL Diferenciar entre los tipos de bloques PL / SQL Mensajes de salida en PL / SQL