Use decode() function in check constraints : Check « Table « Oracle PL/SQL Tutorial






SQL>
SQL>
SQL> create table emp
  2  ( empno      NUMBER(4)    constraint E_PK
  3                            primary key
  4  , ename      VARCHAR2(8)
  5  , init       VARCHAR2(5)
  6  , job        VARCHAR2(8)
  7  , mgr        NUMBER(4)
  8  , bdate      DATE
  9  , sal        NUMBER(6,2)   constraint E_sal_NN not null
 10  , comm       NUMBER(6,2)
 11  , deptno     NUMBER(2)    default 10
 12  , constraint E_SALES_CHK  check(decode(job,'Tester',0,1)+ nvl2(comm,1,0) = 1)
 13  ) ;

Table created.

SQL>
SQL> create index year_sal_idx
  2  on emp (12*sal + coalesce(comm,0));

Index created.

SQL>
SQL>
SQL> drop index year_sal_idx;

Index dropped.

SQL> drop table emp;

Table dropped.








6.13.Check
6.13.1.Create a table with check constraint
6.13.2.Adding a CHECK Constraint
6.13.3.Use comparison operators with a CHECK constraint
6.13.4.Constraint with Two conditions
6.13.5.Add condition constraint with 'and' operator
6.13.6.Check constraint with decode and nvl2
6.13.7.Check constraint with MOD function
6.13.8.A column with upper case constraint
6.13.9.check constraint: must be positive value
6.13.10.Check constraint: one column must less than another column
6.13.11.Add constraint to ensure that value from one column is bigger than that from another
6.13.12.Salary column value cannot be greater than 1000
6.13.13.Setting CHECK constraint for number type field
6.13.14.Setting the Regular expression check for varchar field
6.13.15.Use char function to build default column value
6.13.16.Use decode() function in check constraints
6.13.17.Violate a ckeck constraint
6.13.18.Must be upper case