PostgreSQL tiene 4 tipos de parámetros de funciones, como se indica a continuación:
- EN
- AFUERA
- EN FUERA
- VARIADICO
EN el parámetro:
Para comprender mejor estos parámetros de función, primero definamos una función en la que experimentaremos con los parámetros de función mencionados anteriormente como se muestra a continuación:
CREATE OR REPLACE FUNCTION get_sum( a NUMERIC, b NUMERIC) RETURNS NUMERIC AS $$ BEGIN RETURN a + b; END; $$ LANGUAGE plpgsql;
get_sum() a b ,
tipos de datos ININ
SELECT get_sum(10, 20);
Producción:
Parámetro de salida:
AFUERA
CREATE OR REPLACE FUNCTION hi_lo( a NUMERIC, b NUMERIC, c NUMERIC, OUT hi NUMERIC, OUT lo NUMERIC) AS $$ BEGIN hi := GREATEST(a, b, c); lo := LEAST(a, b, c); END; $$ LANGUAGE plpgsql;
hola_lo
- en un b c
- OUThilo
MAYOR MENOR SALIDA SALIDA
SELECT hi_lo(10, 20, 30);
Producción:
Parámetro de entrada:
El parámetro INOUT es la combinación de los parámetros IN y OUT. Significa que la persona que llama puede pasar un valor a la función. Luego, la función cambia el argumento y devuelve el valor como parte del resultado.
La siguiente función cuadrada acepta un número y devuelve el cuadrado de ese número.
CREATE OR REPLACE FUNCTION square( INOUT a NUMERIC) AS $$ BEGIN a := a * a; END; $$ LANGUAGE plpgsql;
Ejemplo:
SELECT square(4);
Producción:
Parámetros VARIADICOS:
CREATE OR REPLACE FUNCTION sum_avg( VARIADIC list NUMERIC[], OUT total NUMERIC, OUT average NUMERIC) AS $$ BEGIN SELECT INTO total SUM(list[i]) FROM generate_subscripts(list, 1) g(i); SELECT INTO average AVG(list[i]) FROM generate_subscripts(list, 1) g(i); END; $$ LANGUAGE plpgsql;
suma_mean()
SELECT * FROM sum_avg(10, 20, 30);
Producción:
Publicación traducida automáticamente
Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA