type  VarTableType is table of varchar2(2000);
function str2varList( p_string in varchar2 ) return  VarTableType pipelined  ;
procedure p_add_pz(pzall in varchar2)
is
begin
 [color=#FF0000]   insert into aaa(a2) select *from table(str2varlist(pzall));
   如果按照这种写法,在调用过程时出错,如果直接在函数当中输入数值则没有问题.
end p_add_pz;SQL> exec pkg_addpz.p_add_pz('2008,01,00,aaa$2008,01,00,bbb$2008,01,00,ccc')
BEGIN pkg_addpz.p_add_pz('2008,01,00,aaa$2008,01,00,bbb$2008,01,00,ccc'); END;*
ERROR 位于第 1 行:
ORA-22905: 无法从非嵌套表项访问行
ORA-06512: 在"LC0019999.PKG_ADDPZ", line 104
ORA-06512: 在line 1[/color] procedure p_add_pz(pzall in varchar2)
is
begin   insert into aaa(a2) select *from table(str2varlist('2008,01,00,aaa$2008,01,00,bbb$2008,01,00,ccc'));
end p_add_pz;
SQL> exec pkg_addpz.p_add_pz('a')PL/SQL 过程已成功完成。SQL> select *from aaa
  2  /        A1
----------
A2
--------------------------------------------------------------------------------2008,01,00,aaa
2008,01,00,bbb
2008,01,00,ccc