PostgreSQL – Parámetros de funciones

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *