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
Conteúdo
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.
Nombre | Descripción |
---|---|
ANÓNIMO BLOQUE | Un nombre-programa que se ejecuta desde la línea de comandos |
PROCEDIMIENTO | Almacenado, llamado programa que realiza unas tareas |
FUNCIÓN | Programa que toma la entrada, actúa sobre ella, y producesoutput |
PAQUETE | Grupo de los procedimientos y / o funciones con nombre que se relacionan bytask |
GATILLO | Programa 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.
Nombre | Descripción |
---|---|
DBMS_SCHEDULER | Gestiona el programador de base de datos interna |
DBMS_STATS | Reúne estadísticas sobre los usuarios, los objetos, el sistema y wholedatabase |
SYSDATE | Hora salidas y la fecha del sistema |
UTL_MAIL | Utilidad para el correo electrónico con las características, tales como archivos adjuntos, Cc, andBcc |
DBMS_METADATA | Función para tirar de objetos DDL de base de datos entre othertasks |
DBMS_DATAPUMP API | Gestiona Data Pump dentro de un programa PL / SQL |