select tab.aaa into wk_yosoyydd from (select distinct a aaa from table_a) tab;
select ... into 只能返回单条记录--因为变量WK_YOSOYYDD只能接收一个值,而不能接收结果集。
参考(已编译通过): declare wk_yosoyydd varchar2(16); begin select tab.a into wk_yosoyydd from (select distinct password a from customer where userid=1306) tab; end;
To: BlueskyWide(谈趣者) 这个虽然能编译通过,但还是会有一样的问题。当customer表的password中有多个,执行时还是会有异常的。
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; /
declare
wk_yosoyydd varchar2(16);
begin
select tab.a into wk_yosoyydd from (select distinct password a from customer where userid=1306) tab;
end;
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;
/
select ... into 只能返回单条记录