各位帮忙看一下这块错在哪里了???
whxxr 2008-03-21 05:08:42 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