最初のパラメータが評価されない場合でも、 OracleのNVL
(および)関数が常に2番目のパラメータを評価する理由を誰かが知っていますか?NVL2
NULL
簡単なテスト:
CREATE FUNCTION nvl_test RETURN NUMBER AS
BEGIN
dbms_output.put_line('Called');
RETURN 1;
END nvl_test;
SELECT NVL( 0, nvl_test ) FROM dual
を返します0
が、も出力しCalled
ます。
nvl_test
最初のパラメータがではないため、結果は無視されますが、が呼び出されNULL
ました。