日期:2014-05-16  浏览次数:20907 次

存储过程中如何拆分一个字符串,使拆分的字符串可作为字段名使用?
在存储过程里:

  str1  varchar2(200);
  str2  varchar2(50);
  str3  varchar2(200);

  cursor ctest is  select * from tab_test;

  begin
    for cur_test in ctest 
    loop
        str1 := 'aa,bbb,c,dd,eee';       --给字符串str1赋类似的值,每个用,号分隔的都是上面tab_test中的一个字段名称如何循环取出这些字段并把游标值取出,例如循环取出值赋值给str2
        str2 := aa;  --取出第一个分隔字符串付给str2,aa实际是表tab_test的一个字段名   
        str3 := cur_test.str2;   ------编译本行时提示“必须声明 str2组件” ,请问这个要如何写?主要就是这个问题,请各位指教,谢谢!
    end loop;
  end;
  

------解决方案--------------------
这是动态游标,用dbms_sql包实现。
------解决方案--------------------
具体怎么实现,请具体写一下,谢谢!