解决方案 »

  1.   

    str in varchar(1000)
    =>
    str in varchar
      

  2.   

    同时,as后面的str1 varchar; 改成str1 varchar(1000);
      

  3.   

    按照您说的,都改了,运行之后还是报这个错SQL> create or replace function my_split(str in varchar)
      2  return varchar
      3  as
      4  i integer := 0;
      5  str1 varchar(1000);
      6  begin
      7    i := instr(str,',',1);
      8    str1 := substr(str,0,i);
      9    return str1;
     10    end;
     11  /
     
    Function created
     
    SQL> select my_split('ok,test') from dual;
     
    MY_SPLIT('OK,TEST')
    --------------------------------------------------------------------------------
    ok,
     
    SQL> 
      

  4.   

    按照您说的,都改了,运行之后还是报这个错SQL> create or replace function my_split(str in varchar)
      2  return varchar
      3  as
      4  i integer := 0;
      5  str1 varchar(1000);
      6  begin
      7    i := instr(str,',',1);
      8    str1 := substr(str,0,i);
      9    return str1;
     10    end;
     11  /
     
    Function created
     
    SQL> select my_split('ok,test') from dual;
     
    MY_SPLIT('OK,TEST')
    --------------------------------------------------------------------------------
    ok,
     
    SQL> 分都给您了