Oh rats! I was hoping I could avoid decode since I have a bazillion fields and I'll have to decode every field and maintaining it is going to be a ugly. I was hoping there might be a SMUSH set operator.
Well you could create a procedure which given a list of parent/child table pairs (from a table say) could create views using info from user_tab_columns. That way your code would only interrogate the views and you could have an oracle job to run your procedure when there is a table change or at a regular intervals.