Ok, also Oracle kann function based indexes, aber bekommst du damit den zweiten Teil gelöst, einen Unique Index auf nur einen Teil der Datensätze zu legen?
Dafür sorgen, dass diese Zeilen dort null bekommen. Sollte funktionieren. Ich hab aber keine Lust, das jetzt zu testen ;)