次の機能があります。
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になるのはなぜですか?
回答 1 件
関連記事
- TypeScriptの関数の戻り値の型でパラメーターの値をプロパティ名として使用するにはどうすればよいですか?
- Javascriptは文字列を関数に置き換えます
- Gatsyのナビゲート関数は未定義を返します
- C ++関数パラメータのデフォルト引数を設定しますか?
- PHPは、文字列内で、文字列の後に文字列を返します
- リストを辞書オブジェクトに変換して関数から戻る方法は?
- vue-routerbeforeEach関数はアップグレードされたアイテムを返しません
- キュー出力を使用してAzureFunctionから403ステータスコードを返す
- C関数から2D配列を返す
- Make/BASH/SH:文字列のデッドシンプルプレフィックスポップとサフィックススワップ?
それは神秘的ではありません-NULL値に対する操作は再びNULLです。
あなたは
coalesce
を使用する必要があります 関数とNULL値に対するサニタイズ式。NULLと空の文字列が等しいOracleデータベースを知っているかもしれません。しかし、それはOracleにのみ当てはまり、NULLはNULLであり、より積極的です。