Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

CCIT 4 2 6 : Database - 2 Lab 6 : Exception Handling and Triggers LAB 6 Content PL / SQL - Records In this

CCIT 426: Database -2
Lab 6: Exception Handling and Triggers
LAB 6 Content
PL/SQL - Records
In this chapter, we will discuss Records in PL/SQL. Arecordis a data structure that can hold data items of different kinds. Records consist of different fields, similar to a row of a database table.
For example, you want to keep track of your books in a library. You might want to track the following attributes about each book, such as Title, Author, Subject, Book ID. A record containing a field for each of these items allows treating a BOOK as a logical unit and allows you to organize and represent its information in a better way.
PL/SQL can handle the following types of records
Table-based
Cursor-based records
User-defined records
Table-Based Records
The %ROWTYPE attribute enables a programmer to createtable-basedandcursorbasedrecords.
The following example illustrates the concept oftable-basedrecords. We will be using the CUSTOMERS table we had created and used in the previous chapters
DECLARE
customer_rec customers%rowtype;
BEGIN
SELECT * into customer_rec
FROM customers
WHERE id =5;
dbms_output.put_line('Customer ID: '|| customer_rec.id);
dbms_output.put_line('Customer Name: '|| customer_rec.name);
dbms_output.put_line('Customer Address: '|| customer_rec.address);
dbms_output.put_line('Customer Salary: '|| customer_rec.salary);
END;
/
When the above code is executed at the SQL prompt, it produces the following result
Customer ID: 5
Customer Name: Hardik
Customer Address: Bhopal
Customer Salary: 9000
PL/SQL procedure successfully completed.
Cursor-Based Records
The following example illustrates the concept ofcursor-basedrecords. We will be using the CUSTOMERS table we had created and used in the previous chapters
DECLARE
CURSOR customer_cur is
SELECT id, name, address
FROM customers;
customer_rec customer_cur%rowtype;
BEGIN
OPEN customer_cur;
LOOP
FETCH customer_cur into customer_rec;
EXIT WHEN customer_cur%notfound;
DBMS_OUTPUT.put_line(customer_rec.id ||''|| customer_rec.name);
END LOOP;
END;
/
When the above code is executed at the SQL prompt, it produces the following result
1 Ramesh
2 Khilan
3 kaushik
4 Chaitali
5 Hardik
6 Komal
PL/SQL procedure successfully completed.
User-Defined Records
PL/SQL provides a user-defined record type that allows you to define the different record structures. These records consist of different fields. Suppose you want to keep track of your books in a library. You might want to track the following attributes about each book
Title
Author
Subject
Book ID
Defining a Record
The record type is defined as
TYPE
type_name IS RECORD
( field_name1 datatype1[NOT NULL][:= DEFAULT EXPRESSION],
field_name2 datatype2[NOT NULL][:= DEFAULT EXPRESSION],
...
field_nameN datatypeN [NOT NULL][:= DEFAULT EXPRESSION);
record-name type_name;
The Book record is declared in the following way
DECLARE
TYPE books IS RECORD
(title varchar(50),
author varchar(50),
subject varchar(100),
book_id number);
book1 books;
book2 books;
Accessing Fields
To access any field of a record, we use the dot(.)operator. The member access operator is coded as a period between the record variable name and the field that we wish to access. Following is an example to explain the usage of record
DECLARE
type books is record
(title varchar(50),
author varchar(50),
subject varchar(100),
book_id number);
book1 books;
book2 books;
BEGIN
-- Book 1 specification
book1.title :='C Programming';
book1.author := 'Nuha Ali ';
book1.subject :='C Programming Tutorial';
book1.book_id :=6495407;
-- Book 2 specification
book2.title := 'Telecom Billing';
book2.author := 'Zara Ali';
book2.subject := 'Telecom Billing Tutorial';
book2.book_id :=6495700;
-- Print book 1 record
dbms_output.put_line('Book 1 title : '|| book1.title);
dbms_output.put_line('Book 1 author : '|| book1.author);
dbms_output.put_line('Book 1 subject : '|| book1.subject);
dbms_output.put_line('Book 1 book_id : '|| book1.book_id);
-- Print book 2 record
dbms_output.put_line('Book 2 title : '|| book2.title);
dbms_output.put_line('Book 2 author : '|| book2.author);
dbms_output.put_line('Book 2 subject : '|| book2.subject);
dbms_output.put_line('Book 2 book_id : '|| book2.book_id);
END;
/
When the above code is executed at the SQL prompt, it produces the following result
Book 1 title : C Programming
Book 1 author : Nuha Ali
Book 1 subject : C Programming Tutorial
Book 1 book_id : 6495407
Book 2 title : Telecom Billing
Book 2 author : Zara Ali
Book 2 subject : Telecom Billing Tutor

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Temporal Databases Research And Practice Lncs 1399

Authors: Opher Etzion ,Sushil Jajodia ,Suryanarayana Sripada

1st Edition

3540645195, 978-3540645191

More Books

Students also viewed these Databases questions