2

Create a single query that accesses the system catalog to retrieve the information about all tables and all columns, and any constraints on the columns. The information to be displayed is:

a.Table name
b.Column name (listed in the same order as they were created)
c.Constraint name
d.Constraint type. Instead of the one letter codes, use: ‘PK’, ‘FK’, ‘CK’, and ‘NN’
e.Search condition (for any check constraints), and
f.Reference table and column for FK constraints 

I have created the query that retrieves table name, column names, constraint name, constraint type, search condition.

Here is what I have so far,

SELECT A.table_name, A.column_name,
       B.constraint_name, B.constraint_type,
       search_condition
FROM(
(SELECT table_name, column_name, column_id
FROM user_tab_columns) A
left JOIN
(SELECT user_constraints.table_name, column_name,
       user_constraints.constraint_name,
       Decode(constraint_type, 'P', 'PK', 'R', 'FK', 'C', 'CK') constraint_type,
        search_condition
FROM user_constraints JOIN user_cons_columns
     ON user_cons_columns.constraint_name = user_constraints.constraint_name) B
ON A.table_name = B.table_name AND A.column_name = B.column_name)
ORDER BY A.table_name, column_id;

I am having trouble finding the referenced columns to which the FK refers and the referenced tables.

Thanks.

user37940
  • 478
  • 1
  • 4
  • 17

0 Answers0