“Conocimientos software>Software de base de datos

Cómo hacer un PL /SQL paquete Oracle

2014/4/29
Oracle procedimientos almacenados se describen con exactitud la forma en que interactúan. Son procedimientos que utilizan Oracle PL /SQL que residen de forma permanente en la base de datos codificados . De esta manera, los paquetes de Oracle pueden ser reutilizados y , ya que su información está en la base de datos y no se llevó a cabo en los archivos de origen independientes , la información está segura. La creación de paquetes de Oracle implica la creación de una cabecera, especificando los prototipos de las funciones y parámetros , y el cuerpo del paquete que contiene el código real . Tanto la cabecera y el cuerpo pueden ser colocados en un único archivo de texto , pero la buena práctica dicta que deben ser almacenados individualmente . Instrucciones
1

Cree dos archivos de texto con un sufijo de archivo SQL . Estos archivos de texto que contienen el código fuente para el encabezado de paquete de Oracle y el cuerpo del paquete de Oracle respectivamente. Ellos actuarán como los comandos de código para crear el paquete en la base de datos como un procedimiento almacenado .
2

Introduzca los comandos de encabezado del paquete para crear el paquete. Edite el archivo de cabecera y colocar los comandos en que para crear los prototipos de funciones . El archivo de cabecera indica al intérprete de Oracle que esperar al compilar el cuerpo del paquete en términos de parámetros y valores de retorno . Un ejemplo de la cabecera del paquete se muestra a continuación :

crear o sustituir update_planned_hrs PAQUETE


Planned_hours NUMBER ( 4 ) ;

PROCEDIMIENTO set_new_planned ( p_emp_id en número, p_project_id en número, p_hours en número) ;

FUNCIÓN existing_planned ( p_emp_id en número, p_project_id en número) Devuelve el número ;

update_planned_hrs END ;

/

Este es un típico encabezado del paquete. Se puede colocar en su propio archivo de origen o en el mismo archivo fuente como el cuerpo del paquete . Es una buena práctica para mantener a los dos en sus propios archivos de origen , sin embargo. Siempre ejecutar los comandos de creación de paquetes ( la cabecera) primero
3

completar el paquete mediante la introducción de los datos del cuerpo del paquete , correspondiente a las funciones de cabecera y los parámetros introducidos de este modo: .
< p> CREATE OR REPLACE PAQUETE update_planned_hrs CUERPO


PROCEDIMIENTO set_new_planned ( p_emp_id en número, p_project_id en número, p_hours en número)


COMENZAR

ACTUALIZACIÓN employee_on_activity ea

SET ea.ea_planned_hours = p_hours

DONDE

ea.ea_emp_id = p_emp_id

Y ea.ea_proj_id = p_project_id ;

EXCEPCIÓN

CUANDO ENTONCES NO_DATA_FOUND

RAISE_APPLICATION_ERROR ( -20100 , ' No existe el empleado o proyecto ) ;

FIN set_new_planned ;

FUNCIÓN existing_planned ( p_emp_id en número, p_project_id en número) Devuelve el número


existing_hours NUMBER ( 4 ) ;

COMENZAR

SELECT ea . ea_planned_hours EN existing_hours

DE employee_on_activity ea

DONDE

ea.ea_emp_id = p_emp_id

Y ea.ea_proj_id = p_project_id ;

RETURN ( existing_hours ) ;

EXCEPCIÓN

CUANDO ENTONCES NO_DATA_FOUND

RAISE_APPLICATION_ERROR ( -20100 , ' No existe el empleado o proyecto ) ;

FIN existing_planned ;

update_planned_hrs END ;

/
4

Prueba el paquete funciona mediante el uso de datos de prueba adecuados . Esto implicará una llamada al paquete desde la línea de comandos de Oracle SQLPlus como sigue:

DECLARE

NÚMERO l_emp_id ;

NÚMERO l_project_id ;

COMENZAR

l_emp_id : = 1 ;

l_project_id : . = 12 ;

- obtener las horas programadas existentes para este empleado utilizando la variable de paquete persistente

update_planned . planned_hours = update_planned.existing_planned ( l_emp_id , l_project_id ) ;

- Actualiza ahora los empleados horas planificadas

update_planned.planned_hours : update_planned.planned_hours + = 10 ;

update_planned . set_new_planned ( l_emp_id , l_project_id , update_planned.planned_hours ) ;

- salida de los resultados

dbms_output.put_line ( ' Empleado '

Software de base de datos
Cómo contar caracteres de campo en una consulta de Access
¿Qué es el software de minería de datos
Cómo crear una base de datos relacional con FileMaker
Cómo mostrar datos en una fila en un informe de base de datos Access
Cómo utilizar un Tablet separado para ingresar ecuaciones matemáticas
Cómo Enviar informes de MS Access
Una explicación de Algebra Relacional en una Base de Datos Relacional
Cómo importar hojas de cálculo o de datos de texto en una tabla en Access 2003
Conocimientos Informáticos © http://www.ordenador.online