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

Assignment 8 Dbms

assingment 8
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Assignment 8 Dbms

assingment 8
Copyright
© © All Rights Reserved
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