I am writing a PLSQL function and I am not getting a return data from my nested table. Here is my code and it is returning zero data.
set SERVEROUTPUT ON;
CREATE OR REPLACE FUNCTION GETSummary(startDate DATE, endDate DATE)
RETURN SUM_OBJ_TABLE AS
CURSOR getId IS
SELECT SUM_OBJ (EMP_DATE,
WEEK_ID,
MONTH_ID,
YEAR_ID)
FROM ( SELECT
EMP_DATE,
WEEK_ID,
MONTH_ID,
YEAR_ID
FROM EMPLOYEE);
WHERE EMP_DATE BETWEEN startDate AND endDate;
result SUM_OBJ_TABLE;
BEGIN
OPEN getId;
LOOP
FETCH getId BULK COLLECT INTO result;
EXIT WHEN result.COUNT = 0;
END LOOP;
CLOSE getId;
RETURN result;
END;
I have already created SUM_OBJ AND SUM_OBJECT_TABLE on the same database.
The function runs and compiles fine but when i do
SELECT * FROM TABLE(GETSUMMARY('2017-06-10','2017-06-16'))
then i get an empty row of the object table.
it is not a filter issue because data exist between the two parameters.