通过写一个函数,
1.用INSTR()找出第一个','出现的位置
2.然后用SUBSTR()截取字符串(前面和后面),
重复此过程
SQL> SELECT INSTR('123,456,7,ASD',',') FROM DUAL;INSTR('123,456,7,ASD',',')
--------------------------
                         4
SQL>  SELECT SUBSTR('123,456,7,ASD',0,4-1) FROM DUAL;SUB
---
123

解决方案 »

  1.   

    create or replace procedure test
    as
    temp_v  varchar2(100);
    temp_c  varchar2(100);
    begin
     temp_c := '123,456,7,9234';
     for int_temp in 1..lengthb(temp_c) loop
         if (substrb(temp_c,int_temp,1)=',') then
            temp_v:=temp_v||' ';
         else
            temp_v:=temp_v||substrb(temp_c,int_temp,1);
         end if;
     end loop;
    end test;
    /
      

  2.   

    to ATCG(ATCG); 可以用replace搞定的.
      

  3.   

    是的是的,他说要程序,编个过程给他看看。
    select replace('123,456,789',',',' ') from dual;
      

  4.   

    我已经搞定了
    select gysh,
    substr(gysh,  1,  instr(gysh,',',1) -1 ),
    substr(gysh,instr(gysh,',',1)+1,instr(gysh,',',1,2)-instr(gysh,',',1)-1),
    substr(gysh,instr(gysh,',',1,2)+1,instr(gysh,',',1,3)-instr(gysh,',',1,2)-1),
    substr(gysh,instr(gysh,',',1,3)+1)
     from user;