Вы находитесь на странице: 1из 4

UNIVERSIDAD ANDINA DEL CUSCO FACULTAD DE INGENIERA PROGRAMA ACADMICO PROFESIONAL DE INGENIERA DE SISTEMAS

SISTEMAS DE BASE DE DATOS I - SEM 2011-I

GUA DE APLICACIN N02


1. TITULO :
FECHA : 2.

FUNCIONES (02-02)
Febrero 2010

COMPETENCIAS A CONSEGUIR
Describir varios tipos de funciones que hay disponibles en SQL. Utilizar funcione de carcter, numricas y de fecha en sentencias SQL. Describir el uso de funciones de Conversin. Crear funciones definidas por el Usuario.

3.

REQUISITOS
Tener experiencia de uso del Entorno Oracle Express Edition Tener conocimiento del uso de Sentencias de lenguaje de Manipulacin de Datos (DML) Tener conocimiento del uso de Sentencias de lenguaje de Definicin de Datos (DDL) Tener experiencia en el uso de creacin de scripts a travs de las sentencias SQL

4.

BASES TERICAS Definicin: Son caractersticas, o herramientas del SGBD(ORACLE), que le permite brindar servicios a los clientes o usuarios que lo requieran. Estas funciones son subrutinas formadas por un conjunto de instrucciones SQL, las cuales son utilizadas para: -

Realizar clculos de datos Modificar elementos de datos individuales Manipular la salida para grupo de filas Formatear fechas y nmeros para su visualizacin Convertir tipos de datos de columnas

FUNCIONES DEFINIDAS POR EL USUARIO Se tienen Funciones Escalares: Retornan un tipo de los datos como int, money, varchar, real, etc. Pueden ser utilizadas dentro de sentencias SQL. Funciones de tabla en Lnea: Retornan la salida de una simple declaracin SELECT. La salida se puede utilizar dentro de composiciones o consultas como si fuera una tabla de estndar. Funciones de multisentencia: Dan como resultado una tabla, puede estar constituido por varias sentencias SQL, y puede llamar a otras funciones.

UNIVERSIDAD ANDINA DEL CUSCO FACULTAD DE INGENIERA PROGRAMA ACADMICO PROFESIONAL DE INGENIERA DE SISTEMAS
SISTEMAS DE BASE DE DATOS I - SEM 2011-I

CREATE OR REPLACE FUNCTION [esquema].nombre-funcion (nombre-parmetro {IN, OUT, IN OUT} tipo-de-dato, ..) RETURN tipo-de-dato {IS, AS} Declaracin de variables; Declaracin de constantes; Declaracin de cursores; BEGIN Cuerpo del subprograma PL/SQL; EXCEPTION Bloque de excepciones PL/SQL; END;

A. Funciones Escalares:
Sintaxis: CREATE FUNCTION [esquema].fnu_nombre_de_function (nombre-parmetro {IN, OUT, IN OUT} tipo-de-dato, [ = default] ) RETURNS tipo de dato IS,AS BEGIN Sentencias PL/SQL RETURN expression END Ejemplo En el sistema de un Banco en el cual se definen las siguientes tablas:
tCliente (codCliente ,nomCliente,dirCliente) tCuenta (codCuenta, fechaAperturaCuenta, tipoCuenta, monedaCuenta , CodCliente) tOperacion(codOperacion, fechaHoraOperacion, montoOperacion ,tipoOperacion ,codCuenta )

Se desea actualizar el saldo de las cuenta de los clientes con un plus que corresponde a 50 nuevos soles, se requiere crear una funcin que retorne un tipo de dato y la tabla est definida con esta funcin. Solucin: En primera instancia se crea la funcin que ha de ser utilizada en la definicin de la tabla

UNIVERSIDAD ANDINA DEL CUSCO FACULTAD DE INGENIERA PROGRAMA ACADMICO PROFESIONAL DE INGENIERA DE SISTEMAS
SISTEMAS DE BASE DE DATOS I - SEM 2011-I

/* ELABORACION DE FUNCIONES ESCALARES*/ /*FUNCIONES SCALARES*/ /* ELABORACION DE FUNCIONES ESCALARES*/ CREATE OR REPLACE FUNCTION ADMIN_BANCO.FN_ACTUALIZARSALDO ( CodOpe in VARCHAR2 ) RETURN NUMBER AS montoOpe NUMBER; retorna NUMBER; begin SELECT montoOperacion INTO montoOpe FROM toperacion WHERE CodOperacion = CodOpe; retorna := montoOpe * 50; RETURN retorna; end; /* utilizar FUNCIONES ESCALARES*/ SELECT CODOPERACION, FECHAHORAOPERACION,MONTOOPERACION, -- Ejecucion de la funcion: ADMIN_BANCO.FN_ACTUALIZARSALDO(CodOperacion) AS RESULTADO FROM toperacion /*Resultado

B. Funciones de tabla en Lnea:


Sintaxis: CREATE FUNCTION fnu_Nombre de function (nombreparametro IN Tipo [=default]
) RETURNS TABLE [WITH ENCRYPTION}] RETURN( Sentencia SELECT )

UNIVERSIDAD ANDINA DEL CUSCO FACULTAD DE INGENIERA PROGRAMA ACADMICO PROFESIONAL DE INGENIERA DE SISTEMAS
SISTEMAS DE BASE DE DATOS I - SEM 2011-I

Ejemplo:

1. Crear una Funcin lineal que nos permita ver los movimientos de operaciones de un Cliente del Banco a travs del ingreso de su Cdigo Cuenta Bancaria.
CREATE OR REPLACE FUNCTION ADMIN_BANCO.fn_MovimientosCuenta ( CodCuenta in VARCHAR2 ) RETURN TABLE AS begin return SELECT toperacion.* FROM tOperacion INNER JOIN tCuenta ON tOperacion.codcuenta = tCuenta.codcuenta WHERE tcuenta.codcuenta = CodCuenta; end; -- Ejecucion de la funcion: SELECT * FROM fn_MovimientosCuenta('A01'); ****/falta resultado por sintaxis

5.

EJERCICIOS PROPUESTOS: Se requiere la relacin de los clientes alumnos que tiene una cantidad mnima de depsito mensual, Variable de entrada CodCliente. Se desea evaluar los movimientos de retiro y deposito de dinero de cada cliente, y para poder hacerlo, el Gerente del banco desea saber la relacin de clientes entre el periodo de 20010-2011 todos los movimientos realizados, la cantidad de dinero utilizaron entre depsitos y retiros, y determinar cual es el cliente que mas realizo movimientos bancarios, Variable de entrada Periodo 2010-2011.
PROCESO DE EVALUACIN Desarrollar los scripts de cada uno de los tipos de funciones Realizacin del Paquete de Requerimientos Realizacin del Paquete de Valorizacin

6.

Вам также может понравиться