Cómo programar con PL / SQL en Oracle 12c

Hay varias maneras diferentes de trabajar dentro de su base de datos Oracle 12c para manipular los datos. PL / SQL es un lenguaje de consulta estructurado (SQL) con más poderosas constructos programáticas construidas alrededor de su código. Por ejemplo, ofertas PL / SQL

  • Looping de control

  • Variables

  • Si / entonces construye

  • Manejo de errores

SQL normal realmente no tiene nada de esto. SQL normal es bueno para usar en el código que actúa sobre datos específicos en el "ahora". No se puede tomar ninguna decisión por datos. Usted tiene que saber lo que los datos son - y cómo quiere que se vea.

PL / SQL también es más seguro que SQL regular. Tal como está, cuando los usuarios ejecutan SQL, que tienen que tener los permisos en los objetos subyacentes en los que los datos vive. Sin embargo, con PL / SQL, programas nombrados ejecutan con los permisos del propietario.

De esa manera, el titular de los datos podría escribir un programa para gestionar los datos. El dueño entonces da acceso al programa para el usuario, no los objetos subyacentes. Por ejemplo, supongamos que tiene un programa que extrae historia del sueldo de un usuario para que vean.

Usted no desea que el usuario pueda seleccionar en la tabla salarial de los empleados. Y sin un programa PL / SQL, que es lo que tendría que hacer. Puede codificar de manera que cuando el programa se ejecuta, el programa tira en el usuario conectado como una variable y recoge la historia de salario para que sólo el usuario.

PL / SQL es a menudo el dominio principal de los desarrolladores de aplicaciones. Como administrador de base de datos (DBA), sin embargo, también debe estar familiarizado con las premisas básicas del código y ser capaz de leer cómo funciona el código. A pesar de que los administradores de bases pueden no ser los desarrolladores de aplicaciones, podrá ser llamado a ayudar a solucionar problemas de código o código melodía que puede ser en forma de programas PL / SQL.

Tipos básicos de PL / SQL en Oracle programas 12c

PL / SQL programas vienen en muchas formas. Programas PL / SQL también se refieren a veces como "unidades de programa." Vea a continuación para obtener una lista de los tipos comunes de PL / SQL construye te encontrarás.

NombreDescripción
ANÓNIMO BLOQUEUn nombre-programa que se ejecuta desde la línea de comandos
PROCEDIMIENTOAlmacenado, llamado programa que realiza unas tareas
FUNCIÓNPrograma que toma la entrada, actúa sobre ella, y producesoutput
PAQUETEGrupo de los procedimientos y / o funciones con nombre que se relacionan bytask
GATILLOPrograma actúa sobre el resultado de alguna otra acción-firesautomatically
Fundamentos de la estructura de PL / SQL bloque en Oracle 12c

PL / SQL programas se basan en la estructura de bloques. Es decir, que se pueden dividir en partes específicas del programa basado en la función. Las partes del bloque PL / SQL varían ligeramente en función del tipo de unidad de programa, pero todos ellos tienen características similares. He aquí un desglose de las partes de una unidad PL programa / SQL:

  • Declarativa: Esta sección contiene el nombre de la unidad (si está nombrado) y las variables. Las variables se llaman, escriben, y inicializar opcionalmente en la sección. La unidad de programa no se llamaría si se codifica como un bloque anónimo. Un bloque anónimo se utiliza cuando se está a menudo escribiendo un programa para un solo uso.

  • Cuerpo: Esta es la sección que contiene la carne del programa. Contiene la funcionalidad y la lógica de negocio necesaria para procesar las variables y datos. Usted verá cosas como bucles y si / entonces declaraciones en esta sección.

  • Excepción: Esta sección define y maneja los errores que surgen durante la tramitación del cuerpo. Si un error se maneja adecuadamente, a menudo el programa puede continuar funcionando. O, por lo menos, la salida de un mensaje significativo para el usuario final. Si se encuentra un error, y no está a cargo de la sección de excepción, a menudo el programa aborta con un mensaje de error por defecto.

  • Fin: La sección final no contiene nada. Simplemente significa que el programa está en el extremo de su procesamiento. Y en un paquete de muchos procedimientos, la sección del extremo separa de la siguiente procedimiento en la lista.

Cómo llamar PL / SQL con programas Oracle 12c

PL / SQL procedimientos, funciones y paquetes se llaman en un par de maneras diferentes. Usted puede utilizar el comando EXECUTE, o puede llamar al programa como parte de otro bloque. Los disparadores, por el contrario, no se llama desde la línea de comandos.

Ellos ejecutan automáticamente sólo después de completar algún otro proceso. Por ejemplo, es posible que desee un gatillo para disparar cada vez que alguien actualiza la columna de salario de la tabla empleados. Entonces, tal vez el gatillo dispara un e-mail al gerente de Recursos Humanos para informar del cambio.

El comando DESCRIBE también puede trabajar en contra de los programas de PL / SQL. Esto puede ser útil si usted no conoce los argumentos o variables que el procedimiento puede tomar para la entrada. Por ejemplo, supongamos que tiene un procedimiento que recibe el salario de un empleado basado en primera y última entrada del nombre. El procedimiento se llama get_sal.

SQL> DESCRIBE get_salPROCEDURE get_salArgument Tipo Nombre de entrada / salida por defecto? ------------------------------ -------- --------------- ------ -------- P_LAST_NAME VARCHAR2INP_FIRST_NAME VARCHAR2IN

El procedimiento toma a IN argumentos de tipo VARCHAR2.

He aquí cómo usted ejecutar el procedimiento con el comando EXECUTE, usando el empleado Mike Whalen:

SQL> EJECUTAR get_sal ('Whalen', 'Mike') Mike Whalen - Gana: $ 8300PL / procedimiento SQL completada con éxito.

Como se mencionó anteriormente, Oracle cuenta con una gran cantidad de paquetes pre-suministrado, procedimientos y funciones para la gestión de la base de datos. Para obtener una lista completa, vaya a la siguiente sección de la documentación que describe todas las unidades de programa suministrados por Oracle.

Éstos son algunos ejemplos de programas Oracle suministra.

NombreDescripción
DBMS_SCHEDULERGestiona el programador de base de datos interna
DBMS_STATSReúne estadísticas sobre los usuarios, los objetos, el sistema y wholedatabase
SYSDATEHora salidas y la fecha del sistema
UTL_MAILUtilidad para el correo electrónico con las características, tales como archivos adjuntos, Cc, andBcc
DBMS_METADATAFunción para tirar de objetos DDL de base de datos entre othertasks
DBMS_DATAPUMP APIGestiona Data Pump dentro de un programa PL / SQL



» » » Cómo programar con PL / SQL en Oracle 12c