Function and types

Post on 12-May-2015

83 views 0 download

Tags:

Transcript of Function and types

Function

What is a Function in PL/SQL?

A function are named PL/SQL Block.It is similar to a procedure. The major difference between a procedure and a function is, a function must always return a value, but a procedure may or may not return a value.

Structure of Function

stored functions 3 sections1.declaration section-declaration of variables and constants2.executable section-pl/sql statements which perform specific task3.exception handling section-the error occuring in executable part can be handled in this section

SYNTAX

CREATE [OR REPLACE] FUNCTION function_name [ (parameter [,parameter]) ] RETURN return_datatype IS | AS [declaration_section] BEGIN executable_section [EXCEPTION exception_section] END [function_name];

Example

CREATE [OR REPLACE] FUNCTION fa(m number)RETURN numberIS f number:=1;BEGIN for I in 1….mLoopF:=f*I;End loop; return f;End;

Two Types Functions

Single-row functions

Multiple-row functions

Return one result per row

Return one result per set of rows

Functions

Single row functions return a single result per every row. There are different types of single-row functions.

Single-Row Functions

Conversion

Character

Number

Date

General Single-row functions

Single-Row Functions Types

Characterfunctions

LOWERUPPERINITCAP

CONCATSUBSTRLENGTHINSTRLPAD | RPADTRIMREPLACE

Case-manipulationfunctions

1) Character or Text Functions: Character functions accept character input and can return both character and number values.

Character-manipulationfunctions

1.LOWER The Lower function converts the character values into

lowercase letters. 2. UPPER The Upper function converts the character values into

uppercase letters. 3. INITCAP The Initcap function coverts the first character of each

word into uppercase and the remaining characters into lowercase.

Case-manipulation functions

.

.

Character-manipulation functions

1.CONCAT

The Concat function coverts the first string with the second string

2. SUBSTR The Substr function returns specified characters from character value starting at position m and n characters long. If you omit n, all characters starting from position m to the end are returned.

3.LENGTH The Length function is used to find the number of characters in a string

4.RPAD The Rpad function pads the character value left-justified to a total width of n character positions.

5.TRIM The Trim function removes the leading or trailing or both the characters from a string.

6.REPLACE The Replace function is used to replace a character with another Character in a string.

2) Numeric Functions: Numeric functions accept numeric input and return numeric values.

ROUNDTRUNC

Numeric functions

3) Date Functions:

Date functions operate on DATE.

Date function

MONTHS_BETWEEN ADD_MONTHS NEXT_DAY LAST_DAY

Explicit data type conversion

Data type conversion

Implicit data type conversion

4) Conversion Functions:

Conversion functions convert a value from one datatype to another.

EXAMPLE

sql>create table stu1( name varchar2(8), regno varchar2(10) mark number(6,2), DOB date );Table created.

SQL> desc stu1; Name Null? Type ----------------------------------------- -------- -------------- NAME VARCHAR2(8) REGNO VARCHAR2(10) DOB DATE Mark NUMBER

SQL> insert into stuu2 values(&name,&regno,&dob,&mark);Enter value for name: 'xx'Enter value for regno: '13sms01'Enter value for dob: '27-apr-2013'Enter value for mark: 78.23old 1: insert into stuu2 values(&name,&regno,&dob,&mark)new 1: insert into stuu2 values('xx','13sms01','27-apr-2013',78.23)

1 row created.

SQL> /Enter value for name: 'yy'Enter value for regno: '13sms02'Enter value for dob: '24-jan-2012'Enter value for mark: 89.78old 1: insert into stuu2 values(&name,&regno,&dob,&mark)new 1: insert into stuu2 values('yy','13sms02','24-jan- 2012',89.78)

1 row created.

SQL> select*from stu1;

NAME REGNO DATE MARK-------- ---------- ----------------- ------------------xx 13sms01 27-apr-2013 78.23yy 13sms02 24-jan-2012 89.78

CASE-MANIPULATION FUNCTION

SQL> select 2 lower(name),upper(name),initcap(name) from stu1;

LOWER(NA UPPER(NA INITCAP(-------- -------- --------xx XX Xxyy YY Yy

CHARACTER MANIPULATION FUNCTION

SQL> select concat(name,regno), substr(regno,3,2), length(name), rpad(regno,10,'*')RPAD, lpad(regno,10,'*')LPAD, replace(regno,‘sms','ma')"replace”from stu1;;

CONCAT(NAME,REGNO) SUB LENGTH(NAME) RPAD ------------------ -- ------------ ---------- ---------- --------------------xx13sms01 sm 2 13sms01*** yy13sms02 sm 2 13sms02***

LPAD replace ---------- ---------- ***13sms01 13sms01 ***13sms02 13sms02

NUMERIC FUNCTIONS

SQL> select round(mark,1), trunc(mark,1) from stu1;

ROUND(MARK,1) TRUNC(MARK,1) ------------- -------------

78.2 78 89.3 89

DATE FUNCTION

SQL> select add_months(dob,2), last_day(dob) from stu1;

ADD_MONTH LAST_DAY(--------- ---------27-JUN-13 30-APR-1320-MAR-12 31-JAN-1227-JUN-13 30-APR-1324-MAR-12 31-JAN-12

Multiple-Row Functions

Functions that take a collection of values as input and return a single value. These functions are known as group functions and aggregate function.

Types: 1.avg - Returns avg value of a given expression 2.Min - Returns Minimum value of a given expression 3.Max - Returns Maximum value of a given expression. 4.Sum - Returns total or sum of the expr. 5.count-Counts the no of values present in a column.

EXAMPLE

sql>create table stu2( major varchar2(10), semester varchar2(10) noofpapers number(2), );Table created.

SQL> desc stu2; Name Null? Type ----------------------------------------- -------- -------------- MAJOR VARCHAR2(10) SEMESTER VARCHAR2(10) NOOFPAPERS NUMBER

SQL> insert into stu2 values(&major,&semester,&noofpapers);Enter value for name: ‘computer'Enter value for regno: ‘first’Enter value for dob: 6old 1: insert into stuu2 values(&major,&semester,&noofpapers)new 1: insert into stuu2 values(‘computer’,’first’,6)

1 row created.

SQL> insert into stu2 values(&major,&semester,&noofpapers);Enter value for name: ‘computer'Enter value for regno: ‘second’Enter value for dob: 5old 1: insert into stuu2 values(&major,&semester,&noofpapers)new 1: insert into stuu2 values(‘computer’,’second’,5)

1 row created

SQL> insert into stu2 values(&major,&semester,&noofpapers);Enter value for name: ‘history'Enter value for regno: ‘first’Enter value for dob: 6old 1: insert into stuu2 values(&major,&semester,&noofpapers)new 1: insert into stuu2 values(‘history’,’first’,6)

1 row created

MULTIPLE ROW FUNCTION

Sql>select major,sum(noofpapers), count(noofpapers), avg(noofpapers) from stu2 group by major;

MAJOR SUM(NOOFPAPERS) COUNT(NOOFPAPERS) AVG(NO-------- -------- -------- -----------computer 11 2 5.5history 6 2 3