Eu tenho uma função com 5 parâmetros,
- argumentos
p1
, ep2
são obrigatórios - argumentos
p3
,p4
ep5
são opcionais e têm umDEFAULT
conjunto
A função fica assim,
CREATE FUNCTION test_func(
p1 int,
p2 int,
p3 int DEFAULT 3,
p4 int DEFAULT 4,
p5 int DEFAULT 5
)
RETURNS int AS
$$
SELECT p5;
$$ LANGUAGE sql;
Eu posso invocá-lo assim,
SELECT test_func(1,2,3,4,5);
test_func
-----------
5
Mas eu gostaria de permitir que p3 e p4 fossem padronizados e invocá-lo assim,
SELECT test_func(1,2,5);
Existe uma maneira de especificar o valor para o último parâmetro opcional ( p5
) sem dar valores aos anteriores ( p3
, p4
)? Não quero codificar valores padrão para p3
, p4
na chamada para test_func
, porque talvez precise alterar seus valores padrão no futuro.
Você pode simplesmente fornecer o quinto argumento com notação mista usando o
=>
para separar o nome do parâmetro do argumento,Dos documentos em notação mista com uma ressalva (dos documentos),