0% found this document useful (0 votes)
22 views

Assignment 8 Dbms

assingment 8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views

Assignment 8 Dbms

assingment 8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Assignment 8

Name : Raju Bojane


>>RajuBhojane SQL*Plus: Release 18.0.0.0.0 - Production on Mon Sep 23 08:45:32
2024
Version 18.4.0.0.0

Copyright (c) 1982, 2018, Oracle. All rights reserved.

Enter user-name: system


Enter password:
Last Successful login time: Fri Aug 09 2024 09:25:56 +05:30

Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0

SQL> Create table LIBRARY (BOOK_ID number, BOOK_NAME Varchar2(10), BOOK_PRICE


number);

Table created.

SQL> desc library;


Name Null? Type

BOOK_ID NUMBER
BOOK_NAME VARCHAR2(10)
BOOK_PRICE NUMBER

SQL> Create table LIBRARY_AUDIT_ROW (BOOK_ID number, BOOK_NAME Varchar2(10),


BOOK_PRICE number,AUDIT_CHANGE Varchar2(20), UPDATE_TIME Date);

Table created.

SQL> desc library_audit_row;


Name Null? Type

BOOK_ID NUMBER
BOOK_NAME VARCHAR2(10)
BOOK_PRICE NUMBER
AUDIT_CHANGE VARCHAR2(20)
UPDATE_TIME DATE

SQL> Insert into LIBRARY Values ( 1, 'BOOK1', 500 );

1 row created.

SQL> Insert into LIBRARY Values ( 2, 'BOOK2', 950 );

1 row created.

SQL> Insert into LIBRARY Values ( 3, 'BOOK3',850);

1 row created.

SQL> Insert into LIBRARY Values ( 4, 'BOOK4', 400);

1 row created.

SQL> select * from library;

BOOK_ID BOOK_NAME BOOK_PRICE

1 BOOK1 500
2 BOOK2 950
3 BOOK3 850
4 BOOK4 400
SQL> select * from library_audit_row;

no rows selected

SQL> edit trig.sql

Create or replace trigger trig_Row after delete or update on library for each
row
declare
au_ch varchar(20);
begin
if deleting then
au_ch:='DELETE';
end if;
if updating then
au_ch:='UPDATE';
end if;
insert into library_audit_row
values(:old.BOOK_ID,:old.BOOK_NAME,:old.BOOK_PRICE,au_ch,current_timestamp);
end;

Trigger created.

SQL> update library set book_name='SQL' where book_id=1;

1 row updated.

SQL> select * from library_audit_row;

BOOK_ID BOOK_NAME BOOK_PRICE AUDIT_CHANGE UPDATE_TI

1 SQL 500 UPDATE 23-SEP-24

SQL> delete from library where book_id=1;

1 row deleted.

SQL> select * from library_audit_row;

BOOK_ID BOOK_NAME BOOK_PRICE AUDIT_CHANGE UPDATE_TI

1 SQL 500 UPDATE 23-SEP-24


1 SQL 500 DELETE 23-SEP-24

create table library_audit_stmt(audit_history_id INT,audit_change


varchar(20),user_name varchar(10),update_time date);

Table created.

SQL> desc library_audit_stmt;


Name Null? Type

AUDIT_HISTORY_ID NUMBER(38)
AUDIT_CHANGE VARCHAR2(20)
USER_NAME VARCHAR2(10)
UPDATE_TIME DATE

SQL> create sequence seq_id start with 1;

Sequence created.

SQL> edit trig2.sql


create or replace trigger trigs before delete or update on library
declare
au_ch varchar(20);
begin
if deleting then
au_ch:='delete';
end if;
if updating then
au_ch:='update';
end if;
insert into LIBRARY_AUDIT_STMT VALUES (Seq_id.nextval, au_ch, USER,
CURRENT_TIMESTAMP);
end;
/

SQL> @trig2

Trigger created.

SQL> delete from library where book_id=3;

1 row deleted.

SQL> select * from library_audit_stmt;

AUDIT_HISTORY_ID AUDIT_CHANGE USER_NAME UPDATE_TI

1 delete SYSTEM 23-SEP-24

You might also like