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

不显示删除回复显示所有回复显示星级回复显示得分回复 存储过程中如何拆分一个字符串,使拆分的字符串可作为字段名使用?
在存储过程里:

   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;
 
------最佳解决方案--------------------

DECLARE
  str1 varchar2(200);
  v_aa TAB_TEST.aa%TYPE;
  v_bbb TAB_TEST.bbb%TYPE;
  v_c TAB_TEST.c%TYPE;
  v_dd TAB_TEST.dd%TYPE;
  v_eee TAB_TEST.eee%TYPE;
  
  o_cursor Sys_Refcursor;
BEGIN
  str1 := 'aa,bbb,c,dd,eee';
  OPEN o_cursor FOR
    'SELECT '