Oracle の PL/SQL で、NULL と '' を別物として扱っていた私に先輩が一言
NULL と空文字列は一緒やで。
Oracle Master Bronz 11g を勉強したときに、別物と書いてあったような・・・
そこで、調べてみました。
Oracle(R) Database SQL Language Reference
11g Release 1 (11.1)
Nulls
Oracle Database treats a character value with a length of zero as null. However, do not use null to represent a numeric value of zero, because they are not equivalent.
Note:
Oracle Database currently treats a character value with a length of zero as null. However, this may not continue to be true in future releases, and Oracle recommends that you do not treat empty strings the same as nulls.
http://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements005.htm
これは Oracle 11g Release 1 のドキュメント。空文字列とNULLは一緒、とはっきり書いてありますね。ただし、今後別物にする予定らしいので、別物として扱っておいたほうがいいわよとORACLEは言っている。現在のスクリプトをそのまま新しいバージョンでも使えるようにするためにも、NULL と空文字列は別物として PL/SQL を書いたほうがよさそうですね。パッチ当てたら使えなくなった!とか困るし。