• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2895
  • Last Modified:

Exact fetch return more than requested number of rows

I have the following PL/SQL code which I am trying to test by copying and pasting it next to the SQL prompt. I want to obtain all the distinct termcodes from three years up to the value in end_term.

set serveroutput on size 9999999999999999;

declare

end_term varchar2(8);
term varchar2(8);

begin

end_term := '200601';

select distinct termcode into term from student where termcode between to_char(to_number(end_term)-300) and end_term;
dbms_output.put_line(term);

end;

However, I obtain the following error:

ERROR at line 1:
ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at line 10

How do I fix it?
0
geeta_m9
Asked:
geeta_m9
  • 2
2 Solutions
 
jrb1Commented:
You need to use a cursor to return multiple rows:

set serveroutput on size 9999999999999999;

declare
   end_term varchar2(8);
   term varchar2(8);
   cursor c1 is
          select distinct termcode
          from student
          where termcode between to_char(to_number(end_term)-300) and end_term;

begin
   end_term := '200601';

   for v_row in c1 loop
      dbms_output.put_line(v_row.term);
   end loop;
end;
/

0
 
geeta_m9Author Commented:
When I execute your query, I get the following error:

ERROR at line 14:
ORA-06550: line 14, column 30:
PLS-00302: component 'TERM' must be declared
ORA-06550: line 14, column 3:
PL/SQL: Statement ignored
0
 
MikeOM_DBACommented:


Fix typo:
...
      dbms_output.put_line(v_row.termcode);
...
0
 
geeta_m9Author Commented:
It works now, thanks!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Improve Your Query Performance Tuning

In this FREE six-day email course, you'll learn from Janis Griffin, Database Performance Evangelist. She'll teach 12 steps that you can use to optimize your queries as much as possible and see measurable results in your work. Get started today!

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now