declare 
a number:=1;
b varchar(6);
begin
   loop
     a:=a + 1;
       select t1.name into b from t1 where t1.age = a ;
        dbms_output.put_line(a||'工号'||b);
       exit when a=15;
   
       end loop;
       end;提示没有数据 
select t1.name into b from t1 where t1.age = a ;
里面有数据的 

解决方案 »

  1.   

    select t1.name from t1 where t1.age = a ;
    单独运行一下看有没有数据!
      

  2.   

    set serveroutput on;加了没
      

  3.   

    t1.age=a ==> 你在单独执行这句select语句的时候,a的值写的是几?
      

  4.   


    a=1 用的表
    name  age
    张 1
    李 12
    王 18
      

  5.   


    加这个 是什么意思 呢 报错了选项缺失或无效 我用的oracle
      

  6.   

    你是不是在学习写这个,不然这个可以直接用SQL写出来
      

  7.   

    哥!!
    你用a=1,有数据。
    但是你看你的过程,直接把a := a+1, 不就成2了么?
    select t1.name from t1 where t1.age = 2 -->本来就没有这条数据。。
      

  8.   

    报错 ora-01403 未找到任何数据
      

  9.   


    loop
      a:=a + 1;
      select t1.name into b from t1 where t1.age = a ;
      dbms_output.put_line(a||'工号'||b);
      exit when a=15;
        
    a 是循环加的 
      

  10.   

    我都快急死了。
    本来就是没有数据的!!!!!
    select t1.name from t1 where t1.age = 2 -->本来就没有这条数据。。
    你不是把a直接加1了吗?
      

  11.   

    你还是不明白么?
    我知道a 是循环加的!
    我问你:a 初始值是1,a:=a+1之后,a变成几了??不是变成2了吗?
    再往下执行那条select语句的时候,条件是什么?
    t1.age = a; 也就是t1.age=2.
    你有age为2的数据么????
      

  12.   


    a 开始是0 啊a number:=0;
      

  13.   

    你在哪写的0?
    你看你的代码:
    a number:=1;  --这不是1嘛?