去掉所有的set 
+ 号 换成 ||

解决方案 »

  1.   

    我的函数体改成现在这样,查询结果是:权限分配
    查询语句:
    select GetPowerString(POWER)
    from OA_USER
    where SN=1
    POWER字段的实际值是:1,2,3,4,5
    请教是什么原因?
    (szPower in varchar2)
    return varchar2 is
       szReturn varchar2(100);
       iCount number(5);
       iLength number(5);
    begin
       iCount := 0;
       iLength := LENGTH(szPower);
       while iCount<iLength or iCount=iLength loop
       if substr(szPower,iCount,1)='1' then
          szReturn := szReturn || '权限分配 ';
       elsif substr(szPower,iCount,1)='2' then
          szReturn := szReturn || '用户管理 ';
       elsif substr(szPower,iCount,1)='3' then
          szReturn := szReturn || '日志管理 ';
       elsif substr(szPower,iCount,1)='4' then
          szReturn := szReturn || '常规设置 ';
       elsif substr(szPower,iCount,1)='5' then
          szReturn := szReturn || '关键字管理 ';
       elsif substr(szPower,iCount,1)='6' then
          szReturn := szReturn || '档案录入 ';
       elsif substr(szPower,iCount,1)='7' then
          szReturn := szReturn || '档案检索 ';
       elsif substr(szPower,iCount,1)='8' then
          szReturn := szReturn || '借阅查询 ';
       elsif substr(szPower,iCount,1)='9' then
          szReturn := szReturn || '借阅审批';
       elsif substr(szPower,iCount,2)='10' then
          szReturn := szReturn || '档案催还 ';
       end if;
       iCount := iCount + 2;
       end loop;
       return szReturn;
    end GetPowerString;
      

  2.   

    create or replace function GetPowerInfo
    (szPower in varchar2)
    return varchar2 is
       szReturn varchar2(100);
       iCount number(5);
       iLength number(5);
    begin
       iCount := 1;   --改成1
       iLength := LENGTH(szPower);
       while iCount<iLength or iCount=iLength loop
       if substr(szPower,iCount,1)='1' then
          szReturn := szReturn || '权限分配 ';
       elsif substr(szPower,iCount,1)='2' then
          szReturn := szReturn || '用户管理 ';
       elsif substr(szPower,iCount,1)='3' then
          szReturn := szReturn || '日志管理 ';
       elsif substr(szPower,iCount,1)='4' then
          szReturn := szReturn || '常规设置 ';
       elsif substr(szPower,iCount,1)='5' then
          szReturn := szReturn || '关键字管理 ';
       elsif substr(szPower,iCount,1)='6' then
          szReturn := szReturn || '档案录入 ';
       elsif substr(szPower,iCount,1)='7' then
          szReturn := szReturn || '档案检索 ';
       elsif substr(szPower,iCount,1)='8' then
          szReturn := szReturn || '借阅查询 ';
       elsif substr(szPower,iCount,1)='9' then
          szReturn := szReturn || '借阅审批';
       elsif substr(szPower,iCount,2)='10' then
          szReturn := szReturn || '档案催还 ';
       end if;
       iCount := iCount + 2;
       end loop;
       return szReturn;
    end GetPowerInfo;
    /OK!