Show All Oracle Database Table Constraints

Show All Oracle Database Table Constraints

This article delves into the world of Oracle Database constraints, empowering you to understand their types, statuses, and modification history. We'll dissect a powerful SQL query that retrieves this crucial information, making you a database management pro.

Sample SQL Command

 1col type format a10
 2col cons_name format a30
 3select	decode(constraint_type,
 4		'C', 'Check',
 5		'O', 'R/O View',
 6		'P', 'Primary',
 7		'R', 'Foreign',
 8		'U', 'Unique',
 9		'V', 'Check view') type
10,	constraint_name cons_name
11,	status
12,	last_change
13from	dba_constraints
14where	owner like '&owner'
15and	table_name like '&table_name'
16order by 1


Constraints act as essential rules within your Oracle Database tables, ensuring data remains consistent and accurate. They prevent invalid entries and enforce specific conditions on your data. By effectively utilizing constraints, you safeguard your database against inconsistencies and maintain its integrity.

Breakdown of the SQL Code:

The provided SQL code leverages the dba_constraints data dictionary view, a treasure trove of information about constraints within your database. Let's break down the code step-by-step:

  1. Column Definitions:

    • col type format a10: Defines a column named type to store the constraint type with a display format of 10 characters.
    • col cons_name format a30: Defines a column named cons_name to store the constraint name with a display format of 30 characters.
  2. SELECT Clause:

    • The SELECT clause retrieves data from various columns:
      • decode(constraint_type,... ): Decodes the cryptic constraint type code (C, O, etc.) into a human-readable format (Check, R/O View, etc.) using a DECODE function.
      • constraint_name: Retrieves the actual name of the constraint.
      • status: Shows the current enforcement status of the constraint (e.g., ENABLED, DISABLED).
      • last_change: Indicates the last time the constraint was modified.
  3. FROM Clause:

    • FROM dba_constraints: Specifies the data source as the dba_constraints data dictionary view.
  4. WHERE Clause:

    • owner like '&owner': Filters constraints based on a provided schema owner name (&owner is a placeholder).
    • table_name like '&table_name': Further narrows down the results to constraints associated with a specific table name (&table_name is another placeholder).
  5. ORDER BY Clause:

    • ORDER BY 1: Orders the results by the first column (type), providing a logical organization based on constraint types.

Key Points and Insights:

  • This query offers a consolidated view of various constraint types, including Check, Primary Key, Foreign Key, Unique, Check View, and Read-Only View constraints.
  • By examining the status column, you can identify disabled constraints that might require enabling for proper data enforcement.
  • The last_change column provides valuable insights into constraint modifications, aiding in tracking database schema evolution.


By mastering this SQL query and understanding constraint types, you gain a powerful tool to manage and maintain the integrity of your Oracle Database. This knowledge empowers you to ensure data accuracy, enforce business rules, and streamline database administration tasks.

Important Reference Links:

Posts in this series