Introduction to PLSQL
Transcript of Introduction to PLSQL
![Page 1: Introduction to PLSQL](https://reader036.fdocuments.in/reader036/viewer/2022082815/55cf9921550346d0339bbc9e/html5/thumbnails/1.jpg)
Introduction to PL/SQL Lecture 4 [Part 1]
Emma-Jane Phillips-Tait [Akhtar Ali]
![Page 2: Introduction to PLSQL](https://reader036.fdocuments.in/reader036/viewer/2022082815/55cf9921550346d0339bbc9e/html5/thumbnails/2.jpg)
Overview of next 3 sessions Overview of PL/SQL Development of a coded block Interacting with an Oracle Database Controlling PL/SQL process flow Cursor handling Error handling
![Page 3: Introduction to PLSQL](https://reader036.fdocuments.in/reader036/viewer/2022082815/55cf9921550346d0339bbc9e/html5/thumbnails/3.jpg)
Session 1 Using PL/SQL to access Oracle Variable assignment Overview of the next 2 weeks
![Page 4: Introduction to PLSQL](https://reader036.fdocuments.in/reader036/viewer/2022082815/55cf9921550346d0339bbc9e/html5/thumbnails/4.jpg)
Re-visiting SQL Instructions to Oracle identifying the
information you wish to select, insert, delete or update
SQL*Plus is Oracle's version of the SQL standard
Notes on SQL are on Blackboard
![Page 5: Introduction to PLSQL](https://reader036.fdocuments.in/reader036/viewer/2022082815/55cf9921550346d0339bbc9e/html5/thumbnails/5.jpg)
PL/SQL - introduction Procedural extension allowing for
modularity, variable declaration, loops and logical constructs.
Allows for advanced error handling Communicates natively with other oracle
database objects. Managed centrally within the Oracle
database.
![Page 6: Introduction to PLSQL](https://reader036.fdocuments.in/reader036/viewer/2022082815/55cf9921550346d0339bbc9e/html5/thumbnails/6.jpg)
Other Databases All have procedural facilities SQL is not functionally complete
Lacks full facilities of a programming language
So top up functionality by embedding SQL in a procedural language
PL/SQL techniques are specific to Oracle but procedures and functions can be ported to other
systems
![Page 7: Introduction to PLSQL](https://reader036.fdocuments.in/reader036/viewer/2022082815/55cf9921550346d0339bbc9e/html5/thumbnails/7.jpg)
Why use PL/SQL Manage business rules – through middle
layer application logic. Generate code for triggers Generate code for interface Enable database-centric client/server
applications
![Page 8: Introduction to PLSQL](https://reader036.fdocuments.in/reader036/viewer/2022082815/55cf9921550346d0339bbc9e/html5/thumbnails/8.jpg)
Centralised V’s De-centralisedBegin
:
End;
Begin
:
End;
Begin
:
End;
Begin
:
End;
Common copy of executed code – one copy to maintain
Multiple copies of executable code on the decentralised system – multiple copies to maintain leading to increase difficulty in maintaining the system
Server Serve
r
![Page 9: Introduction to PLSQL](https://reader036.fdocuments.in/reader036/viewer/2022082815/55cf9921550346d0339bbc9e/html5/thumbnails/9.jpg)
Advantages of using PL/SQL to access Oracle PL/SQL is managed centrally within the database Code is managed by the DBA and execution
privileges are managed in the same was as with other objects
PL/SQL objects are first-class Oracle DB objects Easy to read
With modularity features and error handling
![Page 10: Introduction to PLSQL](https://reader036.fdocuments.in/reader036/viewer/2022082815/55cf9921550346d0339bbc9e/html5/thumbnails/10.jpg)
Centralised control
Enables DBA to: Specify rules in one place (as procedure,
function, package in PL/SQL) Force user access through the predefined
PL/SQL so users cannot write their own procedural code and use this instead. Define for instance security privileges giving users
access to table(s) only through a particular procedure
![Page 11: Introduction to PLSQL](https://reader036.fdocuments.in/reader036/viewer/2022082815/55cf9921550346d0339bbc9e/html5/thumbnails/11.jpg)
Using PL/SQL as a programming language
Permits all operations of standard programming languages e.g. Conditions IF-THEN-ELSE-END IF; Jumps GOTO
Provides loops for controlling iteration LOOP-EXIT; WHEN-END LOOP; FOR-END
LOOP; WHILE-END LOOP
Allows extraction of data into variables and its subsequent manipulation
![Page 12: Introduction to PLSQL](https://reader036.fdocuments.in/reader036/viewer/2022082815/55cf9921550346d0339bbc9e/html5/thumbnails/12.jpg)
Modules in PL/SQLThere are 4 types of modules in PL/SQL Procedures – series of statements may or may
not return a value Functions – series of statements must return a
single value Triggers – series of PL/SQL statements (actions)
executing after an event has triggered a condition (ECA)
Packages – collection of procedures and function that has 2 parts: a listing and a body.
![Page 13: Introduction to PLSQL](https://reader036.fdocuments.in/reader036/viewer/2022082815/55cf9921550346d0339bbc9e/html5/thumbnails/13.jpg)
ProceduresCreation command
Variable declarations
Body of code
Create or replace procedure sample1 as
v_num1 constant number := 2.5;
v_num2 constant number := 4;
v_product number;
BEGIN
v_product := v_num1 * v_num2;
END;
![Page 14: Introduction to PLSQL](https://reader036.fdocuments.in/reader036/viewer/2022082815/55cf9921550346d0339bbc9e/html5/thumbnails/14.jpg)
Use of Data-Types Number – used to store any number Char(size) & varchar2(size) e.g.: char(10)
– used to store alphanumerical text strings, the char data type will pad the value stored to the full length declared.
Date – used to store dates Long – used to store large blocks of text up
to 2 gigabytes in length (limited operations)
![Page 15: Introduction to PLSQL](https://reader036.fdocuments.in/reader036/viewer/2022082815/55cf9921550346d0339bbc9e/html5/thumbnails/15.jpg)
More data-types Long raw – stores large blocks of data
stored in binary format Raw – stores smaller blocks of data in
binary formal Rowid – used to store the special format of
rowid’s on the database
![Page 16: Introduction to PLSQL](https://reader036.fdocuments.in/reader036/viewer/2022082815/55cf9921550346d0339bbc9e/html5/thumbnails/16.jpg)
Non-database Data Types DEC, DECIMAL, REAL, INTEGER, INT – these are
numerical data types that are a subset of number. Binary_integer – binary format for number type but can
not be stored in database unless converted first. Character – same as char Boolean – true/false value Table/record – tables can be used to store the equivalent
of an array while records store the variables with composite data types.
![Page 17: Introduction to PLSQL](https://reader036.fdocuments.in/reader036/viewer/2022082815/55cf9921550346d0339bbc9e/html5/thumbnails/17.jpg)
Using SQL in procedures Select values into PL/SQL variables
using INTO Record.element notation will address
components of tuples (dot notation) %rowtype allows full rows to be selected
into one variable
Empid empnameaddr1 addr2 addr3 postcode grade salary
V_employeeemployee%rowtype
![Page 18: Introduction to PLSQL](https://reader036.fdocuments.in/reader036/viewer/2022082815/55cf9921550346d0339bbc9e/html5/thumbnails/18.jpg)
ExampleDeclare
v_employee employee%rowtype;
Begin
select *
into v_employee
from employee
where empid = 65284;
update employee
set salary = v_employee.salary + 10000
where empid = v_employee.empid;
end
Selects entire row of data into 1 variable called v_employee
Is updating the value of salary based on selected element of a variable
![Page 19: Introduction to PLSQL](https://reader036.fdocuments.in/reader036/viewer/2022082815/55cf9921550346d0339bbc9e/html5/thumbnails/19.jpg)
Cursor overview Very powerful in PL/SQL modules Allows more than one set of data to be
retrieved and accessed at the same time in loops
Sets are created by executing SQL statements embedded in the PL/SQL code
Cursor attributes - %notfound, %rowcount, %found & %isopen
![Page 20: Introduction to PLSQL](https://reader036.fdocuments.in/reader036/viewer/2022082815/55cf9921550346d0339bbc9e/html5/thumbnails/20.jpg)
Error handling Prevents database locking Ensures that errors are presented to the user
in a sensible format Makes code robust Essential when using PL/SQL as formal
programming language or interfacing with Oracle applications.