如何用oracle存储过程获得表中字段带有逗号的字段 例如:Ess_aboss_update_date表中字段other(207,BrandSzx,0,BrandGotone,2011-01-28 00:00:00)分别获取他们的值。哪位高手能把获得每个具体值的函数写一下。

解决方案 »

  1.   

    如果有这种存储方式,这是设计上的失误。不符合关系数据库规范
    字符串拆分函数
    --功能:取用指定分隔符分隔的第n个字符串--通用一点,可指定分隔符
    CREATE OR REPLACE FUNCTION getstr(str VARCHAR2, n PLS_INTEGER, delim CHAR) RETURN VARCHAR2 IS
      tempstr VARCHAR2(2000);
      --str  :原始字符串
      --n    :取第几个字符串
      --delim:分隔符
      --调用方式: getstr('11,22,3323,abc,ddd',3,',')
    BEGIN
      tempstr := delim || str || delim;
      RETURN substr(tempstr,
                    instr(tempstr, delim, 1, n) + 1,
                    instr(tempstr, delim, 1, n + 1) - instr(tempstr, delim, 1, n) - 1);
    END;
    /
      

  2.   

    字段加""即可,比如select "other(207,BrandSzx,0,BrandGotone,2011-01-28 00:00:00)" from Ess_aboss_update_date
      

  3.   

    非常感谢tangren,问题已经解决!