Can't have a unique constraint with a nullable field and treat that nullable as a "unique" value.
(Oracle) http://www.adp-gmbh.ch/ora/misc/integrity_constraints.html ,
A UNIQUE index is one in which all values in the index must be distinct. An error occurs if you try to add a new row with a key that matches an existing row. The exception to this is that if a column in the index is allowed to contain NULL values, it can contain multiple NULL values. This exception does not apply to BDB tables, for which an indexed column allows only a single NULL.