DECLARETYPE   InteArrayTyp   IS   TABLE   OF   integer(20) INDEX   BY   BINARY_INTEGER;   
       v_1 InteArrayTyp;
 k INTEGER :=0; 
 S_Counter INTEGER :=0;
BEGIN
select COUNT(SNO) INTO S_Counter From student;
WHILE k<S_Counter LOOP
       SELECT SNO into v_1(k) FROM STUDENT where SNAME = 'ldh';    
       dbms_output.put_line(v_1(k));
       S_Counter := S_Counter -1;
End Loop; 
       EXCEPTION WHEN OTHERS THEN
dbms_output.put_line('errors');
END;
我的数据库里面对应SNAME ='LDH'的sno数据有多条,我想全部都赋值给数组,但是报错,请大家给看看,没分了

解决方案 »

  1.   


    sno有多条数据,想要赋给V_1(K)肯定会报错啊
      

  2.   

    DECLARE TYPE  InteArrayTyp  IS  TABLE  OF  integer(20) INDEX  BY  BINARY_INTEGER;  
          v_1 InteArrayTyp; 
    k INTEGER :=0; 
    S_Counter INTEGER :=0; 
     cursor bb  is  SELECT SNO FROM STUDENT where SNAME = 'ldh';    BEGIN 
     open bb;
     loop 
      fetch bb into v_1(k);
      exit when bb%notfound;
      k+=1;
      dbms_output.put_line(v_1(k)); 
      S_Counter := S_Counter -1; 
     end loop;
    end;
      

  3.   


    BEGIN 
    open bb; 
    loop 
      fetch bb into v_1(k); 
      exit when bb%notfound; 
      dbms_output.put_line(v_1(k)); 
        k:= k+1; 

      S_Counter := S_Counter -1; 
    end loop; 
    end;
    谢谢大哥了,但是这里出错了,这个应该放在后边。,太感谢你了,不为了分,为了学习的共同的目的