create or replace package pk_Base is
type t_split_tbl is table of varchar2(32767);
function split(p_list varchar2,p_del varchar2 := ',')
        return t_split_tbl pipelined;
end pk_Base;
后面报了一个错误PLS-00103:出现符号""在需要下列之一时:return
我不知道这个错误是什么意思,以前没接触过,希望大家有能力的帮我解决一下,谢谢

解决方案 »

  1.   

    create or replace package pk_Base is
      type t_split_tbl is table of varchar2(32767);
      function split(p_list varchar2, p_del varchar2) return number;
    end pk_Base;
      

  2.   

    ---return 后面直接接返回的类型就行了SQL> 
    SQL> create or replace package pk_Base is
      2    type t_split_tbl is table of varchar2(32767);
      3    function split(p_list varchar2, p_del varchar2:=',') return number;
      4  end pk_Base;
      5  /Package createdSQL> 
      

  3.   

    create or replace package body pk_Base is
    function split(p_list varchar2,p_del varchar2 := ',')
             return t_split_tbl pipelined;
    is
         l_idx pls_integer;
         l_list varchar2(32767) := p_list;
         l_value varchar2(32767);
    begin
       loop
          l_idx := instr(l_list,p_del);
          if l_idx > 0 then
             pipe row(substr(l_list,1,l_idx-1));
             l_list := substr(l_list,l_idx+length(p_del));
          else
              pipe row(l_list);
              exit;
           end if;
       end loop;
       return;
    end;
    end pk_Base;这个也报同样的错误,这个改了也不行,还有什么办法么?
      

  4.   

    同样的啊。。你只要return [你的数据类型就行了,不是你返回的变量]
      

  5.   

    create or replace package body pk_Base is
    function split(p_list varchar2,p_del varchar2 := ',')
             return number;
    is
         l_idx pls_integer;
         l_list varchar2(32767) := p_list;
         l_value varchar2(32767);
    begin
       loop
          l_idx := instr(l_list,p_del);
          if l_idx > 0 then
             pipe row(substr(l_list,1,l_idx-1));
             l_list := substr(l_list,l_idx+length(p_del));
          else
              pipe row(l_list);
              exit;
           end if;
       end loop;
       return 1;
    end;
    end pk_Base;
      

  6.   


    --函数返回数组 你的目的??  1* create or replace type t_split_tbl is table of varchar2(4000);
    scott@ORCL> /类型已创建。scott@ORCL> ed
    已写入 file afiedt.buf  1  create or replace package pk_Base is
      2  function split(p_list varchar2,p_del varchar2 default ',') return t_split_tbl;
      3* end pk_Base;
    scott@ORCL> /程序包已创建。