they can be expensive if overused, dba_tab_columns one of the lesser one.

The in memory ones can cause you trouble.

SP are better as far as I am concerned (all sql should be in them) but if you write it correctly put the code where you want it