NULLと''

NULLと''は同じ。だから↓は通らない。

SQL> CREATE TABLE hoge (hoge VARCHAR2(10) NOT NULL);
表が作成されました。

SQL> INSERT INTO hoge VALUES('')
                         *
行1でエラーが発生しました。:
ORA-01400: ("TEST"."HOGE"."HOGE")にはNULLは挿入できません。

http://biz.rivus.jp/words/null.html
長さ 0 の文字列とNULLは同じということらしい。なので以下のSQLは1行ヒットして1が返る。

select 1 from dual where '' is null;