Sei sulla pagina 1di 2

Funciones en oracle Una funcin es un conjunto de instrucciones en PL/SQL, que pueden ser llamados usando el nombre con que

se le haya creado. Se diferencian de los procedimientos, en que las funciones retornan un valor al ambiende desde donde fueron llamadas. La sintaxis para crear una funcin es la siguiente: CREATE [OR REPLACE] FUNCTION name [(param [IN] datatype) . . .] RETURN datatype [IS|AS] pl/sql_subprogram El uso de OR REPLACE permite sobreescribir una funcin existente. Si se omite, y la funcin ya existe, se producir, un error. El unico modificador permitido para los parmetros es IN, y si se omite, se tomar por defecto. Es decir, solo se permiten parmetros de entrada. A continuacin se presenta un ejemplo de creacin de una funcin: SQL> CREATE FUNCTION get_bal (acc_no IN NUMBER) 1> RETURN NUMBER 2> IS 3> acc_bal NUMBER(11,2); /* declaracin de una variable */ 4> BEGIN 5> SELECT balance 6> INTO acc_bal /* asignacin */ 7> FROM accounts 8> WHERE account_id = acc_no; 9> RETURN(acc_bal); 10> END La funcin get_bal retorna el balance de una cuenta dada. Si se desea eliminar (borrar) una funcin, se usa la instruccin: SQL> DROP FUNCTION name;

Al crear un procedimiento almacenado, las instrucciones que contiene se analizan para verificar si son correctas sintcticamente. Si se encuentra algn error, el procedimiento se compila, pero aparece un mensaje "con advertencias" que indica tal situacin. Un procedimiento almacenado se invoca llamndolo. En primer lugar se deben tipear y probar las instrucciones que se incluyen en el procedimiento almacenado, luego, si se obtiene el resultado esperado, se crea el procedimiento. Los procedimientos almacenados pueden hacer referencia a tablas, vistas, a funciones definidas por el usuario, a otros procedimientos almacenados. Un procedimiento almacenado pueden incluir cualquier cantidad y tipo de instrucciones DML (de manipulacin de datos, como insert, update, delete), no instrucciones DDL (de definicin de datos, como create..., drop... alter...). Para crear un procedimiento almacenado empleamos la instruccin "create procedure". La sintaxis bsica parcial es:

create or replace procedure NOMBREPROCEDIMIENTO as begin INSTRUCCIONES end; El bloque de instrucciones comienza luego de "begin" y acaba con "end". Si empleamos "or replace", se sobreescribe (se reemplaza) un procedimiento existente; si se omite y existe un procedimiento con el nombre que le asignamos, Oracle mostrar un mensaje de error indicando tal situacin. Para diferenciar los procedimientos almacenados del sistema de los procedimientos almacenados creados por el usuario use un prefijo, por ejemplo "pa_" cuando les de el nombre. Con las siguientes instrucciones creamos un procedimiento almacenado llamado "pa_libros_aumentar10" que incrementa en un 10% el precio de todos los libros: create procedure pa_libros_aumentar10 as update libros set precio=precio+precio*0.1; Entonces, creamos un procedimiento almacenado colocando "create procedure" (o "create or replace", si es que desea reemplazar el existente), luego el nombre del procedimiento y seguido de "as" las sentencias que definen el procedimiento. Para ejecutar el procedimiento almacenado creado anteriormente tipeamos: execute pa_libros_aumentar10; Entonces, para ejecutar un procedimiento almacenado colocamos "execute" seguido del nombre del procedimiento.

Procedimientyos almacenados Oracle 2941059930

Potrebbero piacerti anche