需求:做一个存储过程,输入参数为字串,是一串由分隔符0xx1xx组合而成的长字符串;输出结果集。
在存储过程中对输入参数根据分隔符分割,并使用这些分割后的字符串整合成输出SQL语句执行。存储过程例如:生成时没有提示有问题:
create or replace procedure get_MutiSchemeData(
    v_FcmpNum in varchar2,  --薪酬编码
    cur_o_result out sys_refcursor --输出结果集
)
is
    str_sql           varchar2(8000);
begin
   
   str_sql:='select fid,fnumber,fname_l2 from T_HR_CMPSCHEME where FEnable=1 and FIsDelete=0 and  T_HR_CMPSCHEME.FHisTableName is  not  null
               and fnumber in ('''||v_FcmpNum||''')';
   OPEN cur_o_result for str_sql;
   EXCEPTION
     WHEN  OTHERS  THEN
     raise;
END如上存储过程,薪酬编码入参可能会类似如:01-gx-0010xx1xx02-jx-001n0xx1xxxy-008
其中红色标识的为分隔符,薪酬编码不规则。
如何分解后使str_sql变量最后得出的结果为:
select fid,fnumber,fname_l2 from T_HR_CMPSCHEME where FEnable=1 and FIsDelete=0 and  T_HR_CMPSCHEME.FHisTableName is  not  null
               and fnumber in ('01-gx-001','02-jx-001n','xy-008')这样就可以得出我想要的结果,希望各位帮参考一下哩,谢谢了~~