有一表 有 sign1,sign2....sign20;20个字段,我想写一个存储过程,出入ID,传出一个数字报错这20个字段,我自己写的如下:
create or replace procedure getSign(id in TEST.USERPHONE%TYPE, signList out array) is
flag number;
begin
flag:=1;
for i in 1..10 loop
select sign||flag into signList(flag) from TEST where userphone=id;
flag:=flag+1;
end loop
end;
不过有错误,哪位大侠帮帮忙
------解决方案--------------------
具体什么错误你贴出来撒.
你是想通过传入一个ID然后将其他的字段全部输出是不?
------解决方案--------------------
你这样拼接字段得用动态SQL吧,试试下面这个(没测试,数组定义可能有问题):
- SQL code
create or replace procedure getSign(id in TEST.USERPHONE%TYPE, signList out array) is begin for i in 1..10 loop execute immediate 'select sign'||to_char(i)||' from TEST where userphone='||to_char(id) into signList(flag); end loop end getSign;
------解决方案--------------------
end loop 后要加 分号
end loop;