Powered By Blogger

Saturday 31 March 2012

FUNCTION


                                               FUNCTION

 

CREATE OR REPLACE FUNCTION DeptIsPrsent(PDeptno  Dept.Deptno%TYPE)

RETURN BOOLEAN

IS

V_Deptno    Dept.Deptno%TYPE;

BEGIN

SELECT DISTINCT Job  INTO V_Deptno

FROM Emp

WHERE Job= PDeptno;

IF SQL%FOUND THEN

   RETURN TRUE;

END IF;

EXCEPTION

WHEN NO_DATA_FOUND THEN

   RETURN FALSE;

END;

CREATE OR REPLACE FUNCTION IsJobAccept(PJob  Emp.Job%TYPE)

RETURN BOOLEAN

IS

V_Job     Emp.Job%TYPE;

BEGIN

SELECT DISTINCT Job  INTO V_Job

FROM Emp

WHERE Job= PJob;

IF SQL%FOUND THEN

   RETURN TRUE;

END IF;

EXCEPTION

WHEN NO_DATA_FOUND THEN

   RETURN FALSE;

END;

CREATE OR REPLACE FUNCTION IsMgrAccept(PMgr  Emp.Mgr%TYPE)

RETURN BOOLEAN

IS

V_Mgr     Emp.Mgr%TYPE;

BEGIN

SELECT Empno  INTO V_Mgr

FROM Emp

WHERE Empno=PMgr;

IF SQL%FOUND THEN

   RETURN TRUE;

END IF;

EXCEPTION

WHEN NO_DATA_FOUND THEN

   RETURN FALSE;

END;

CREATE OR REPLACE FUNCTION IsEmpIDAccept(PEmpno Emp.Empno%TYPE )

 RETURN BOOLEAN

 IS

 V_Empno     Emp.Empno%TYPE;

 BEGIN

 SELECT Empno INTO V_Empno

 FROM Emp

 WHERE Empno= PEmpno;

 IF SQL%FOUND THEN

    RETURN TRUE;

 END IF;

 EXCEPTION

 WHEN NO_DATA_FOUND THEN

    RETURN FALSE;

 END;

/************************************************

*******       Function using Ref Cursor   ***********

************************************************/

CREATE OR REPLACE PACKAGE

 EmpResultSet

 AS

 TYPE EmpRefCursor IS REF CURSOR;

 END EmpResultSet;

 /

CREATE OR REPLACE FUNCTION EmplResultSet

RETURN EmpResultSet.EmpRefCursor

IS

V_EmpResultSet EmpResultSet.EmpRefCursor;

Emp_SQLSTMNT    VARCHAR2(200);

BEGIN

Emp_SQLSTMNT := 'SELECT * FROM Emp';

OPEN V_EmpResultSet FOR Emp_SQLSTMNT;

RETURN  V_EmpResultSet;

END EmplResultSet;

CREATE OR REPLACE FUNCTION

EmplResultSet(QSqlStmnt VARCHAR2)

RETURN EmpResultSet.EmpRefCursor

IS

V_EmpResultSet EmpResultSet.EmpRefCursor;

Emp_SQLSTMNT    VARCHAR2(200);

BEGIN

Emp_SQLSTMNT := QSqlStmnt;

OPEN V_EmpResultSet FOR Emp_SQLSTMNT;

RETURN  V_EmpResultSet;

END EmplResultSet;

/


No comments: