我有以下功能,其中包含6个参数。
在这里,我想将默认值null设置为参数cola
,colc
和colf
。
功能:fun_Test
create or replace function fun_Test
(
cola int default null,
colb varchar(10),
colc int default null,
cold varchar(10),
cole varchar(10),
colf varchar(50) default null
)
returns void AS
$$
begin
raise info '%',cola;
raise info '%',colb;
raise info '%',colc;
raise info '%',cold;
raise info '%',cole;
raise info '%',colf;
end;
$$
language plpgsql;
但是收到错误。
错误:带有默认值的输入参数必须也有默认值
答案 0 :(得分:2)
您必须重新排序参数!只需将默认值放在最后。
答案 1 :(得分:1)
这应该有效:
CREATE OR replace FUNCTION
fun_Test (
colb VARCHAR(10)
,cold VARCHAR(10)
,cole VARCHAR(10)
,colf VARCHAR(50) = NULL
,colc INT = NULL
,cola INT = NULL
)
<强> default_expr 强>
如果参数不是,则用作默认值的表达式 指定。表达式必须对参数类型具有可强制性 参数。只有输入(包括INOUT)参数才能有 默认值。参数后面的所有输入参数都带有 默认值也必须具有默认值。