Tuesday, 11 February 2014

SQL TRIGGERS PROGRAM IN SQL

Initially create a student database table named student18 and then enter the values
then  start
SQL> select * from student18;

    ROLLNO NAME                           SUBJECT                SEMESTER
---------- ------------------------------ -------------------- ----------
         2 SANKET2                        WDP                           2
         3 SANKET3                        DCN                           2
         4 SANKET4                        MMC                           2

SQL> desc student18;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ROLLNO                                             NUMBER(38)
 NAME                                               CHAR(30)
 SUBJECT                                            CHAR(20)
 SEMESTER                                           NUMBER(38)

SQL> alter table student18
  2  add (DOJ date);

Table altered.

SQL> create or replace trigger trigstud
  2  before insert
  3  on student18
  4  for each row
  5  begin
  6  if :new.doj > sysdate then
  7  raise_application_error
  8  (-20002,' Date of joining cannot be after system date.');
  9  end if;
 10  end;
 11  /

Trigger created.

SQL> save string18;
Created file string18.sql
SQL> desc student18;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ROLLNO                                             NUMBER(38)
 NAME                                               CHAR(30)
 SUBJECT                                            CHAR(20)
 SEMESTER                                           NUMBER(38)
 DOJ                                                DATE

SQL> select sysdate from dual;

SYSDATE
---------
28-FEB-13

SQL> insert into student18 values(1,'sanket','dbms',2,'22-feb-2013');

1 row created.

SQL> insert into student18 values(5,'sanket5','dcn',2,'02-mar-2013');
insert into student18 values(5,'sanket5','dcn',2,'02-mar-2013')
            *
ERROR at line 1:
ORA-20002:  Date of joining cannot be after system date.
ORA-06512: at "SCOTT.TRIGSTUD", line 3
ORA-04088: error during execution of trigger 'SCOTT.TRIGSTUD'


SQL>  insert into student18 values(5,'sanket5','dcn',2,'02-feb-2013');

1 row created.

SQL> select * from student18;

    ROLLNO NAME                           SUBJECT                SEMESTER
---------- ------------------------------ -------------------- ----------
DOJ
---------
         2 SANKET2                        WDP                           2


         3 SANKET3                        DCN                           2


         4 SANKET4                        MMC                           2



    ROLLNO NAME                           SUBJECT                SEMESTER
---------- ------------------------------ -------------------- ----------
DOJ
---------
         1 sanket                         dbms                          2
22-FEB-13

         5 sanket5                        dcn                           2

02-FEB-13

No comments:

Post a Comment