0% found this document useful (0 votes)
7 views

Functions

Uploaded by

pvk prasad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Functions

Uploaded by

pvk prasad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

============================== FUNCTIONS ==================================

SYNTAX: CREATE OR REPLACE FUNCTION FUNCTION_NAME RETURN DATATYPE IS


BEGIN
------------------
-------------------
END;
1. ONE OF THE DATABASE OBJECT
2. STORE
3. SUB PROGRAM
4. RETURN MAN
5. DML +TCL
6. ALLOW ALL MODES OF PARAMETERS

----------------------------------------------------------------------------
CREATE OR REPLACE FUNCTION F1 RETURN NUMBER IS
BEGIN
RETURN 50;
END;
/

HOW TO CALL A FUNCTION:


THROUGH EXECUTE
VAR X NUMBER;
VAR;

PRINT X;

EXEC :X:=F1;
----------------------------------------------

CALLING THROUGH A PL/SQL PROG USING A LOCAL VARIABLE


DECLARE
V NUMBER;
BEGIN
V:=F1;
DBMS_OUTPUT.PUT_LINE(V);
END;
/
--------------------------------------------

DIRECTLY THORUGHT SELECT STATEMENT

SELECT F1 FROM DUAL;


------------------------------------------------------
DIRECTLY IN A PL/SQL
BEGIN
DBMS_OUTPUT.PUT_LINE(F1);
END;
/
------------------------------------
THROUGH EXEC INTO DIRECT DBMS PACKAGE
PL/SQL procedure successfully completed.

=============================================================================
CREATE OR REPLACE FUNCTION FUN_ADD ( A NUMBER, B NUMBER) RETURN NUMBER IS
BEGIN
RETURN A+B;
END;
/
SELECT FUN_ADD(50,20) FROM DUAL;

EXEC DBMS_OUTPUT.PUT_LINE(FUN_ADD(10,20));

===========================================================================
-------------------------------FUNCTION SELECT--------------------

CREATE OR REPLACE FUNCTION FUN_SEL RETURN VARCHAR IS


V_DPT_NO DEPARTMENTS.DEPARTMENT_ID % TYPE;
V_DPT_NAME DEPARTMENTS.DEPARTMENT_NAME % TYPE;
V_MGR_ID DEPARTMENTS.MANAGER_ID % TYPE;
V_LOC_ID DEPARTMENTS.LOCATION_ID % TYPE;
BEGIN
SELECT DEPARTMENT_ID,DEPARTMENT_NAME,MANAGER_ID,LOCATION_ID
INTO V_DPT_NO,V_DPT_NAME,V_MGR_ID,V_LOC_ID
FROM DEPARTMENTS WHERE DEPARTMENT_ID=10;

RETURN V_DPT_NO||':'||V_DPT_NAME||':'||V_MGR_ID||':'||V_LOC_ID;
END;
/

SELECT FUN_SEL FROM DUAL;


-----------------------------FUNCTION INSERT-------------------------
CREATE OR REPLACE FUNCTION FUN_REP RETURN NUMBER IS
BEGIN
INSERT INTO DEPARTMENTS(DEPARTMENT_ID,DEPARTMENT_NAME,MANAGER_ID,LOCATION_ID)
VALUES (550,'COMPUTERS',210,1700);

RETURN 0;
END;
/
EXEC :X:=FUN_REP;

PRINT X;
------------------------------------ FUNCTION UPDATE---------------------

CREATE OR REPLACE FUNCTION FUN_UPD RETURN NUMBER IS


BEGIN
UPDATE DEPARTMENTS
SET DEPARTMENT_ID=600
WHERE DEPARTMENT_ID=550;
RETURN 1;
END;
/
EXEC :X:=FUN_UPD;

PRINT X;
----------------------------------FUNCTION DELETE ------------------
CREATE OR REPLACE FUNCTION FUN_DEL RETURN NUMBER IS
BEGIN
DELETE DEPARTMENTS
WHERE DEPARTMENT_ID=600;
RETURN 0;
END;
/
EXEC :X:=FUN_DEL;

PRINT X;
--------------------------------FUNCTION MERGE ---------------------

CREATE OR REPLACE FUNCTION MERGE_FUNCTION RETURN NUMBER IS


BEGIN
MERGE INTO TargetProducts T
USING SourceProducts S
ON(T.PRODUCTID=S.PRODUCTID)
WHEN MATCHED THEN UPDATE SET
T.PRICE=S.PRICE
WHEN NOT MATCHED THEN
INSERT ( PRODUCTID,PRODUCTNAME,PRICE)
VALUES( S.PRODUCTID,S.PRODUCTNAME,S.PRICE);
RETURN 0;
END ;
/

EXEC :X:=MERGE_FUNCTION;
=============================================================================

-------------------------------- FUNCTION COMMIT--------------------


CREATE OR REPLACE FUNCTION FUN_COMM RETURN NUMBER IS
BEGIN
COMMIT;
RETURN 0;
END;
/
------------------------------------------------------------------------

You might also like