我在一个包中定义了个pipe funciton,在一个存储过程里面调用。今天报出异常
在存储过程里面编译时出现:
错误:PLS-00642: 在 SQL 语句中不允许使用本地收集类型
在sql窗口使用下面语句查看时select * from table(pkg_1.fun_1());
报出表函数fun_1处于不一致状态,这是什么原因。
我前几天运行好好的啊,今天也没动过。并且我查看了另一台机器上的完全相同的数据库,语法也是一摸一样。但那个问题
在存储过程里面编译时出现:
错误:PLS-00642: 在 SQL 语句中不允许使用本地收集类型
在sql窗口使用下面语句查看时select * from table(pkg_1.fun_1());
报出表函数fun_1处于不一致状态,这是什么原因。
我前几天运行好好的啊,今天也没动过。并且我查看了另一台机器上的完全相同的数据库,语法也是一摸一样。但那个问题
解决方案 »
- oracle数据库写入数据慢
- ORA-04098: trigger 'SYSTEM.POLICYPATHTABLE_TRG' is invalid and failed re-validat
- oracle10g端口,监听问题?
- mysql转oracle句子的改写
- select * from table 的效率问题。。急
- Oracle有象SQL Server那样的Profiler工具吗?
- 如何建立只读用户
- 关于VC下通过OCI连接ORCALE的一个问题
- 如何在pl/sql中生成一个文本文件,并写入这个文件一些数据,详情见内,高手请进!
- 关于select语句的不常用用法请教
- 关于oracle
- 如何调用存储过程
把你的packagebody贴出来看看
create record rec_1 is record
(
id number,
name varchar2(10)
)
type tab_1 is table of rec_1
type cur_1 is ref cursor return tab_1
funciton pkg_1.fun_1() return tab_1 pipelined包体中的函数是这样的
v_rec rec_1
v_cur cur_1
open cur_1 for select id,name from table_1
loop
fetch v_cur into v_rec
exit when ....
pipw row(v_rec)
end loop这种错误是在什么情况下产生的呢??
你的type是定义在packagebody里的是是local definied,所以有错,你可以把type定义到scheam里。==================================================================
Inthirties关注Oracle数据库 维护 优化,安全,备份,恢复,迁移,故障处理如果你需要帮助或想和我一起学习的请联系
联系方式QQ:370140387
QQ群: 85837884(注明:数据库)
电子邮件:[email protected]
网站: http://www.inthirties.com