ORA-01476出たのでNVL/NULLIFの確認

Oracle ORA-01476 について

  • 0除算なんだけど、NULLIF/NVLの違いが詳しく理解出来てなかったのでメモ
SQL> SELECT 2 / 0 FROM dual;
SELECT 2 / 0 FROM dual
         *
行1でエラーが発生しました。:
ORA-01476: 除数がゼロです。
  • 分母の除数が0の場合はnullを渡す
SQL> SELECT 2 / NULLIF(0, 0) FROM dual;

2/NULLIF(0,0)
-------------

NULLIF

  • 第一引数と第二引数が一致した場合にnullを返す
  • NVLと同様にnullの場合に0を返すイメージだったが、nullを返すという事で納得

参考