Course Content
What is Oracle
0/1
Oracle Tables
0/1
CREATE TABLE AS in Oracle
0/1
ALTER TABLE In Oracle
0/1
DROP TABLE In Oracle
0/1
TRUNCATE TABLE In Oracle
0/1
QUERIES In Oracle
0/1
INSERT Query In Oracle
0/1
SELECT Query In Oracle
0/1
UPDATE Query In Oracle
0/1
DELETE Query In Oracle
0/1
INSERT ALL In Oracle
0/1
GROUP BY Clause In Oracle
0/1
HAVING Clause In Oracle
0/1
ORDER BY Clause In Oracle
0/1
MINUS In Oracle
0/1
INTERSECT Operator In Oracle
0/1
TRIGGER In Oracle
0/1
AFTER TRIGGER In Oracle
0/1
BEFORE TRIGGER In Oracle
0/1
ENABLE TRIGGER In Oracle
0/1
DISABLE TRIGGER In Oracle
0/1
DROP TRIGGER In Oracle
0/1
CURSOR In Oracle
0/1
VIEW In Oracle
0/1
DISTINCT Clause In Oracle
0/1
PROCEDURE In Oracle
0/1
UNION In Oracle
0/1
UNION ALL In Oracle
0/1
OUTER JOIN In Oracle
0/1
INNER JOIN In Oracle
0/1
CROSS JOIN In Oracle
0/1
EQUI JOIN In Oracle
0/1
SEMI JOIN In Oracle
0/1
SELF JOIN In Oracle
0/1
ANTI JOIN In Oracle
0/1
ROWNUM In Oracle
0/1
SQLERRM Function In Oracle
0/1
SQLCODE Function In Oracle
0/1
USERENV Function In Oracle
0/1
ACOS Function In Oracle
0/1
ADD_MONTHS Function In Oracle
0/1
ASCII Function In Oracle
0/1
ASCIISTR Function In Oracle
0/1
ASIN Function In Oracle
0/1
ATAN Function In Oracle
0/1
ATAN2 Function In Oracle
0/1
AVG Function In Oracle
0/1
BFILENAME Function In Oracle
0/1
ABS Function In Oracle
0/1
BIN_TO_NUM Function In Oracle
0/1
BITAND Function In Oracle
0/1
CARDINALITY Function In Oracle
0/1
CASE Function In Oracle
0/1
CAST Function In Oracle
0/1
CEIL Function In Oracle
0/1
CHARTOROWID Function In Oracle
0/1
CHR Function In Oracle
0/1
COALESCE Function In Oracle
0/1
COMPOSE Function In Oracle
0/1
CONCAT With Function In Oracle
0/1
CONCAT Function In Oracle
0/1
CONVERT Function In Oracle
0/1
CORR Function In Oracle
0/1
COS Function In Oracle
0/1
COSH Function In Oracle
0/1
COUNT Function In Oracle
0/1
COVAR_POP Function In Oracle
0/1
COVAR_SAMP Function In Oracle
0/1
CUME_DIST Function In Oracle
0/1
CURRENT_DATE In Oracle
0/1
CURRENT_TIMESTAMP Function In Oracle
0/1
DBTIMEZONE Function In Oracle
0/1
DECODE Function In Oracle
0/1
DECOMPOSE Function In Oracle
0/1
DENSE_RANK Function In Oracle
0/1
DUMP Function In Oracle
0/1
EMPTY_BLOB Fuction In Oracle
0/1
EMPTY_CLOB Function In Oracle
0/1
EXP Function In Oracle
0/1
EXTRACT Function In Oracle
0/1
FIRST_VALUE Function In Oracle
0/1
FLOOR Function In Oracle
0/1
FROM_TZ Function In Oracle
0/1
GLOBAL TEMP TABLES In Oracle
0/1
GREATEST Function In Oracle
0/1
GROUP_ID Function In Oracle
0/1
HEXTORAW Function In Oracle
0/1
INITCAP Function In Oracle
0/1
INSTR Function In Oracle
0/1
INSTR2 Function In Oracle
0/1
VARIANCE Function In Oracle
0/1
VAR_SAMP Function In Oracle
0/1
VAR_POP Function In Oracle
0/1
USER Function In Oracle
0/1
UID Function In Oracle
0/1
TZ_OFFSET Function In Oracle
0/1
TRUNC (Numbers) Function In Oracle
0/1
TRUNC (Dates) Function In Oracle
0/1
TO_YMINTERVAL Function In Oracle
0/1
TO_TIMESTAMP_TZ Function In Oracle
0/1
TO_TIMESTAMP Function In Oracle
0/1
TO_SINGLE_BYTE Function In Oracle
0/1
TO_NUMBER Function In Oracle
0/1
TO_NCLOB Function In Oracle
0/1
TO_MULTI_BYTE Function In Oracle
0/1
TO_LOB Function In Oracle
0/1
TO_DSINTERVAL Function In Oracle
0/1
TO_DATE Function In Oracle
0/1
TO_CLOB Function In Oracle
0/1
TO_CHAR Function In Oracle
0/1
TANH Function In Oracle
0/1
TAN Function In Oracle
0/1
SYSTIMESTAMP Function In Oracle
0/1
SYSDATE Function In Oracle
0/1
SYS_CONTEXT Function In Oracle
0/1
SQRT Function In Oracle
0/1
SESSIONTIMEZONE Function In Oracle
0/1
LOG Function In Oracle
0/1
LAST_DAY Function In Oracle
0/1
LEAST Function In Oracle
0/1
LENGTH Function In Oracle
0/1
LENGTH2 Function In Oracle
0/1
INSTR4 Function In Oracle
0/1
INSTRB Function In Oracle
0/1
INSTRC Function In Oracle
0/1
LAG Function In Oracle
0/1
LAST_VALUE Function In Oracle
0/1
LEAD Function In Oracle
0/1
LENGTH4 Function In Oracle
0/1
LENGTHB Function In Oracle
0/1
LENGTHC Function In Oracle
0/1
LISTAGG Function In Oracle
0/1
LN Function In Oracle
0/1
LNNVL Function In Oracle
0/1
LOCAL TEMP TABLES In Oracle
0/1
LOCALTIMESTAMP Function In Oracle
0/1
MAX Function In Oracle
0/1
MEDIAN Function In Oracle
0/1
MIN Function In Oracle
0/1
MOD Function In Oracle
0/1
MONTHS_BETWEEN Function In Oracle
0/1
NANVL Function In Oracle
0/1
NEW_TIME Function In Oracle
0/1
NEXT_DAY Function In Oracle
0/1
NULLIF Function In Oracle
0/1
NUMTODSINTERVAL Function In Oracle
0/1
NUMTOYMINTERVAL Function In Oracle
0/1
NVL Function In Oracle
0/1
NVL2 Function In Oracle
0/1
POWER Function In Oracle
0/1
STDDEV Function In Oracle
0/1
NTH_VALUE Function In Oracle
0/1
SINH Function In Oracle
0/1
SIN Function In Oracle
0/1
SIGN Function In Oracle
0/1
ROUND (Numbers) Function In Oracle
0/1
FROM Clause In Oracle
0/1
FUNCTION In Oracle
0/1
SUM Function In Oracle
0/1
ROUND (Dates) Function In Oracle
0/1
REMAINDER Function In Oracle
0/1
JOINS In Oracle
0/1
RANK Function In Oracle
0/1
RAWTOHEX Function In Oracle
0/1
REGEXP_COUNT Function In Oracle
0/1
Oracle Tutorial
About Lesson

FUNCTION In Oracle

ORACLE FUNCTION:
A function in Oracle can be simply understood as a subprogram. It is mainly used to return a single value. There are mainly three subprocesses for a function to execute successfully: Declaration, Definition and Calling. The declaration and definition processes of a function must be done before invoking it. A function can be declared and defined simultaneously or it can be done in two steps within the same block: declared first and defined later.

There are three types of parameters that must be specified while creating a function.

  • IN: Being a default parameter, it is used to pass a value to the subprogram.
  • OUT: When specified, it is used to return a value to the caller.
  • IN OUT: When specified, it is used to get an updated value to the caller by passing an initial value to the subprogram.

Syntax: To create or replace a function.

CREATE OR REPLACE FUNCTION func_name  
(parameter)
RETURN return_datatype  
IS | AS  
declaration_section  
BEGIN  
executable_section  
EXCEPTION  
exception_section 
END func_name; 

Syntax: To drop a function.

DROP FUNCTION func_name;   

Example 1: Creating a simple function and calling it later.
Creating Function:

CREATE OR REPLACE FUNCTION subtractor 
(a in number, b in number)    
RETURN number    
IS     
c number(8);    
BEGIN    
c :=a-b;    
return c;    
END;

Output:

Function created.

Calling the Function:

DECLARE    
   c number(2);    
BEGIN    
   c := subtractor (10, 5);    
   dbms_output.put_line('Subtraction is: ' || c);    
END;

Output:

Subtraction is: 5
Statement processed.
0.03 seconds

Explanation:
Here we are creating a simple function for subtraction. There are three variables a, b and c which are declared and defined along with their data types. The next step is to call the function by passing the values to the variables. The result thus received is the value of c as the result of subtraction for a and b.

Example 2: Creating a function by declaring, defining and calling it in the same block.

DECLARE  
n1 number;  
n2 number;  
n3 number;  
FUNCTION findMin (a IN number, b IN number)   
RETURN number  
IS  
c number;  
BEGIN  
IF a < b THEN  
c:= a;  
ELSE  
c:= b;  
END IF;  
RETURN c;  
END;   
BEGIN  
n1:= 650;  
n2:= 651;   
n3 := findMin (n1, n2);  
dbms_output.put_line(' Minimum of (650, 651): ' || n3);  
END;

Output:

Minimum of (650, 651): 650
Statement processed.
0.03 seconds

Explanation:
Here we are creating a function for finding the minimum value by declaring, defining and calling it in the same block. There are three variables which are declared and defined along with their data types. The next step is to call the function by passing the values to the variables. The result thus received is the value of n3 equal to the minimum of n1 and n2.

Example 3: Creating a function using table.
Students Table:

ID	NAME	AGE
1	Joy	20
2	Smiley	19
3	Happy	21
4	James	22
5	Bond	25

Creating Function:

CREATE OR REPLACE FUNCTION num_students
RETURN number 
IS  num number(2) := 0;  
BEGIN  
SELECT count(*) into num  
FROM students;  
RETURN num;  
END;

Output:

Function created.

Calling Function:

DECLARE  
n number(2);  
BEGIN  
n := num_students();  
dbms_output.put_line('Number of Students: ' || n);  
END;

Output:

Number of Students: 5
PL/SQL procedure successfully completed.

Explanation:
The ‘students’ is an already existing table. Here we are creating a function for finding the total number of students from the ‘students’ table. The next step is to call the function by passing the values to the variables. The result thus received is the value of n equal to the total number of students.

Example 3: Creating a recursive function.

DECLARE  
n number;  
fact number;  
FUNCTION factorial(a number)  
RETURN number   
IS  x number;  
BEGIN  
IF a=0 
THEN  x := 1;  
ELSE  
x := a * fact(a-1);  
END IF;  
RETURN x;  
END;  
BEGIN  
n:= 5;  
fact := factorial (n);  
dbms_output.put_line(' Factorial of '|| n || ' is ' || fact);  
END;

Output:

Factorial of 5 is 120
PL/SQL procedure successfully completed.

Explanation:
The process of calling a subprogram by the subprogram itself is known as Recursion. This type of call is often known as Recursive Call. Here we are creating a recursive function for finding the factorial value by declaring, defining and calling it in the same block. There are two variables which are declared and defined along with their data types. The next step is to call the function by passing the values to the variables. The result thus received is the value of fact equal to the factorial of n.

Example: Eliminating a function.

DROP FUNCTION subtractor;

Explanation:
The ‘subtractor’ is an already created function. The above code will eliminate the ‘subtractor’ function from the Oracle database.

error: Content is protected !!