您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

异常ORA-08103:使用Hibernate的setfetchsize时对象不再存在

异常ORA-08103:使用Hibernate的setfetchsize时对象不再存在

最有可能基于已使用ON COMMIT DELETE ROWSoption 创建的全局临时表(GTT)打开了游标。ORA-08103: object no longer exists错误的原因是commit语句之后紧随其后的delete语句。这是一个简单的示例:

 sql> declare
  2    type t_recs is table of number;
  3    l_cur sys_refcursor;    -- our cursor
  4    l_rec t_recs; 
  5  
  6  begin
  7  
  8    -- populating a global temporary table GTT1 with sample data  
  9    insert into GTT1(col)
 10      select level
 11        from dual
 12     connect by level <= 1000;
 13  
 14   open l_cur         -- open a cursor based on data from GTT1
 15    for select col
 16          from GTT1;
 17  
 18    -- here goes delete statement
 19    -- and
 20    commit;  <-- cause of the error. After committing  all data from GTT1 will be
 21              -- deleted and when we try to fetch from the cursor
 22    loop      -- we'll face the ORA-08103 error
 23      fetch l_cur    -- attempt to fetch data which are long gone.
 24       bulk collect into l_rec;
 25      exit when l_cur%notfound;
 26    end loop;
 27  
 28  end;
 29  /


ORA-08103: object no longer exists
ORA-06512: at line 24

带有on commit preserve rows语句的全局临时表的创建将允许从基于该表的游标中安全地获取数据,而不必担心会遇到ORA-08103:错误

其他 2022/1/1 18:16:54 有558人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶