execute执行后
创新互联建站主营尼开远网站建设的网络公司,主营网站建设方案,App定制开发,尼开远h5成都微信小程序搭建,尼开远网站营销推广欢迎尼开远等地区企业咨询
可以回滚
commit提交后
不可以回滚
其实oracle提交数据是分两步操作的,第一步execute执行,第二步commit提交。对应的pl\sql也是要先点execute执行,执行后再点commit提交。
但是
commit提交后
可以用闪回查询恢复原来的数据
因为oracle会将近期的数据保存到快照中
如:
select
*
from
table_1
as
of
timestamp
to_timestamp('20080606
20:00:00','yyyymmdd
hh24:mi:ss');
这里'20080606
20:00:00'就是你想恢复数据到哪个时间状态
table_1是数据库的表名
这样查询到的数据就是执行更新操作之前的数据
删除表后,可以采用如下操作:
在 user_recyclebin中找到最近操作过的表名称,然后用闪回(只能用于10G及以上版本)。
FLASH BACK TABLE TABLE_NAME TO BEFORE DROP;
如果是删了或修改里面的数据,可以先建立一个快表将删除修改之前状态的数据找回到这个表中:
CREATE TABLE QUICK_TABLE AS
SELECT * FROM TABLE_NAME AS OF TIMESTAMP SYSTEM-1/24 (一小时前的),减去的时间可以自己定。如楼上F_253那位老兄的写法就不错,能自由定制时间
朋友:
oracle中有两样东西是用来记录历史的
一、重做日志 REDO(作用就是当你8点做了很多事情,到10点由于数据库8点到10点操作的某个文件坏了,那么8点到10点的的东西全都不见了,但是REDO还在。你就可以用REDO来做重做你8点到10点所做的事,REDO就是记录了这样的事!)
二、回滚段 UNDO (作用就是当你后悔做了某些事之后就可以回到以前,但是在人间可是没有后悔要卖的哦。如你无意删除一个表,你就可以用rollback命令来回滚,它利用的就是oracle 的撤消表空间记录的内容。当然这个表空间满了的时候也就不能回滚到它没记录的内容了。)
execute执行后
可以回滚
commit提交后
不可以回滚
其实Oracle提交数据是分两步操作的,第一步execute执行,第二步commit提交。对应的PL\SQL也是要先点execute执行,执行后再点commit提交。
但是
commit提交后
可以用闪回查询恢复原来的数据
因为oracle会将近期的数据保存到快照中
如:
SELECT
*
FROM
TABLE_1
AS
OF
TIMESTAMP
TO_TIMESTAMP('20080606
20:00:00','YYYYMMDD
HH24:MI:SS');
这里'20080606
20:00:00'就是你想恢复数据到哪个时间状态
TABLE_1是数据库的表名
这样查询到的数据就是执行更新操作之前的数据