Introduction to PL/SQL Lecture 0 – Self Study Akhtar Ali.

19
Introduction to PL/SQL Lecture 0 – Self Study Akhtar Ali

Transcript of Introduction to PL/SQL Lecture 0 – Self Study Akhtar Ali.

Page 1: Introduction to PL/SQL Lecture 0 – Self Study Akhtar Ali.

Introduction to PL/SQL Lecture 0 – Self Study

Akhtar Ali

Page 2: Introduction to PL/SQL Lecture 0 – Self Study Akhtar Ali.

Overview 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 PL/SQL Lecture 0 – Self Study Akhtar Ali.

Re-visiting SQL Instructions to Oracle identifying the

information you wish to select, insert, delete or update

SQL*Plus is Oracle's simple interface for interaction with Oracle DBMS using SQL.

Notes on SQL are on Blackboard

Page 4: Introduction to PL/SQL Lecture 0 – Self Study Akhtar Ali.

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 5: Introduction to PL/SQL Lecture 0 – Self Study Akhtar Ali.

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 6: Introduction to PL/SQL Lecture 0 – Self Study Akhtar Ali.

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 7: Introduction to PL/SQL Lecture 0 – Self Study Akhtar Ali.

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 8: Introduction to PL/SQL Lecture 0 – Self Study Akhtar Ali.

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 way as with other objects

PL/SQL objects are first-class Oracle DB objects Easy to read

With modularity features and error handling

Page 9: Introduction to PL/SQL Lecture 0 – Self Study Akhtar Ali.

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 10: Introduction to PL/SQL Lecture 0 – Self Study Akhtar Ali.

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 11: Introduction to PL/SQL Lecture 0 – Self Study Akhtar Ali.

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 12: Introduction to PL/SQL Lecture 0 – Self Study Akhtar Ali.

ProceduresCreation command

Variable declarations

Body of procedure

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 13: Introduction to PL/SQL Lecture 0 – Self Study Akhtar Ali.

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 14: Introduction to PL/SQL Lecture 0 – Self Study Akhtar Ali.

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

rowids in the database

Page 15: Introduction to PL/SQL Lecture 0 – Self Study Akhtar Ali.

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 16: Introduction to PL/SQL Lecture 0 – Self Study Akhtar Ali.

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 empname addr1 addr2 addr3 postcode grade salary

V_employeeemployee%rowtype

Page 17: Introduction to PL/SQL Lecture 0 – Self Study Akhtar Ali.

Example (Anonymous Block of Code)

Declare

v_employee employee%rowtype;

Begin

select *

into v_employee

from employee

where empid = 65284;

update employee

set salary = v_employee.salary + 1000

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 18: Introduction to PL/SQL Lecture 0 – Self Study Akhtar Ali.

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 19: Introduction to PL/SQL Lecture 0 – Self Study Akhtar Ali.

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.