oracle8.1.6 select replace(lpad(' ', (level - 1) * 4), ' ', ' ') || t.pretty_name, t.object_type as rel_type from acs_object_types t connect by prior t.object_type = t.supertype start with t.object_type=:max_object_type_one select replace(lpad(' ', (level - 1) * 4), ' ', ' ') || t.pretty_name, t.object_type as rel_type from acs_object_types t connect by prior t.object_type = t.supertype start with t.object_type=:max_object_type_two select case when exists (select 1 from acs_object_types t where t.pretty_name = :pretty_name) then 1 else 0 end from dual select case when exists (select 1 from acs_object_types t where t.pretty_plural = :pretty_plural) then 1 else 0 end from dual