Getting Information on the Constraints on a Column : user_cons_columns « System Tables Data Dictionary « Oracle PL/SQL Tutorial






You can get information on the constraints on a column by querying user_cons_columns.

SQL> desc user_cons_columns;
 Name               Null?    Type
 -------------------
 OWNER              NOT NULL VARCHAR2(30)
 CONSTRAINT_NAME    NOT NULL VARCHAR2(30)
 TABLE_NAME         NOT NULL VARCHAR2(30)
 COLUMN_NAME                 VARCHAR2(4000)
 POSITION                                                                                                                                                                       NUMBER

SQL>
SQL>
SQL> -- create demo table
SQL> create table myTable(
  2    id           NUMBER(2),
  3    value        NUMBER(6,2)
  4  )
  5  /

Table created.

SQL>
SQL> -- prepare data
SQL> insert into myTable(ID,  value)values (1,9)
  2  /

1 row created.

SQL> insert into myTable(ID,  value)values (2,2.11)
  2  /

1 row created.

SQL> insert into myTable(ID,  value)values (3,3.44)
  2  /

1 row created.

SQL> insert into myTable(ID,  value)values (4,-4.21)
  2  /

1 row created.

SQL> insert into myTable(ID,  value)values (5,10)
  2  /

1 row created.

SQL> insert into myTable(ID,  value)values (6,3)
  2  /

1 row created.

SQL> insert into myTable(ID,  value)values (7,-5.88)
  2  /

1 row created.

SQL> insert into myTable(ID,  value)values (8,123.45)
  2  /

1 row created.

SQL> insert into myTable(ID,  value)values (9,98.23)
  2  /

1 row created.

SQL>
SQL> select * from myTable
  2  /

        ID      VALUE
---------- ----------
         1          9
         2       2.11
         3       3.44
         4      -4.21
         5         10
         6          3
         7      -5.88
         8     123.45
         9      98.23

9 rows selected.

SQL>
SQL>
SQL>
SQL> ALTER TABLE myTable
  2  ADD CONSTRAINT uq UNIQUE (id)
  3  DEFERRABLE INITIALLY DEFERRED;

Table altered.

SQL>
SQL> COLUMN column_name FORMAT a15
SQL> SELECT constraint_name, column_name
  2  FROM user_cons_columns
  3  WHERE table_name = 'MYTABLE';

CONSTRAINT_NAME                COLUMN_NAME
------------------------------ ---------------
UQ                             ID

SQL>
SQL> clear columns;
columns cleared
SQL>
SQL> -- clean the table
SQL> drop table myTable
  2  /

Table dropped.

SQL>
SQL>








30.77.user_cons_columns
30.77.1.Getting Information on the Constraints on a Column
30.77.2.Combine user_constraints and user_cons_columns