+ -
当前位置:首页 → 问答吧 → 求高手帮忙,存储过程

求高手帮忙,存储过程

时间:2011-09-20

来源:互联网

有一表 有 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;
不过有错误,哪位大侠帮帮忙

作者: qiu622feng112yuh   发布时间: 2011-09-20

具体什么错误你贴出来撒.
你是想通过传入一个ID然后将其他的字段全部输出是不?

作者: BearFishShow   发布时间: 2011-09-20

你这样拼接字段得用动态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;

返回的那个数组好像不是这么定义的,真要用应该在外面定义一个用户类型,然后这里引用,如:
SQL code
type tp_a is table of binary_integer;

作者: cnwz   发布时间: 2011-09-20

热门下载

更多