oracle高手请进,下面pl/sql 块错在那里??

difficult 2002-03-01 05:36:50
declare
type newStruct is record(
c1 number,
c2 number
);
type NTab is table of newStruct;
type Cursortype is ref cursor;
nList NTab:=NTab();
myCursor Cursortype;

begin

nList.extend;
nList(1).c1:=1;
nList(1).c2:=2;
nList.extend;
nList(2).c1:=11;
nList(2).c2:=22;
dbms_output.put_line(nList(1).c1);
dbms_output.put_line(nList(1).c2);
dbms_output.put_line(nList(2).c1);
dbms_output.put_line(nList(2).c2);

--此句出错
open myCursor for SELECT t.* FROM TABLE(nList) t ;
--open myCursor for SELECT * FROM TABLE(CAST(nList AS NTab)) t ;
end;


-----------------------------------------
执行后出错信息:
declare
*
ERROR 位于第 1 行:
ORA-00600: internal error code, arguments: [15419], [severe error during PL/SQL
execution], [], [], [], [], [], []
ORA-06544: PL/SQL: internal error, arguments: [pfrrun.c:pfrbnd1()], [], [], [],
[], [], [], []
ORA-06553: PLS-801: internal error [0]
...全文
36 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zzyy 2002-03-04
你的SQL SELECT FIELDNAME FROM TABLENAME
其中FIELDNAME和TABLENAME是用变量表示的,那么在DBMS分析你的SQL时
不知道变量的含义。所以上述SQL要用动态SQL实现
回复
Fxx 2002-03-04
还有:
open myCursor for 'SELECT t.* FROM ' ||TABLE(nList) t;
sql语句的非变量部分必须用单引号
回复
Fxx 2002-03-04
游标定义错误
Type RefcurT is Ref Cursor;
myCursor RefcurT;
open myCursor for .....
回复
发帖
非技术区
创建于2007-09-28

2.3w+

社区成员

Java 非技术区
申请成为版主
帖子事件
创建了帖子
2002-03-01 05:36
社区公告
暂无公告