funciones

5
UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS Lab. Administración de Base de Datos 1 Prof. Elvira Fernández (IS-443) FUNCIONES EN PL/SQL I. OBJETIVOS Conocer la definición y utilización de funciones II. MARCO TEÓRICO Definición de Función Una función es un bloque nombrado PL/SQL que devuelve un valor. Una función puede estar almacenada en la B.D., como objeto de la B.D., para repetidas ejecuciones. Una función puede ser llamada como parte de una expresión. Los procedimientos y funciones llevan a cabo tareas específicas, y su mayor diferencia radica en que las funciones devuelven un valor. SINTAXIS: CREATE [OR REPLACE] FUNCTION [esquema].nombre-función (nombre-parámetro {IN | OUT | IN OUT} tipo-de-dato, ...) RETURN tipo-de-dato {IS | AS} Declaración de variables; Declaración de constantes; Declaración de cursores; BEGIN Instrucciones SQL: Return valor; EXCEPTION Bloque de excepciones PL/SQL; END; Descripción de la sintaxis: Nombre-parámetro: es el nombre que queramos dar al parámetro. Podemos utilizar Múltiples parámetros. En caso de no necesitarlos, podemos omitir los paréntesis. • IN: especifica que el parámetro es de entrada y que por tanto dicho parámetro tiene que tener un valor en el momento de llamar a la función o procedimiento. Si no se especifica nada, los parámetros son por defecto de tipo entrada. OUT: especifica que se trata de un parámetro de salida. Son parámetros cuyo valor es devuelto después de la ejecución el procedimiento al bloque PL/SQL que lo llamó. Las funciones PLSQL no admiten parámetros de salida.

Upload: dionisiovg

Post on 18-Jul-2016

27 views

Category:

Documents


1 download

DESCRIPTION

sistemas

TRANSCRIPT

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL

ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

Lab. Administración de Base de Datos 1 Prof. Elvira Fernández (IS-443)

FUNCIONES EN PL/SQL

I. OBJETIVOS

Conocer la definición y utilización de funciones

II. MARCO TEÓRICO

Definición de Función

Una función es un bloque nombrado PL/SQL que devuelve un valor.

Una función puede estar almacenada en la B.D., como objeto de la B.D., para repetidas ejecuciones.

Una función puede ser llamada como parte de una expresión.

Los procedimientos y funciones llevan a cabo tareas específicas, y su mayor diferencia radica en que las funciones devuelven un valor.

SINTAXIS:

CREATE [OR REPLACE] FUNCTION [esquema].nombre-función (nombre-parámetro {IN | OUT | IN OUT} tipo-de-dato, ...) RETURN tipo-de-dato {IS | AS}

Declaración de variables; Declaración de constantes; Declaración de cursores;

BEGIN Instrucciones SQL: Return valor;

EXCEPTION Bloque de excepciones PL/SQL;

END; Descripción de la sintaxis: • Nombre-parámetro: es el nombre que queramos dar al parámetro. Podemos utilizar Múltiples parámetros. En caso de no necesitarlos, podemos omitir los paréntesis. • IN: especifica que el parámetro es de entrada y que por tanto dicho parámetro tiene que tener un valor en el momento de llamar a la función o procedimiento. Si no se especifica nada, los parámetros son por defecto de tipo entrada. • OUT: especifica que se trata de un parámetro de salida. Son parámetros cuyo valor es devuelto después de la ejecución el procedimiento al bloque PL/SQL que lo llamó. Las funciones PLSQL no admiten parámetros de salida.

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL

ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

Lab. Administración de Base de Datos 2 Prof. Elvira Fernández (IS-443)

• IN OUT: Son parámetros de entrada y salida a la vez. • Tipo-de-dato: Indica el tipo de dato PLSQL que corresponde al parámetro (NUMBER, VARCHAR2, etc). •Valor: es el valor que la función debe devolver y normalmente está almacenado en una variable.

Desde dónde llamarlas

Como columna de un SELECT.

Condiciones en cláusulas WHERE y HAVING.

Cláusulas ORDER BY y GROUP BY.

Cláusula VALUES de un comando INSERT.

Cláusula SET de un comando UPDATE.

Borrado de Funciones

Para quitar una función de la parte del servidor, utilizando SQL*Plus, ejecutar el comando DROP FUNCTION.

Sintaxis:

III. DESARROLLO

CREANDO UN FUNCION EJEMPLO 01. Por medio de una función, se desea obtener la suma de 2 números.

Nota: Cada función debe devolver un valor del tipo especificado utilizando la sentencia RETURN.

LLAMADAS A FUNCIONES • Desde otro procedimiento, función y triggers CREATE PROCEDURE proceso ... IS ... BEGIN ... /* llamada a la función obtener_salario */

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL

ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

Lab. Administración de Base de Datos 3 Prof. Elvira Fernández (IS-443)

w_sal :=F_SUMA (10,2000); END; • Desde un bloque anónimo BEGIN DBMS_OUTPUT.PUT_LINE(' sUMA DE DOS VARIABLES: '||F_SUMA(15,1000)); END; • Desde una instrucción SQL SELECT FIRST_NAME,SALARY,F_SUMA(SALARY,COMMISSION_PCT )AS "SALARIO TOTAL" FROM EMPLOYEES; Ejemplo2> crear una función que retorne el nombre y apellido de un empleado según su código

Ejemplo3> crear una función que retorne el nombre del departamento según su código indicado

CONSULTA DE LA TABLA JOB_HISTORY select EMPLOYEE_ID,START_DATE,END_DATE,JOB_ID,DEPARTMENT_ID from HR.JOB_HISTORY; Llamando a las funciones mediante una consulta select select EMPLOYEE_ID as cod_empleado,F_NOMBRE_EMPLEADO(EMPLOYEE_ID) as Empleado ,DEPARTMENT_ID,F_NOMBRE_DEPARTAMENTO(DEPARTMENT_id ) as Departamento from HR.JOB_HISTORY;

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL

ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

Lab. Administración de Base de Datos 4 Prof. Elvira Fernández (IS-443)

Ejercicio01 Crear una función, para convertir una cadena de texto de minúscula a mayúscula. Ejercicio02 Desarrolle una función que permita calcular la edad de una cliente, del esquema OE. Utilizar la función para calcular tu edad Salida1

Salida2

Ejercicio03 Crear una función que calcule la cantidad total de pedidos que realizó un cliente. Ejercicio04 Crear una función para mostrar la cantidad de pedidos de un producto x

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL

ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

Lab. Administración de Base de Datos 5 Prof. Elvira Fernández (IS-443)

Ejercicio05 Crear una función que calcule el total de pedidos que se realizó entre la fecha “ x” y la fecha ” y”

IV. TAREA PARA CASA

1-Mostrar a los empleados con su respectivo país Ingresando el Código de Empleado(HR) 2-Desarrolle 3 funciones, agregue excepciones 3-crear un procedimiento almacenado cualquiera y desde éste invocar una función