typestar

Parámetros INOUT en SQL

Un procedimiento de pago que devuelve el recibo por su lista de parámetros.

-- An INOUT parameter carries a result back from a CALL.
CREATE PROCEDURE take_payment(
    order_no INTEGER,
    amount NUMERIC,
    INOUT receipt TEXT DEFAULT NULL
)
LANGUAGE plpgsql
AS $$
BEGIN
    INSERT INTO payments (order_id, amount, paid_at)
    VALUES (order_no, amount, now());
    receipt := 'paid ' || amount || ' against order ' || order_no;
END;
$$;

CALL take_payment(102, 34.95);

Cómo funciona

  1. INOUT receipt TEXT DEFAULT NULL es argumento y resultado a la vez.
  2. El cuerpo registra el pago y luego asigna la cadena del recibo.
  3. CALL imprime los valores INOUT como fila de resultado al volver.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
16
Caracteres a escribir
371
Tokens
73
Ritmo de tres estrellas
65 tpm

Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 67 segundos.

Escribe este fragmento

Paso 2 de 4 en Procedimientos y transacciones; paso 10 de 23 en Procedimientos almacenados de PostgreSQL.

← Anterior Siguiente →