0% found this document useful (0 votes)
35 views33 pages

Introduction To PL/SQL

PL/SQL is a procedural language used to perform sequential processing using an Oracle database. It combines SQL commands with procedural programming capabilities. Key features include declaring variables, using control structures like IF/THEN statements and loops, and calling SQL statements. Variables must be declared with a specific data type before use and can represent scalar values, composite structures, or references to database items.

Uploaded by

Jitendra Shah
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views33 pages

Introduction To PL/SQL

PL/SQL is a procedural language used to perform sequential processing using an Oracle database. It combines SQL commands with procedural programming capabilities. Key features include declaring variables, using control structures like IF/THEN statements and loops, and calling SQL statements. Variables must be declared with a specific data type before use and can represent scalar values, composite structures, or references to database items.

Uploaded by

Jitendra Shah
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 33

Introduction to PL/SQL

1
What is PL/SQL?
 Procedural programming language
 Uses detailed instructions
 Processes statements sequentially
 Combines SQL commands with
procedural instructions
 Used to perform sequential
processing using an Oracle
database
2
PL/SQL Advantage

3
PL/SQL Variables
 Variable names must follow the Oracle
naming standard
 Can use reserved words (BEGIN, NUMBER) and
table names for variable names, but is not a good
practice
 Make variable names descriptive
 Use lower-case letters, and separate words
with underscores
 Example: current_s_id

4
Declaring PL/SQL Variables
 PL/SQL is a strongly-typed language
 All variables must be declared prior to use
 Syntax for declaring a variable:
variable_name data_type_declaration;
 Example:
current_s_id NUMBER(6);

5
PL/SQL Data Types
 Scalar
 References a single value
 Composite
 References a data structure
 Reference
 References a specific database item
 LOB
 References a large binary object

6
Scalar Data Types
 Database scalar data types:
 VARCHAR2
 CHAR
 DATE
 LONG
 NUMBER
 Non-database scalar data types:
 Integers: BINARY_INTEGER, INTEGER, INT, SMALLINT
 Decimal numbers: DEC, DECIMAL, DOUBLE,
PRECISION, NUMERIC, REAL
 BOOLEAN

7
Composite Data Types
 Reference multiple data elements, such
as a record
 Types:
 RECORD
 TABLE
 VARRAY
 Tabular structure that can expand or contract
as needed

8
Reference Data Types
 Reference a database item
 Assume data type of item
 %TYPE: assumes data type of field
 %ROWTYPE: assumes data type of entire
row

9
PL/SQL Program Structure
DECLARE Variable
Variable
Variable declarations Declarations
Declarations

BEGIN
Body
Program statements Body

EXCEPTION
Error-handling statements Exception
Exception
Section
Section
END;

10
PL/SQL Program Lines
 May span multiple text editor lines

 Each line ends with a semicolon

 Text is not case sensitive

11
Comment Statements
 Block of comments are delimited with /*
*/

/* <comment that spans more than one


line of code> */

 Single comment line starts with 2


hyphens
-- comment on a single line
12
Arithmetic Operators
Example Result

** Exponentiation 2 ** 3 8
* Multiplication 2*3 6
/ Division 9/2 4.5
+ Addition 3+2 5
- Subtraction 3–2 1
- Negation -5 Negative 5

13
Assignment Statements
 Assignment operator: :=
 Variable being assigned to a new value
is on left side of assignment operator
 New value is on right side of operator

student_name := ‘John Miller’;


student_name := current_student;

14
Displaying PL/SQL Output
in SQL*Plus
 Normally PL/SQL is used with other Oracle
utilities such as forms or reports
 You will learn to use PL/SQL in SQL*Plus
 Command to activate memory buffer in
SQL*Plus to enable output from PL/SQL
programs:
SQL> SET SERVEROUTPUT ON SIZE buffer_size;

SQL> SET SERVEROUTPUT ON SIZE 4000;

15
Displaying PL/SQL Program
Output in SQL*Plus
 Command to output data from a PL/SQL
program in SQL*Plus:
DBMS_OUTPUT.PUT_LINE(‘output string’);

DBMS_OUTPUT.PUT_LINE(‘Current Output:’);

16
Executing a PL/SQL Program
in SQL*Plus
 Copy program code from Notepad to
SQL*Plus
 Type / to execute

17
PL/SQL Data Type Conversion
Functions
 TO_DATE: character string to DATE
TO_DATE(‘07/14/01’, ‘MM/DD/YY’);
 TO_NUMBER: character string to NUMBER
TO_NUMBER(‘2’);
 TO_CHAR: NUMBER or DATE to character string
TO_CHAR(2);
TO_CHAR(SYSDATE, ‘MM/DD/YYYY HH:MI’);

18
Character String Functions
 Concatenating strings: joining 2 or more
character strings into a single string
 Concatenation operator: ||
s_first_name := ‘BScIT’
s_last_name := ‘MScIT’
s_full_name := s_first_name || ‘ ’
|| s_last_name

19
PL/SQL Character String
Functions
 RTRIM: removes blank trailing spaces
cust_address := RTRIM(cust_address);
 LENGTH: returns string length (number of
characters)
address_length := LENGTH(cust_address);
 UPPER, LOWER: changes characters to all upper
or lower case
s_name := UPPER(s_name);
s_name := LOWER(s_name);

20
PL/SQL Character String
Functions
 INSTR: searches a string and looks for a
matching substring and returns its starting
position
starting_position :=
INSTR(string_being_searched,
search_string>);

blank_position :=
INSTR(‘Sarah Miller’, ‘ ’);

21
PL/SQL Character String
Functions
 SUBSTR: extracts a specific number of
characters from a string, starting at a given
point
extracted_string :=
SUBSTR(string_being_searched,
starting_point,
number_of_characters_to_extract);

s_first_name := SUBSTR(‘Sarah Miller’, 1,5);

22
NULL Values in Assignment
Statements
 Until a value is assigned to a variable,
the variable’s value is NULL
 Performing an arithmetic value on a
NULL value always results in a NULL
value

 Advice: Always initialize variable values

23
PL/SQL
IF/THEN
Selection Structures
 IF/END IF:
IF condition THEN
program statements
END IF;

 IF/ELSE/END IF:
IF condition THEN
program statements
ELSE
alternate program statements
END IF;

24
PL/SQL Selection Structures
 IF/ELSIF:
IF condition1 THEN
program statements;
ELSIF condition2 THEN
alternate program statements;
ELSIF condition3 THEN
alternate program statements;
. . .
ELSE
alternate program statements;
END IF;

25
PL/SQL Comparison Operators
Operator Description Example
= Equal Count = 5
<>, != Not Equal Count <> 5
> Greater Than Count > 5
< Less Than Count < 5
>= Greater Than or Equal Count >= 5
To
<= Less Than or Equal To Count <= 5

26
Evaluating NULL Conditions in
IF/THEN Structures
 If a condition evaluates as NULL, then it
is FALSE
 How can a condition evaluate as NULL?
 It uses a BOOLEAN variable that has not
been initialized
 It uses any other variable that has not
been initialized

27
Using SQL Commands in
PL/SQL Programs
SQL Command Purpose Examples Can be
Category used in
PL/SQL
Data Definition Change CREATE, No
Language (DDL) database ALTER,
structure GRANT,
REVOKE
Data View or change SELECT, Yes
Manipulation data INSERT,
Language (DML) UPDATE,
DELETE
Transaction Create logical COMMIT, Yes
Control transactions ROLLBACK

28
PL/SQL Loops
 Loop: repeats one or more program
statements multiple times until an exit
condition is reached
 Pretest loop: exit condition is tested
before program statements are executed
 Posttest loop: exit condition is tested after
program statements are executed

29
LOOP … EXIT Loop
LOOP … EXIT
LOOP
program statements
IF condition THEN Pretest
Pretest
EXIT; OR
OR
END IF; Posttest
Posttest
more program statements
END LOOP;

30
LOOP … EXIT WHEN Loop
LOOP
program statements Posttest
Posttest
EXIT WHEN condition;
END LOOP;

31
WHILE Loop
WHILE condition
LOOP Pretest
Pretest
program statements
END LOOP;

WHILE … LOOP

32
Numeric FOR Loop
FOR counter_variable
IN start_value .. end_value
LOOP
Preset
Preset
program statements
number
numberof of
END LOOP;
iterations
iterations

33

You might also like