I am new to cursors
I have a table
SQL> select * from commodity_m_details;
COMMODITY_ID COMMODITY_NAME STAR END INTERVAL
-------------------- ------------------------------ ---- ---- ---------------
C1 Commodity1 1996 2006 2
C2 Commodity2 1996 2000 2
C3 Commodity3 1983 1995 4
i need to write a procedure for different years for every commodity
o/p is like
For C3
year
-----------------
1983-1986
1986-1989
1989-1992
1992-1995
i have written like this
Expand|Select|Wrap|Line Numbers
- create or replace procedure getYear(commodityid in varchar2,
- results out resultscur.r,
- status out varchar2)
- is
- V_data number(10);
- cursor c1 is select start_year,end_year,interval_number from commodity_m_details where commodity_id=commodityid;
- begin
- V_data:=0;
- FOR record in c1
- LOOP
- V_data:=V_data+(record.end_year-record.start_year)/record.interval_number;
- V_data:=record.start_year+V_data;
- end loop;
- DBMS_OUTPUT.PUT_LINE(V_data);
- commit;
- status:='0';
- exception
- when others then
- status:='7';
- end getYear;
But it is giving only 1986
please help me
Thank you