CREATE [ OR REPLACE ] FUNCTION nombre_de_la_funcion (argumento 1 , argumento 2, etc) RETURN tipo_de_dato IS | AS bloque PL/SQL;
CREATE OR REPLACE FUNCTION get_salario (v_id IN EMPLOYEES.EMPLOYEE_ID%TYPE) RETURN NUMBER IS v_salario EMPLOYEES.SALARY%TYPE :=0; BEGIN SELECT SALARY INTO v_salario FROM EMPLOYEES WHERE EMPLOYEE_ID = v_id; RETURN (v_salario); END get_salario; /
Como que devuelve un valor hay que ejecutarlo dentro de un procedimiento PL/SQL … vamos a hacer uno cutre para ver qeu efectivamente funciona:
SQL> VARIABLE GS NUMBER
SQL> execute :GS :=get_salario(205);
PL/SQL procedure successfully completed.
SQL> print GS
GS
----------
12000
SQL>
Ventajas de las Funciones Definidas por el Usuario:
DROP FUNCTION nombre_de_la_funcion