Presentation is loading. Please wait.

Presentation is loading. Please wait.

PL/SQL. PL/SQL is a combination of SQL along with the procedural features of programming languages. It was developed by Oracle Corporation in the early.

Similar presentations


Presentation on theme: "PL/SQL. PL/SQL is a combination of SQL along with the procedural features of programming languages. It was developed by Oracle Corporation in the early."— Presentation transcript:

1 PL/SQL

2 PL/SQL is a combination of SQL along with the procedural features of programming languages. It was developed by Oracle Corporation in the early 90's to enhance the capabilities of SQL

3 PL/SQL PL/SQL programs are divided into 3 block 1 Declarations 2 Executable Commands 3 Exception Handling Every PL/SQL statement ends with a semicolon (;)

4 PL/SQL 1 Declarations This section starts with the keyword DECLARE. It is an optional section and defines all variables, cursors, subprograms, and other elements to be used in the program. 2 Executable Commands This section is enclosed between the keywords BEGIN and END and it is a mandatory section. It consists of the executable PL/SQL statements of the program. 3 Exception Handling This section starts with the keyword EXCEPTION. This section is optional and contains exception(s) that handle errors in the program.

5 PL/SQL syntax DECLARE BEGIN EXCEPTION END;

6 PL/SQL Example DECLARE message varchar2(20):='popo'; BEGIN dbms_output.put_line(message); END; / To display the message set serveroutput on;

7 PL/SQL The PL/SQL Delimiters A delimiter is a symbol with a special meaning. DelimiterDescription +, -, *, / Addition, subtraction/negation, multiplication, division %Attribute indicator 'Character string delimiter. Component selector (,)Expression or list delimiter :Host variable indicator,Item separator "Quoted identifier delimiter =Relational operator @Remote access indicator

8 PL/SQL The PL/SQL Delimiters A delimiter is a symbol with a special meaning. DelimiterDescription ;Statement terminator :=Assignment operator =>Association operator ||Concatenation operator **Exponentiation operator >Label delimiter (begin and end) /*, */Multi-line comment delimiter (begin and end) --Single-line comment indicator..Range operator, =Relational operators <>, '=, ~=, ^=Different versions of NOT EQUAL

9 PL/SQL The PL/SQL Comments single-line and multi-line comments. All characters available inside any comment are ignored by PL/SQL compiler. The PL/SQL single-line comments start with the delimiter --(double hyphen) and Multi-line comments are enclosed by /* and */.

10 PL/SQL Example DECLARE --variable declaration message varchar2(20):= 'popo'; BEGIN /* PL/SQL excecutable statments */ dbms_output.put_line(message); END; /

11 PL/SQL PL/SQL - Data Types SCALAR Large Object (LOB) Composite Reference

12 PL/SQL PL/SQL - Data Types CategoryDescription Scalar Single values, such as a NUMBER, DATE, or BOOLEAN. Large Object (LOB) Pointers to large objects that are stored separately from other data items, such as text, graphic images, video clips, and sound waveforms. Composite Data items that have internal components that can be accessed individually. For example, collections and records. Reference Pointers to other data items.

13 PL/SQL PL/SQL - Data Types Scalar Data Type Date TypeDescription Numeric Numeric values on which arithmetic operations are performed. Character Alphanumeric values that represent single characters or strings of characters. Boolean Logical values on which logical operations are performed. DatetimeDates and times.

14 PL/SQL PL/SQL - Data Types Scalar Data Type PL/SQL Numeric Data Type

15 PL/SQL PL/SQL - Data Types Scalar Data Type PL/SQL Numeric Data Type

16 PL/SQL Example DECLARE a integer; b integer; BEGIN a:=10; b:=20; dbms_output.put_line('value of a '||a); dbms_output.put_line('value of b '||b); END; /

17 PL/SQL PL/SQL - Data Types Scalar Data Type Character Data Type

18 PL/SQL PL/SQL - Data Types Scalar Data Type Boolean Data Type Boolean values TRUE and FALSE and the value NULL.

19 PL/SQL PL/SQL - Data Types Scalar Data Type Datetime and Interval Type Each DATE includes the century, year, month, day, hour, minute, and second. The following table shows the valid values for each field :

20 PL/SQL PL/SQL - Data Types Scalar Data Type Datetime and Interval Type

21 PL/SQL PL/SQL - Data Types Scalar Data Type Large Object (LOB) Data Type

22 PL/SQL PL/SQL - Variables Name given to a storage area that our programs can manipulate. Each variable in PL/SQL has a specific data type, which determines the size and layout of the variable's memory; Syntax : Variable Declaration in PL/SQL variable_name [CONSTANT] datatype [NOT NULL] [:= DEFAULT initial_value] example a number(10, 2); pi constant double precision := 3.1415; name varchar2(25);

23 PL/SQL Initializing Variables in PL/SQL Whenever declare a variable, PL/SQL assigns it a default value of NULL. If we want to initialize a variable with a value other than the NULL value, Using either of the following: The DEFAULT keyword The assignment operator (:=) For example: C integer := 0; message varchar2(20) DEFAULT 'Have a Good Day';

24 PL/SQL Example DECLARE a integer:=10; b integer:=20; c integer; d real; BEGIN c:=a+b; d:=a/b; dbms_output.put_line('sum= '||c); dbms_output.put_line('division= '||d); END; / Output Sum=30 Division=.5

25 PL/SQL Scope of a variable PL/SQL allows the nesting of Blocks, i.e., Each program block may contain another inner block. If a variable is declared within an inner block, it is not accessible to the outer block. A variable is declared and accessible to an outer Block, it is also accessible to all nested inner Blocks. There are two types of variable scope: Local variables - variables declared in an inner block and not accessible to outer blocks. Global variables - variables declared in the outermost block or a package.

26 PL/SQL Example DECLARE -- global variable global integer:=10; BEGIN dbms_output.put_line('global= '||global); DECLARE --Local Variable local integer:=20; BEGIN dbms_output.put_line('local='||local); dbms_output.put_line('global='||global); END ; / Output Global =10 Local=20 Global=10

27 PL/SQL Assigning SQL Query Results to PL/SQL Variables Using SELECT INTO statement of SQL to assign values to PL/SQL variables. Example Table tab1(rollno,name) declare r tab1.rollno%type:=1; n tab1.name%type; begin select rollno,name into r,n from tab1 where rollno=r; dbms_output.put_line(‘Roll='||r); dbms_output.put_line(‘Name='||n); end; / Output Roll=1 Name=aji rollnoname 1aji 2saji

28 PL/SQL Constant A constant holds a value that once declared, does not change in the program. A constant declaration specifies its name, data type, and value, and allocates storage for it. The declaration can also impose the NOT NULL constraint. A constant can be declared using the CONSTANT keyword. Example pi constant double precision := 3.1415;

29 PL/SQL PL/SQL Literals PL/SQL, literals are case-sensitive. PL/SQL supports the following kinds of literals

30 PL/SQL PL/SQL Literals To embed single quotes within a string literal, place two single quotes next to each other Example message varchar2(20):= ''ajith'' s site poposir.orgfree.com'; Will print ajith’s site poposir.orgfree.com

31 PL/SQL PL/SQL Operators Operators are symbols to perform some operation They are Arithmetic operators +, -, *, /, ** (power eg 2**3  8) Relational operators =,, =, <> or != or ~= Logical operators and, or, not Comparison operators LIKE, BETWEEN, IN, IS NULL

32 PL/SQL Arithmetic operators Example BEGIN dbms_output.put_line( 10 + 5); dbms_output.put_line( 10 - 5); dbms_output.put_line( 10 * 5); dbms_output.put_line( 10 / 5); dbms_output.put_line( 2 ** 3); END; / Output 15 5 50 2 8

33 PL/SQL Relational operators example declare a number(2); b number(2); Begin a:=&a; b:=&b; if(a>b) then dbms_output.put_line('a is big'); else dbms_output.put_line('b is big'); end if; end; / Output A is big

34 PL/SQL Logical operator example declare a int:=10; b int:=20; begin if(a=10 and b=20) then dbms_output.put_line('happy'); else dbms_output.put_line('sorry'); end if; end; Output happy

35 PL/SQL Comparison operator between example declare a number; begin a:=&a; if(a between 5 and 20) then dbms_output.put_line('yes'); else dbms_output.put_line('no'); end if; end; Output yes

36 PL/SQL Comparison operator like example declare a varchar(20):='popo'; begin if(a like 'p%o') then dbms_output.put_line('found'); else dbms_output.put_line('not found'); end if; end; Output found

37 PL/SQL Comparison operator In and IS NULL example declare a varchar(1):='a'; begin if(a in ('a', 'p', 's')) then dbms_output.put_line('found'); else dbms_output.put_line('not found'); end if; if(a is null) then dbms_output.put_line(a||' is null'); else dbms_output.put_line(a||' not null'); end if; end; Output found a not null

38 PL/SQL Decision Making Statements If - then statement If – then – else statement If – then – elsif statement Case statement

39 PL/SQL Decision Making Statements If - then statement Syntax IF condition THEN statements; END IF; example

40 PL/SQL Decision Making Statements If – then - else statement Syntax IF condition THEN true block statements; ELSE false block statements; END IF; example

41 PL/SQL Decision Making Statements If – then – elsif statement Syntax IF condition-1 THEN true block statements1; ELSIF condition-2 THEN true block statements2; ELSIF condition-3 THEN true block statements3; ELSE false block statements; END IF; example

42 PL/SQL Decision Making Statements Case statement Syntax CASE selector WHEN 'value1' THEN Sts1; WHEN 'value2' THEN Sts2; WHEN 'value3' THEN Sts3;... ELSE Sn; -- default case END CASE;

43 PL/SQL Decision Making Statements Example Case statement DECLARE grade char(1) := 'A'; BEGIN CASE grade when 'A' then dbms_output.put_line('Excellent'); when 'B' then dbms_output.put_line('Very good'); when 'C' then dbms_output.put_line('Well done'); when 'D' then dbms_output.put_line('You passed'); when 'F' then dbms_output.put_line('Better try again'); else dbms_output.put_line('No such grade'); END CASE; END; example

44 PL/SQL Loops Basic loop While loop For loop Nested loop

45 PL/SQL Loops Basic loop synatx LOOP Sequence of statements; END LOOP; Example declare a int:=1; b int:=10; begin loop dbms_output.put_line(a); a:=a+1; if(a>b) then exit; /*break a loop*/ end if; end loop; end; Output 1,……,10

46 PL/SQL Loops while loop synatx WHILE condition LOOP sequence_of_statements END LOOP; Example declare a int:=1; b int:=10; begin while a<=b loop dbms_output.put_line(a); a:=a+1; end loop; end; Output 1,2,,, 10

47 PL/SQL Reverse given no declare n int; b int; r int:=0; begin n:=&n; while n >0 loop b:= n mod 10; r:= r*10+b; n:=floor(n/10); end loop; dbms_output.put_line(r); end; Output Enter value of n 1234 4321 floor()  returns integer value

48 PL/SQL Loops for loop Synatx FOR counter IN initial_value.. final_value LOOP sequence_of_statements; END LOOP;

49 PL/SQL Loops for loop Example declare a int; Begin for a in 1.. 10 loop dbms_output.put_line(a); end loop; end; Output 1,2,,, 10 Even nos up to the limit declare n int; i int; begin n:=&n; for i in 1.. n loop if i mod 2 = 0 then dbms_output.put_line(i); end if; end loop; end; / Output Enter value of n 10 2 4,, 10

50 PL/SQL Loops Nested loop Example declare i int; j int; begin for i in 1.. 7 loop for j in 1.. i loop dbms_output.put(j); end loop; dbms_output.put_line(' '); end loop; End; Output 1 12 123 1234 12345 123456 1234567

51 PL/SQL String functions CONCAT(x, y); Concatenates the strings x and y and return the appended string. INITCAP(x); Converts the initial letter of each word in x to uppercase and returns that string. LENGTH(x); Returns the number of characters in x. LOWER(x); Converts the letters in x to lowercase and returns that string. REPLACE(x, search_string, replace_string); Searches x for search_string and replaces it with replace_string. UPPER(x); Converts the letters in x to uppercase and returns that string.

52 PL/SQL String function concat() example declare s1 varchar(4):='popo'; s2 varchar(3):='sir'; begin dbms_output.put_line(concat(s1,s2)); end; Output poposir

53 PL/SQL String function trim() example DECLARE greetings varchar2(30) := '...popo...'; BEGIN dbms_output.put_line(RTRIM(greetings,'.')); dbms_output.put_line(LTRIM(greetings, '.')); dbms_output.put_line(TRIM( '.' from greetings)); END; Output …popo Popo… popo

54 PL/SQL Array PL/SQL programming language provides a data structure called the VARRAY which can store a fixed-size sequential collection of elements of the same type. A varray is used to store an ordered collection of data. Varrays consist of contiguous memory locations. Each element in a varray has an index associated with it.

55 PL/SQL Array A varray type Syntax type varray_type_name IS VARRAY(n) of Example type name IS VARRAY(5) OF VARCHAR2(10); type grade IS VARRAY(5) OF INTEGER;

56 PL/SQL Procedures Array declare type nos is varray(5) of int; m nos; i int; begin m:=nos(1,2,3,4,5); for i in 1.. m.count loop dbms_output.put_line(m(i)); end loop; end; /

57 PL/SQL Array declare type array is varray(3) of varchar2(10); a array := array('popo', 'peepe', 'raji'); i int; begin for i in 1..a.count loop dbms_output.put_line(a(i)); end loop; end; /

58 PL/SQL Array ( to read column value to an array) Table tab1(rollno,name) DECLARE CURSOR c_tab1 is SELECT name FROM tab1; type list is varray (2) of tab1.name%type; name_list list := list(); counter integer :=0; n int; BEGIN FOR n IN c_tab1 LOOP counter := counter + 1; name_list.extend; name_list(counter) := n.name; dbms_output.put_line('Sudent ('||counter ||') : '||name_list(counter)); END LOOP; END; Output Student (1) : aji Student (2) : saji rollnoname 1aji 2saji


Download ppt "PL/SQL. PL/SQL is a combination of SQL along with the procedural features of programming languages. It was developed by Oracle Corporation in the early."

Similar presentations


Ads by Google