从临时表返回数据时遇到的问题(ORA-08103: object no longer exists)
2005-10-23 16:23
731 查看
写个存储过程向临时表中插入数据,并从临时表中返回数据,在PL/SQL Developer中测试没问题,但用ASP.NET应用程序获取数据时出现:ORA-08103: object no longer exists 错误提示。
后来,把临时表的创建选项由on commit delete rows改为on commit preserve rows; 解决!
但是,问题总出在“但是”上 :)
在ASP.Net页中查询临时表数据时,每查一次都要多出一些重复记录,原因肯定是Oracle的会话连接没有结束,导致每次执行存储过程都要先插入记录。Oracle会话为什么没有结束,肯定是ASP.NET服务程序在数据连接池中保持着与数据库的连接。但是为了性能我们也不能不用连接池。这样基于Oracle 会话的临时表是不能用了。
重新回到基于Oracle事务的临时表,也就是临时表的创建选项用on commit delete rows。然后,在ASP.Net应用程序中调用ODP自身的事务处理机制,问题得以解决!
注:
(1)理论上,不要在存储过程中执行Commit,即不要在存储过程中使用PL/SQL的事务处理, 否则ASP.NET页面也无法得到数据,因为commit 后,临时表中数据会自动清空。
(2)理论上,不用ODP的话,用OLEDB或微软提供的ORACLE事务处理机制应该也可以,我没有测试。
后来,把临时表的创建选项由on commit delete rows改为on commit preserve rows; 解决!
但是,问题总出在“但是”上 :)
在ASP.Net页中查询临时表数据时,每查一次都要多出一些重复记录,原因肯定是Oracle的会话连接没有结束,导致每次执行存储过程都要先插入记录。Oracle会话为什么没有结束,肯定是ASP.NET服务程序在数据连接池中保持着与数据库的连接。但是为了性能我们也不能不用连接池。这样基于Oracle 会话的临时表是不能用了。
重新回到基于Oracle事务的临时表,也就是临时表的创建选项用on commit delete rows。然后,在ASP.Net应用程序中调用ODP自身的事务处理机制,问题得以解决!
注:
(1)理论上,不要在存储过程中执行Commit,即不要在存储过程中使用PL/SQL的事务处理, 否则ASP.NET页面也无法得到数据,因为commit 后,临时表中数据会自动清空。
(2)理论上,不用ODP的话,用OLEDB或微软提供的ORACLE事务处理机制应该也可以,我没有测试。
相关文章推荐
- 从临时表返回数据时遇到的问题(ORA-08103: object no longer exists)
- ORA-08103: object no longer exists
- ORA-08103: object no longer exists
- OERR: ORA-8103 "object no longer exists" Master Note / Troubleshooting, Diagnostic and Solution (Doc
- ORA-8103 "object no longer exists"错误
- 用 ajaxFileUpload 出现的问题:has no method 'handleError'、返回json数据提示下载 、一直返回error
- Excel导入遇到的问题An object with the same key already exists in the ObjectStateManager……
- 分析ORA-12899, 迁移数据时遇到的多字节问题
- oracle 安装过程中遇到的问题1: libXp.so.6: cannot open shared objectfile: No such file or directory
- JSON 数据解析时遇到ValueError: No JSON object could be decoded
- 用 ajaxFileUpload 出现的问题:has no method 'handleError'、返回json数据提示下载
- 昨天写支付接口时遇到支付接口返回数据接收地址,session数据丢失(或者说失效)的问题
- ansible安装遇到"AttributeError: 'module' object has no attribute 'PROTOCOL_SSLv3'"的问题
- java处理http发送的数据转化为json格式并返回遇到的问题
- 删除临时表遇到的ORA-14452问题
- python遇到AttributeError: 'str' object has no attribute '_getAssertEqualityFunc'问题解决过程
- Android的okhttp的post请求,php返回json数据。以及遇到的okhttp dispatcher问题,和json解析遇到的问题
- 使用SpringMVC注解ResponseBody返回Json数据可能遇到的问题
- ubuntu安装ghc遇到的问题 缺少编译库libgmp.so.3: cannot open shared object file: No such file解决方案
- Java 简单解决springmvc获取properties文件里面中文内容出现论码问题(我遇到的问题是数据提交检验时返回的错误提示出现乱码)