It turns out Oracle implictly uses a STRICT select into interpretation,
so you have to catch the no-data-found exception and handle it
explicitly rather than the select automatically assigning nulls.