PL / SQL Basics. Chapter 3

Similar documents
ORACLE: PL/SQL Programming

Contents I Introduction 1 Introduction to PL/SQL iii

Oracle Database 11g: SQL and PL/SQL Fundamentals

2 PL/SQL - fundamentals Variables and Constants Operators SQL in PL/SQL Control structures... 7

Question Bank PL/SQL Fundamentals-I

Oracle Database: SQL and PL/SQL Fundamentals NEW

Oracle Database: SQL and PL/SQL Fundamentals Ed 2

Topics Fundamentals of PL/SQL, Integration with PROIV SuperLayer and use within Glovia

Introduction to Computer Science and Business

UNIT- 3 Introduction to C++

Oracle Database: Introduction to SQL/PLSQL Accelerated

The PCAT Programming Language Reference Manual

Introduction to SQL/PLSQL Accelerated Ed 2

Full file at

ADVANTAGES. Via PL/SQL, all sorts of calculations can be done quickly and efficiently without use of Oracle engine.

Overview of PL/SQL. About PL/SQL. PL/SQL Environment. Benefits of PL/SQL. Integration

UNIT II PL / SQL AND TRIGGERS

Chapter 2 Basic Elements of C++

Oracle PLSQL. Course Summary. Duration. Objectives

Objectives. Chapter 2: Basic Elements of C++ Introduction. Objectives (cont d.) A C++ Program (cont d.) A C++ Program

Chapter 2: Basic Elements of C++

Lesson B Objectives IF/THEN. Chapter 4B: More Advanced PL/SQL Programming

Chapter 2: Basic Elements of C++ Objectives. Objectives (cont d.) A C++ Program. Introduction

Fundamental of Programming (C)

1Z Oracle Database 11g - Program with PL/SQL Exam Summary Syllabus Questions

Introduction p. 1 The Logical and Physical View of Tables p. 1 Database Types p. 4 NULLs p. 6 DDL and DML Statements p. 7 Column and Table Constraint

Program Fundamentals

CSc 10200! Introduction to Computing. Lecture 2-3 Edgardo Molina Fall 2013 City College of New York

Basics of Java Programming

The SPL Programming Language Reference Manual

Chapter 2 Using Data. Instructor s Manual Table of Contents. At a Glance. Overview. Objectives. Teaching Tips. Quick Quizzes. Class Discussion Topics

Chapter 2 Using Data. Instructor s Manual Table of Contents. At a Glance. A Guide to this Instructor s Manual:

Control Structures. Control Structures 3-1

Petros: A Multi-purpose Text File Manipulation Language

Database Programming with PL/SQL

5. Single-row function

Table of Contents. PDF created with FinePrint pdffactory Pro trial version

The PL/SQL Engine: PL/SQL. A PL/SQL Block: Declaration Section. Execution Section. Declaration Section 3/24/2014

Weiss Chapter 1 terminology (parenthesized numbers are page numbers)

0. Overview of this standard Design entities and configurations... 5

C++ Programming: From Problem Analysis to Program Design, Third Edition

Full file at

Unit-II Programming and Problem Solving (BE1/4 CSE-2)

Fundamentals of Programming

Visual C# Instructor s Manual Table of Contents

Lecture 2 Tao Wang 1

Slides by: Ms. Shree Jaswal

PL/SQL Lab Exercises and Examples

A Fast Review of C Essentials Part I

Oracle Developer Track Course Contents. Mr. Sandeep M Shinde. Oracle Application Techno-Functional Consultant

VHDL Lexical Elements

The Warhol Language Reference Manual

Oracle Database 10g: PL/SQL Fundamentals

Programming with C++ as a Second Language

Language Reference Manual simplicity

ORACLE TRAINING. ORACLE Training Course syllabus ORACLE SQL ORACLE PLSQL. Oracle SQL Training Syllabus

BIT Java Programming. Sem 1 Session 2011/12. Chapter 2 JAVA. basic

Objectives. In this chapter, you will:

Lesson 3: Basic Programming Concepts

Contents. Jairo Pava COMS W4115 June 28, 2013 LEARN: Language Reference Manual

Question: Which statement would you use to invoke a stored procedure in isql*plus?

3. Java - Language Constructs I

PL/SQL-TYCS. The 'Hello World' Example

Object oriented programming. Instructor: Masoud Asghari Web page: Ch: 3

Chapter 1 CONTROL STRUCTURES. SYS-ED/ Computer Education Techniques, Inc.

LECTURE 02 INTRODUCTION TO C++


1 Lexical Considerations

Java+- Language Reference Manual

C++ Basic Elements of COMPUTER PROGRAMMING. Special symbols include: Word symbols. Objectives. Programming. Symbols. Symbols.

PL/SQL is one of three key programming languages embedded in the Oracle Database, along with SQL itself and Java.

Oracle Database: SQL and PL/SQL Fundamentals

Volume II, Section 5 Table of Contents

CS313D: ADVANCED PROGRAMMING LANGUAGE

egrapher Language Reference Manual

Creating a C++ Program

CHIL CSS HTML Integrated Language

Intro to Programming & C Why Program? 1.2 Computer Systems: Hardware and Software. Why Learn to Program?

Oracle Database 10g: PL/SQL Fundamentals

Chapter 2. Lexical Elements & Operators

UNIT - I. Introduction to C Programming. BY A. Vijay Bharath

Review of the C Programming Language

Chapter 2: Using Data

LESSON 1. A C program is constructed as a sequence of characters. Among the characters that can be used in a program are:

DATABASE AUTOMATION USING VBA (ADVANCED MICROSOFT ACCESS, X405.6)

Java Notes. 10th ICSE. Saravanan Ganesh

Oracle PL/SQL - 12c & 11g [Basic PL/SQL & Advanced PL/SQL]

Oracle Development - Part III: Coding Standards

Standard 11. Lesson 9. Introduction to C++( Up to Operators) 2. List any two benefits of learning C++?(Any two points)

Chapter 2.5 Writing maintainable programs

IT 374 C# and Applications/ IT695 C# Data Structures

SQL User Defined Code. Kathleen Durant CS 3200

PROCEDURAL DATABASE PROGRAMMING ( PL/SQL AND T-SQL)

PL/SQL is a combination of SQL along with the procedural features of programming languages.

Database Programming with PL/SQL

Review of the C Programming Language for Principles of Operating Systems

12/22/11. Java How to Program, 9/e. Help you get started with Eclipse and NetBeans integrated development environments.

CSI33 Data Structures

Features of C. Portable Procedural / Modular Structured Language Statically typed Middle level language

IC Language Specification

Transcription:

PL / SQL Basics Chapter 3

PL / SQL Basics PL / SQL block Lexical units Variable declarations PL / SQL types Expressions and operators PL / SQL control structures PL / SQL style guide 2

PL / SQL Block Basic Block Structure All blocks have three (3) sections Declarative Where all variables, cursors, types, local procedures and functions are declared Executable Where the work of the block is performed Contains SQL and procedural statements Exception Errors are handled Code here is not run unless an error occurs 3

Lexical Units Identifiers Delimiters Literals Comments 4

Lexical Units A lexical unit is a sequence of characters, the character set includes: Upper and lowercase letters: A-Z, a-z White space: tabs, spaces, and carriage returns Math symbols: +-*/<>= Punctuation symbols: () {} []? ~ ; :. @ # % $ ^ & _ 5

Lexical Units Identifiers Used to name PL/SQL objects Consists of a letter followed by any sequence of characters such as: Letters, numbers, $, underscore, # Maximum length is thirty (30) characters Other characters are not permitted 6

Lexical Units Identifiers ~ Examples Some proper identifiers: y v_studentid TempName t1 t2_ social_security_# YTD 7

Lexical Units Identifiers ~ Examples Some improper identifiers: m+n _temp_ First Name OhBoyThisIsReallyALongIdentifierName 1CannotStartWithADigit 8

Lexical Units Identifiers ~ Reserved Words There are many identifiers known as reserved words (keywords) They have special meaning to PL/SQL You cannot use them as identifiers For example the word BEGIN is used to start a PL/SQL block and cannot be used as a variable name 9

Lexical Units Delimiters Symbols used to separate identifiers either a single character sequence of characters Examples of delimiters are: + * > <> <= ; (and others ) 10

Lexical Units Literals A literal is a value that is not an identifier There are three (3) types of literals: Character This is a character literal Numeric 123-9 +17 0-6.9 3 9.87e-3 95.12e7 Boolean True False Null 11

Lexical Units Comments It is important to document your code with comments to make it clear to others and yourself They are ignored by the PL/SQL compiler There are two kinds of comments Single-line Multiline 12

Variable Declarations Declaration syntax Variable initialization 13

Variable Declarations Declaration Syntax Variables are declared in the declarative section of a block Each variable has a specific type of data that it can hold General syntax is: variable_name type [CONSTANT] [NOT NULL] [:=value]; 14

Variable Declarations Variable Initialization Variables are initialized in their declaration statement v_counter NUMBER := 100; v_fname VARCHAR2(10) DEFAULT Scott ; If a variable is not initialized it is set to NULL NULL simply means missing or unknown value 15

PL / SQL Types Scalar types Composite types Reference types LOB types Using %TYPE User-defined subtypes Converting between Datatypes Variable scope and visibility 16

PL / SQL Types Scalar Types Valid scalar types consist of the same as the types for database columns Scalar types can be divided into seven families: numeric character raw date rowid boolean trusted 17

PL / SQL Types Composite Types A composite type is one that has components within it The three (3) composite types available in PL/SQL are: Records Tables varrays 18

PL / SQL Types Reference Types A variable that is declared as a reference type can point (refer to) different storage locations over the life of the program REF CURSOR REF OBJECT 19

PL / SQL Types LOB Types This type is used to store large objects A large object can be either binary or character value up to 4 gigabytes Can contain unstructured data 20

PL / SQL Types Using %TYPE Often a PL/SQL variable will be used to manipulate data stored in a database table Variable needs to have the same type as the table column Variable needs to be changed as the table column is altered Time consuming and error prone 21

PL / SQL Types Using %TYPE By using %TYPE when declaring a variable Variable will be defined with the same type as the associated table column Type is determined each time a block is run or When procedures and functions are compiled 22

PL / SQL Types User-Defined Subtypes A subtype is a PL/SQL type that is based on an existing type Used to give an alternative name which describes its intended use PL/SQL defines several subtypes DECIMAL and INTEGER are predefined subtypes of NUMBER 23

PL / SQL Types Converting Between Datatypes Explicit Scalar Datatype Conversion Built-in conversion functions in SQL are also available in PL/SQL Converts explicitly between variables using formats Examples are: TO_CHAR converts numeric and date TO_DATE converts character TO_NUMBER converts character 24

PL / SQL Types Converting Between Datatypes Implicit Scalar Datatype Conversion PL/SQL will convert between families when possible Good programming practice suggests using explicit conversions Formats are not used and does not clearly show the intent of the program 25

PL / SQL Types Variable Scope and Visibility The scope of a variable is the portion of the program in which it can be accessed The visibility of a variable is the portion of the program where the variable can be accessed without having to qualify the reference 26

Expressions and Operators Assignment Expressions 27

Expressions and Operators Assignment The syntax for an assignment is: variable := expression; Performed in the executable and exception handling sections lvalues must refer to actual storage locations rvalues can be storage locations or literals An rvalue is read from while an lvalue is written to 28

Expressions and Operators Expressions PL/SQL expressions are rvalues These expressions have two components An operand is the argument to an operator An operator is what operates on the operands Precedence of operators determines the order of evaluation of the expression Please Excuse My Dear Aunt Sally 29

Expressions and Operators Expressions Numeric expressions Evaluated from left to right applying the precedence order of operators Character expressions Only operator is concatenation operator Joins one or more strings (or arguments that can be implicitly converted) Boolean expressions A boolean expression is any expression that evaluates to a boolean value(true, False, Null) 30

PL / SQL Control Structures IF-THEN-ELSE Loops GOTOs and Labels PRAGMAs 31

PL / SQL Control Structures IF-THEN-ELSE The syntax for an IF-THEN-ELSE statement is: IF boolean_expression1 THEN sequence_of_statements1; [ELSIF boolean_expression2 THEN sequence_of_statements2;] [ELSE sequence_of_statements3;] END IF; 32

PL / SQL Control Structures Loops Loops are divided into four (4) categories Simple loops WHILE loops Numeric FOR loops Cursor FOR loops 33

PL / SQL Control Structures Loops ~ Simple Loops The basic kind of loop has the syntax: LOOP sequence_of_statements; END LOOP; These loops will execute forever unless you include an EXIT statement Checks a condition for ending the loop since it has no stopping condition, it syntax is: EXIT [WHEN condition]; 34

PL / SQL Control Structures Loops ~ WHILE Loops The syntax for a WHILE loop is: WHILE condition LOOP sequence_of_statements; END LOOP; Condition is checked before each cycle of the loop If True, loop body is executed Otherwise loop is passed over 35

WHILE LOOP Example DECLARE v_a number(2) := 1; BEGIN WHILE v_a < 10 LOOP dbms_output.put_line('value of v_a: ' v_a); v_a := v_a + 1; END LOOP; END; / 36

PL / SQL Control Structures Loops ~ Numeric FOR Loops The syntax for a numeric FOR loop is: FOR loop_counter IN [REVERSE] lo_bound.. hi_bound LOOP sequence_of_statements; END LOOP; Numeric FOR loops have a defined number of cycles Do not declare the loop index Loop increment (decrement) is always one In order to have a different increment you would need to include additional code in the loop body 37

PL / SQL Control Structures Loops ~ Cursor FOR Loops A cursor FOR loop is a loop that is associated: With an explicit cursor A SELECT statement incorporated directly within the loop boundary Used when you need to fetch and process records from a cursor Replaces the cursor operations such as: Open Fetch End of records Close 38

File PrintStudents.sql Illustrates a stored procedure CREATE OR REPLACE PROCEDURE PrintStudents( p_major IN students.major%type) AS CURSOR c_students IS SELECT first_name, last_name FROM students WHERE major = p_major; BEGIN FOR v_studentrec IN c_students LOOP DBMS_OUTPUT.PUT_LINE(v_StudentRec.first_name ' ' v_studentrec.last_name); END LOOP; END; / 39

PL / SQL Control Structures GOTOs and Labels The syntax of a GOTO statement is: GOTO label; Where label is a label defined in the PL/SQL block Labels are enclosed in double angle brackets When a GOTO statement is evaluated, program control passes to the statement identified by the label If your code is properly structured you will never have to use a GOTO statement 40

PL / SQL Control Structures PRAGMAs The PRAGMA keyword signifies a preprocessor statement PRAGMAs are processed at compile time They do not execute during runtime Passes information to the compiler 41

Example: Types of Pragmas Until Oracle 11g, PL/SQL programming language could make use of five types of pragma(s) which are listed as below. AUTONOMOUS_TRANSACTION Compiler allows schema objects like subprograms, PL/SQL blocks, or triggers to commit their transaction within their scope. RESTRICT_REFERENCES Allows the compiler to scan the database purity during package compilation. It can be used in packages only. EXCEPTION_INIT Compiler associates a user defined exception name with an exception number. SERIALLY_REUSABLE Compiler deduces the package state from session level to just a server call. It can be used in Package spec only. PRAGMA INLINE New member of oracle pragma family. It is used to explicitly inline a program unit. 42

PL / SQL Style Guide Good style means that: It will take less time to understand what the program is doing Modifications can be made easier and will be less error prone Uniformity of code increases productivity Areas of where style can be applied are: Comments Variable Names Capitalization Indentation General Guidelines 43

PL / SQL Style Guide Comments At the start of each block or procedure With each variable declaration Before each major section of a block Comments should be meaningful and not restate what the code obviously shows It s possible to have too many comments 44

PL / SQL Style Guide Variable Names Make the variable names descriptive t NUMBER; v_studentid NUMBER(5); A variable name can tell us its use: v_variablename e_exceptionname t_typename p_parametername Program variable User-defined exception User-defined type Parameter to a procedure or function 45

PL / SQL Style Guide Capitalization PL/SQL is not case sensitive Proper use of case will improve program readability reserved words in uppercase built-in functions in uppercase predefined types in uppercase sql keywords in uppercase database objects in lowercase variable names are in mixed case, with capital letter for each word in the name 46

PL / SQL Style Guide Indentation Use of white space (carriage returns, spaces, and tabs) is necessary to provide readability of your code Indent: inside blocks SQL continuation statements IF-THEN-ELSE blocks 47

PL / SQL Style Guide General Guidelines As you write more code you will develop a pronounced level of style It s a good idea to show your code to another programmer and have it reviewed Be consistent in making your code understandable 48

In Conclusion We have covered the basic syntax and structure of PL/SQL Block Variables Datatypes (scalar, composite, reference) Expressions and operators Datatype conversions Control structures Programming style 49