“Conocimiento software>Software de base de datos

Cómo hacer un PL /SQL paquete Oracle

2015/4/26
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
Sistemas de tarjetas de identificación de cliente que incluyen información electrónica
¿Cómo transfiero SolidWorks para mi nuevo equipo
Cómo usar el Sistema épico en un laboratorio de hospital
¿Cómo hacer una base de datos de Rational
Cómo utilizar el trabajo en grupo en MS Access 2007
¿Tiene experiencia en el uso de computadoras y paquetes de software de oficina (MS Word Excel, etc.) Conocimiento de la hoja de cálculo de la hoja de datos Manejo de la base de datos basado en la web?
Tutoriales de SQL Enterprise Manager
Definición de un sistema de gestión de bases de datos relacionales (RDBMS )
Conocimiento de la computadora © http://www.ordenador.online