我有以下功能:
CREATE OR REPLACE FUNCTION public.get_string(cmd_type text, udf_name text,
group_name character varying DEFAULT 'usage'::character varying)
RETURNS text
LANGUAGE plpgsql
AS $function$
BEGIN
return 'This is the string: '''|| group_name ||''''::text;
END;
$function$
当我这样称呼它时:
select public.get_string('test', 'myudf!', group_name=>null::character varying);
它返回 NULL。
我希望它至少会返回:
This is the string: ''
但是,当我这样称呼它时:
select public.get_string('test', 'myudf!');
我得到了预期:
This is the string: 'usage'
为什么将 NULL 传递给可选参数会使整个字符串为 NULL?