there's a few suites of views of the objects: ALL_TABLES, DBA_TABLES and USER_TABLES;
i try to stick with USER_tables, which are filtered to the schema you belong to (well the oracle user)
USER_TABLES is ~sys.tables
user_tab_columns is ~ sys.columns
here's an example i use when getting tables in a FK hierarchy order:
WITH MyCommonTableExpression
AS
(
SELECT
a.table_name as child_table,
b.table_name parent_table,
colb.column_name as child_column
from user_constraints a
INNER JOIN user_constraints b ON a.r_constraint_name = b.constraint_name
INNER JOIN user_cons_columns conb ON conb.constraint_name = b.constraint_name
INNER JOIN user_tab_columns colb ON colb.table_name = conb.table_name
AND colb.column_name = conb.column_name
WHERE a.constraint_type = 'R'
)
SELECT
parent_table,
child_table,
child_column,
1 as lvl
FROM MyCommonTableExpression
WHERE parent_table='GMACT'
START WITH parent_table = 'GMACT'
CONNECT BY PRIOR child_table = parent_table
Lowell