Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be...
-
date post
20-Dec-2015 -
Category
Documents
-
view
227 -
download
4
Transcript of Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be...
![Page 1: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/1.jpg)
Chapter 4: Introduction to PL/SQL
![Page 2: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/2.jpg)
2
Lesson A Objectives
After completing this lesson, you should be able to:• Describe the fundamentals of the PL/SQL
programming language• Write and execute PL/SQL programs in SQL*Plus• Execute PL/SQL data type conversion functions• Display output through PL/SQL programs• Manipulate character strings in PL/SQL programs• Debug PL/SQL programs
![Page 3: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/3.jpg)
3
Fundamentals of PL/SQL
• Full-featured programming language• Interpreted language • Execute using Oracle 10g utilities
– SQL*Plus– Forms Builder
• Combines SQL queries with procedural commands• Reserved words
![Page 4: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/4.jpg)
4
PL/SQL Variables and Data Types
• Variable names must follow the Oracle naming standard (Example: current_s_id, not $current_s_id)
• Strongly typed language– Explicitly declare each variable including data type
before using variable
• Variable declaration syntax:variable_name data_type_declaration;
• Default value always NULL
![Page 5: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/5.jpg)
5
Scalar Variables• Reference single value such as number, date, string
• Data types correspond to Oracle 10g database data types
– VARCHAR2
– CHAR
– DATE
– NUMBER
• PL/SQL has other data types that do not correspond to database data types
![Page 6: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/6.jpg)
6
Composite Variables
• Data object made up of multiple individual data elements
• Data structure contains multiple scalar variables• Composite variable data types include:
– RECORD (multiple scalar values similar to a table’s record)
– TABLE (tabular structure with multiple columns and rows)
– VARRAY (variable-sized array. Tabular structure that can expand or contract based on data values)
ARRAY
![Page 7: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/7.jpg)
7
Reference Variables• Directly reference specific database column or row• Assume data type of associated column or row• %TYPE data declaration syntax:
variable_name tablename.fieldname%TYPE;
• %ROWTYPE data declaration syntax:variable_name tablename%ROWTYPE;
LOB Data Type• Must be manipulated using programs in DBMS_LOB
package
![Page 8: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/8.jpg)
8
PL/SQL Program Blocks
• Declaration section– Optional
• Execution section– Required
• Exception section– Optional
• Comment statementsEnclosed within /* and */ for
several lines’ comments-- for single line comments
/* Script: Student registerPurpose: to enroll students in class */
-- Script: Student register-- Purpose: to enroll students
![Page 9: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/9.jpg)
total_hours_worked - 40 * over_time_rate
(total_hours_worked – 40) * over_time_rate
9
PL/SQL Arithmetic Operators in Describing Order of Precedence
• Parentheses are used to force PL/SQL interpreter to evaluate operations in a certain order
Questions: 2 * 2 ** 2 = ? 100 / 2 * 5 = ?
![Page 10: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/10.jpg)
10
Assignment Statements
• Assigns value to variable• Operator: :=• Syntax: variable_name := value;• String literal within single quotation mark• Examples:
current_s_first_name := ‘Tammy’;
current_student_ID NUMBER := 100;
• Result of adding a value to a NULL value is another NULL value
• DEFAULT keyword can be used instead of assignment operator
DECLARE variable1 NUMBER := 0; variable2 NUMBER := 0;BEGIN variable2 := variable1 +1;END;
Q: What is the final value of
variable2?
![Page 11: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/11.jpg)
11
Displaying PL/SQL Program Output in SQL*Plus
• PL/SQL output buffer– Memory area on database server
– Stores program’s output values before they are displayed to user
– Default buffer size is 2000 bytes
– Should increase size if you want to display more than a few lines in SQL Plus to avoid buffer overflow error
– Syntax: SET SERVEROUTPUT ON SIZE buffer_size– Example: SET SERVEROUTPUT ON SIZE 4000
![Page 12: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/12.jpg)
12
Displaying PL/SQL Program Output in SQL*Plus (continued)
• DBMS_OUTPUT – is an Oracle built-in package
– Consists of a set of programs for processing output
• PUT_LINE is the DBMS_OUTPUT procedure for displaying output– Syntax: DBMS_OUTPUT.PUT_LINE('display_text');– Example: DBMS_OUTPUT.PUT_LINE(current_s_first);
– Displays maximum of 255 characters of text data
– If try to display more than 255 characters, error occurs
![Page 13: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/13.jpg)
13
Writing a PL/SQL Program
• Write PL/SQL program in Notepad or another text editor
• Indenting commands within each section is a good programming practice. Will loose points if code is not indented
• Copy and paste program commands from text editor into SQL*Plus
• Press Enter after last program command• Type front slash ( / )• Then press Enter again
![Page 14: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/14.jpg)
14
PL/SQL Program Commands
![Page 15: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/15.jpg)
15
PL/SQL Data Conversion Functions• Implicit data conversions
– Interpreter automatically converts value from one data type to another
– If PL/SQL interpreter unable to implicitly convert value error occurs
• Explicit data conversions
– Convert variables to different data types
– Using data conversion functions
WHERE O_DATE = ‘29/05/2006’
WHERE O_DATE = TO_DATE (‘29/05/2006’, ‘DD/MM/YYYY’)
![Page 16: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/16.jpg)
16
Manipulating Character Strings
• Concatenating– Joining two separate strings
– Operator: || (i.e. double bar)– Syntax: new_string := string1 || string2;– Example: s_fullname := s_first || s_last;
• Parse– Separate single string consisting of two data items
separated by commas or spacess_fullname := s_first ||‘ ’|| s_last;
Variable Data type Value
Bldg_code VARCHAR2 LH
Room_num VARCHAR2 101
Room_capacity NUMBER 150
room_message := bldg_code || ‘ Room ’ || room_num || ‘ has ’ || TO_CHAR(room_capacity) || ‘seats.’;
Question: Write down the value of room_message after the above Assignment statement is executed.
![Page 17: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/17.jpg)
17
Removing Blank Leading and Trailing Spaces from Strings
• LTRIM function– Remove blank leading spaces– string := LTRIM(string_variable_name);
• RTRIM function– Remove blank trailing spaces– string := RTRIM(string_variable_name);
DECLARE s_address CHAR(20) := ‘951 Raimbow Dr’;BEGIN s_address := RTRIM(s_address);END;
Questions: How many characters will be removed from the string assigned to the s_address variable when the RTRIM function in the avove PL/SQL block is executed
![Page 18: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/18.jpg)
18
Finding the Length of Character Strings
• LENGTH function syntax– string_length := LENGTH(string_variable_name);
• Example: – code_length as NUMBER(3):= LENGTH(bldg_code);
• Q1: What will be the value of code_length if bldg_code’s value is ‘CR’?
• Q2: What will be the value of code_length if bldg_code’s value is ‘BUS ’?
![Page 19: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/19.jpg)
19
Character String Case Functions
• Modify case of character strings• Functions and syntax:
– string := UPPER(string_variable_name);– string := LOWER(string_variable_name);– string := INITCAP(string_variable_name);
• Example:– s_full_name := UPPER(s_full_name);
![Page 20: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/20.jpg)
20
Parsing Character Strings
• INSTR function – Searches string for specific substring
– Returns an integer representing starting position of the substring within the original string
– Syntax:start_position := INSTR(original_string, substring);
– Example: blank_position := INSTR(curr_course_no, ‘ ’);
• SUBSTR function – Extracts specific number of characters from character
string starting at given point.– Syntax: extracted_string :=
SUBSTR(string_variable,starting_point, number_of_characters);
– Example: curr_dept := SUBSTR(curr_course_no, 1, 3);
curr_course_no := ‘MIS 101’
![Page 21: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/21.jpg)
21
Parsing Character Strings (continued)• Q1: Assuming that curr_course_no contains ‘MIS 4200’, what
will be the value of curr_dept when the following statement is executed?
• Q2: Assuming that curr_course_no contains ‘MIS 4200’, what will be the value of curr_number when the following statement is executed?
blank_space := INSTR(curr_course_no, ‘ ’);curr_dept := SUBSTR((curr_course_no, 1, (blank_space – 1))
blank_space := INSTR(curr_course_no, ‘ ’);curr_number := SUBSTR(curr_course_no, (blank_space + 1), (LENGTH(curr_course_no) – blank_space));
![Page 22: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/22.jpg)
22
Debugging PL/SQL Programs
• Syntax error – Occurs when command does not follow guidelines
of programming language
– Generate compiler or interpreter error messages
• Logic error – Does not stop program from running
– Results in incorrect result
![Page 23: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/23.jpg)
23
Program with a Syntax Error
![Page 24: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/24.jpg)
24
Program with a Logic Error
• Which of the following is the source of the error? – LENGTH(curr_course_no) – blank_space));– SUBSTR(curr_course_no, blank_space,
![Page 25: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/25.jpg)
25
Finding Syntax Errors• Often involve:
– Misspelling reserved word
– Omitting required character in command
– Using built-in function improperly
• Interpreter – Flags line number
– Displays error code and message• Example: PLS-00103: Encountered the symbol “Blank space” when
expecting one of the following …
– Error may actually be on preceding line
• To find error: (a) comment out suspect program lines using --, REM, (b) modify suspect lines.
• Cascading errors– One syntax error can generate many more errors
![Page 26: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/26.jpg)
26
Finding Logic Errors
• Caused by:– Not using proper order of operations in arithmetic
functions
– Passing incorrect parameter values to built-in functions
– Creating loops that do not terminate properly
– Using data values that are out of range or not of right data type
![Page 27: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/27.jpg)
27
Finding Logic Errors (continued)
• Debugger– Program that enables software developers to pause
program execution and examine current variable values
– Best way to find logic errors
– SQL*Plus environment does not provide PL/SQL debugger
– Use DBMS_OUTPUT to print variable values
![Page 28: Chapter 4: Introduction to PL/SQL. 2 Lesson A Objectives After completing this lesson, you should be able to: Describe the fundamentals of the PL/SQL.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649d415503460f94a1c58c/html5/thumbnails/28.jpg)
28
Finding Logic Errors (continued)