用select into语句一定要保证有且仅有一条记录满足条件,有多条或没有记录都会出现异常。select max(a) into wk_yosoyydd from table_a;

解决方案 »

  1.   

    select tab.aaa into wk_yosoyydd from (select distinct a aaa from table_a) tab;
      

  2.   

    select ... into 只能返回单条记录--因为变量WK_YOSOYYDD只能接收一个值,而不能接收结果集。
      

  3.   

    参考(已编译通过):
    declare
     wk_yosoyydd varchar2(16);
     begin
     select tab.a into wk_yosoyydd from (select distinct password a from customer where userid=1306) tab;
     end;
      

  4.   

    To: BlueskyWide(谈趣者) 这个虽然能编译通过,但还是会有一样的问题。当customer表的password中有多个,执行时还是会有异常的。
      

  5.   

    declare
    type v1 is varray(100) of varchar2(10);
    v2 v1:=v1();
    cursor t_sor is
    SELECT DISTINCT A FROM TABLE_A;
    i number:=0;
    begin
    for v_sor in t_sor loop
    v2.extend;
    i:=i+1;
    v2(i):=v_sor.a;
    end loop;
    for num in 1..i loop
    dbms_output.put_line(v2(num));
    end loop;
    end;
    /
      

  6.   

    DISTINCT(A) 有可能有多条记录阿
    select ... into 只能返回单条记录