72 - Funciones SQL


La forma más fácil de implementar funciones es utilizar el lenguaje SQL. Una función SQL nos permite dar un nombre a uno o varios comandos sql.

Luego la sintaxis para implementar una función SQL:

create or replace function [nombre de la función]([parámetros]) returns [tipo de dato que retorna]
as
 [comandos sql]
language sql

Como primer problema implementaremos una función que reciba dos enteros y retorne la suma de los mismos:

create or replace function sumar(integer,integer) returns integer 
AS 
  'select $1+$2;'
language sql;

Cada parámetro se lo accede luego mediante la posición que ocupa y se le antecede el caracter $. El o los comandos SQL deben ir entre simples comillas (si tenemos que utilizar las simples comillas en el comando SQL debemos disponer dos simples comillas seguidas) y separados por punto y coma. Luego indicamos al final que se trata de una función SQL.

Para llamar luego a esta función lo hacemos por ejemplo en un select:

select sumar(3,4);

Podemos acceder perfectamente a una o más tablas en la función. Confeccionaremos una función que acceda a la tabla usuarios:

 create table usuarios (
   nombre varchar(30),
   clave varchar(10)
 );

y rescate la clave de un usuario que le pasamos como parámetro:

 create or replace function retornarclave(varchar) returns varchar
 as
   'select clave from usuarios where nombre=$1;'
 language sql;

Luego para probar la función retornarclave debemos llamarla por ejemplo desde un select:

 select retornarclave('Susana');


Retornar