如何知道显式游标的存活时间?
Oracle 本身在多长时间后关闭显式定义的游标?
After how much time oracle itself closes an explicitly defined cursor?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
Oracle 本身在多长时间后关闭显式定义的游标?
After how much time oracle itself closes an explicitly defined cursor?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
除非您明确要求,否则 Oracle 不会关闭您的游标。您可以在不活动的表上打开游标,等待 24 小时,然后从游标中获取行。
在活动表(可能被更新/删除/插入的表)上,一段时间后您可能会遇到 ORA-1555(表已被修改,并且用于重建旧版本块的信息已被覆盖)。如果您的UNDO表空间设置为AUTOEXTEND,您可以安全地从任何打开的游标中获取
UNDO_RETENTION
秒前:在我的数据库上,我可以安全地从游标中获取 900 秒(15 分钟)。这是一个较低的阈值(Oracle 将保留足够的数据来重建旧版本的块至少 15 分钟)。
Oracle won't close your cursor unless you explicitely ask for it. You can open a cursor on an inactive table, wait for 24 hours then fetch rows from the cursor.
On active tables (tables that may be updated/deleted/inserted), you may run into ORA-1555 after a while (the table has been modified and the information to reconstruct old versions of the blocks has been overwritten). If your UNDO tablespace is set as AUTOEXTEND, you can safely fetch from any cursor opened less than
UNDO_RETENTION
seconds ago:On my DB I can safely fetch from cursors for 900 seconds (15 mins). This is a low threshold (Oracle will keep sufficient data to reconstruct old versions of blocks for at least 15 minutes).