关于oracle 删除临时表时"试图访问正在使用的临时表"或者truncate table 自带commit求教

jzz_123 2018-11-12 05:18:28
ORACLE过程中,用到了自定义的几个临时表TEMP1,在逻辑实现中会删除这个temp1,并重新插入数据.
于是之前的开发用的delete from temp1.
最初的时候也没发现有别的问题.但是最近的一个项目频繁的报"试图访问正在使用的临时表".百度了下说是delete速度慢,造成的.建议使用truncate table.
确实是解决了这个问题. 但是在使用truncate table的时候,又带来了另外一个问题,执行truncate table 会自带commit,这样存储过程如果发生逻辑异常需要回滚的时候,就没法再回滚.

求指点有什么方法能加快delete table的速度 或者能控制truncate table不自动commit?
...全文
205 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaiger 2018-11-16
  • 打赏
  • 举报
回复
楼主说的临时表是temporary table吗?
  • 打赏
  • 举报
回复
把这个 删除表内容的操作 写到一个 过程里面,调用这个过程。 删除用分批提交或者 truncate 都行
yaiger 2018-11-15
  • 打赏
  • 举报
回复
临时表的数据有多少? truncate table必定会提交,无法改变
卖水果的net 2018-11-13
  • 打赏
  • 举报
回复
是要删除表,还是删除表中的数据 ?
jzz_123 2018-11-12
  • 打赏
  • 举报
回复
没人么...

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧