当前位置:Gxlcms > 数据库问题 > Oracle学习(十三):闪回

Oracle学习(十三):闪回

时间:2021-07-01 10:21:17 帮助过:8人阅读


  1. SQL> --1. 错误地删除了记录
  2. SQL> --2. 错误地删除了表
  3. SQL> --3. 查询历史记录
  4. SQL> --4. 怎样撤销一个已经提交的事务
  5. SQL>
  6. SQL> --闪回的类型
  7. SQL> --1. 闪回表:将表回退到过去的一个时间上
  8. SQL> --2. 闪回删除:Oracle回收站
  9. SQL> --3. 闪回版本号查询:全部历史记录
  10. SQL> --4. 闪回事务查询:通过select语句得到一个 undo_sql
  11. SQL> --5. 闪回数据库
  12. SQL> --6. 闪回归档日志
  13. --------------------------------------------------------------------------
  14. 须要考虑的事情
  15. FLASHBACK TABLE命令作为单一的事务运行,会得到一个单一的DML锁
  16. 表的统计数据不会被闪回
  17. 当前的索引和从属的对象会被维持
  18. 闪回表操作:1、系统表不能被闪回2、不能跨越DDL操作3、会被写入警告日志4、产生撤销和重做的数据
  19. --------------------------------------------------------------------------
  20. 语法:
  21. FLASHBACK TABLE[achema.]<table_name>
  22. TO
  23. {[BEFORE DROP[RENAME TO table]]
  24. [SCN|TIMESTAMP]expr
  25. [ENABLE|DISABLE]TRIGGERS}
  26. schema:模式名。一般为username
  27. TO TIMESTAMP:系统邮戳,包括年月日时分秒
  28. TO SCN:系统更改号
  29. ENABLE TRIGGERS:表示触发器恢复以后为enable状态,而默觉得disable状态
  30. TO BEFORE DROP:表示恢复到删除前
  31. RENAME TO table:表示更换表名
  32. --------------------------------------------------------------------------
  33. --SCN:系统改变号(时间)
  34. SQL> select to_char(systimestamp,‘yyyy-mm-dd hh24:mi:ss*ff‘) time,
  35. 2 timestamp_to_scn(systimestamp) SCN
  36. 3 from dual;
  37. --scope的取值: momery spfile both
  38. --momery:仅仅改当前内存(即数据库),不改參数文件。重新启动数据库后恢复原样
  39. --spfile:仅仅改參数文件。不改数据库;重新启动数据库后变为改动后的
  40. --both:数据库,參数都改
  41. --授予闪回权限:grant flashback any table to scott;
  42. --授予事务查询权限:grant select any transaction to scott;
  43. SQL> -- 1.闪回表:将表回退到过去的一个时间上
  44. SQL> flashback table flashback_table to scn 3784220;
  45. SQL> --开启表的行移动
  46. SQL> alter table flashback_table enable row movement;
  47. SQL> --2.闪回删除
  48. SQL> flashback table testseq to before drop;
  49. SQL> --闪回重名的表
  50. SQL> flashback table testseq to before drop rename to testseq_old;
  51. SQL> --查看回收站,管理员没有回收站
  52. SQL> show recyclebin
  53. SQL> --清空回收站
  54. SQL> purge recyclebin;
  55. SQL> --通过回收站的名字查看表要加双引號
  56. SQL> select * from "BIN$UhseqyX1Reyl5iurpupyEg==$0";
  57. SQL> /*
  58. SQL> 小结:
  59. SQL> 基本概念: 1. SCN 2. 900秒 3. 权限 flashback any tables
  60. SQL> 闪回表:将表回退到过去的一个时间
  61. SQL> 1. 行移动
  62. SQL> 2. 运行闪回表
  63. SQL> 注意: 系统表不能闪回;不能跨越DDL
  64. SQL> 问题: 怎样得到离该操作近期的一个时间??
  65. SQL> 闪回删除: Oracle的回收站
  66. SQL> 1. 运行闪回删除
  67. SQL> 2. 通过回收站中的名字闪回(双引號)
  68. SQL> 3. 重名的表
  69. SQL> 4. 触发器(disable)
  70. SQL> */
  71. SQL> --3.闪回版本号查询
  72. SQL> --运行闪回版本号查询
  73. SQL> select tid,tname,versions_operation 操作,versions_starttime 起始时间,
  74. 2 versions_endtime 结束时间,versions_xid 事务号
  75. 3 from versions_table
  76. 4 versions between TIMESTAMP MINVALUE and MAXVALUE
  77. 5 order by 1,4;
  78. SQL> --4.闪回事务查询
  79. SQL> --视图flashback_transaction_query
  80. SQL> desc flashback_transaction_query
  81. SQL> --得到XID
  82. SQL> select tid,tname,versions_operation 操作,versions_starttime 起始时间,
  83. 2 versions_endtime 结束时间,versions_xid 事务号
  84. 3 from transaction_table
  85. 4 versions between TIMESTAMP MINVALUE and MAXVALUE
  86. 5 order by 事务号;
  87. SQL> --通过XID查询事务信息。再利用undo_sql撤销事务操作
  88. SQL> select operation,undo_sql
  89. 2 from flashback_transaction_query
  90. 3 where xid=‘080029005C050000‘;
2.在Sqlplus下实际运行的结果录屏
  1. SQL> host cls
  2. SQL> /*
  3. SQL> 1. 错误地删除了记录
  4. SQL> 2. 错误地删除了表
  5. SQL> 3. 查询历史记录
  6. SQL> 4. 怎样撤销一个已经提交的事务
  7. SQL>
  8. SQL> 闪回的类型
  9. SQL> 1. 闪回表:将表回退到过去的一个时间上
  10. SQL> 2. 闪回删除:Oracle回收站
  11. SQL> 3. 闪回版本号查询:全部历史记录
  12. SQL> 4. 闪回事务查询: 通过select语句得到一个 undo_sql
  13. SQL>
  14. SQL> 5. 闪回数据库
  15. SQL> 6. 闪回归档日志
  16. SQL> */
  17. SQL> --SCN系统改变号(时间)
  18. SQL> select to_char(systimestamp,‘yyyy-mm-dd hh24:mi:ss*ff‘) 时间,
  19. 2 timestamp_to_scn(systimestamp) SCN
  20. 3 from dual;
  21. 时间 SCN
  22. ----------------------------- ----------
  23. 2012-10-25 10:31:02*000000 3783972
  24. SQL> /*
  25. SQL> SQL> show parameter undo
  26. SQL>
  27. SQL> NAME TYPE VALUE
  28. SQL> ------------------------------------ ----------- --------------------
  29. SQL> undo_management string AUTO
  30. SQL> undo_retention integer 1200
  31. SQL> undo_tablespace string UNDOTBS1
  32. SQL> SQL> --scope的取值: momery spfile both
  33. SQL> SQL> alter system set undo_retention=900 scope=both;
  34. SQL> */
  35. SQL> --权限 grant flashback any table to scott;
  36. SQL> create table flashback_table
  37. 2 (fid number,fname varchar2(20));
  38. 表已创建。
  39. SQL> insert into flashback_table values(1,‘Tom‘);
  40. 已创建 1 行。
  41. SQL> insert into flashback_table values(2,‘Mary‘);
  42. 已创建 1 行。
  43. SQL> insert into flashback_table values(3,‘Mike‘);
  44. 已创建 1 行。
  45. SQL> commit;
  46. 提交完毕。<p></p><p>
  47. SQL> --当前时间
  48. SQL> select to_char(systimestamp,‘yyyy-mm-dd hh24:mi:ss*ff‘) 时间,
  49. 2 timestamp_to_scn(systimestamp) SCN
  50. 3 from dual;
  51. 时间 SCN
  52. ----------------------------- ----------
  53. 2012-10-25 10:36:22*046000 3784220
  54. SQL> select * from flashback_table;
  55. FID FNAME
  56. ---------- --------------------
  57. 1 Tom
  58. 2 Mary
  59. 3 Mike
  60. SQL> --删除mary
  61. SQL> delete from flashback_table where fid =2;
  62. 已删除 1 行。</p><p>
  63. SQL> commit;
  64. 提交完毕。
  65. SQL> select * from flashback_table;
  66. FID FNAME
  67. ---------- --------------------
  68. 1 Tom
  69. 3 Mike
  70. SQL> --运行闪回表
  71. SQL> flashback table flashback_table to scn 3784220;
  72. flashback table flashback_table to scn 3784220
  73. *
  74. 第 1 行出现错误:
  75. ORA-08189: 由于未启用行移动功能, 不能闪回表
  76. SQL> --开启表的行移动
  77. SQL> alter table flashback_table enable row movement;
  78. 表已更改。
  79. SQL> flashback table flashback_table to scn 3784220;
  80. 闪回完毕。
  81. SQL> select * from flashback_table;
  82. FID FNAME
  83. ---------- --------------------
  84. 1 Tom
  85. 2 Mary
  86. 3 Mike
  87. SQL> --问题:怎样获取近期的一个时间?
  88. SQL> host cls
  89. SQL> --闪回删除
  90. SQL> select * from tab;
  91. TNAME TABTYPE CLUSTERID
  92. ------------------------------ ------- ----------
  93. DEPT TABLE
  94. EMP TABLE
  95. BONUS TABLE
  96. SALGRADE TABLE
  97. EMP20 TABLE
  98. TESTSAVEPOINT TABLE
  99. TEST2 TABLE
  100. MYPERSON TABLE
  101. EMP10 TABLE
  102. EMPINCOME TABLE
  103. VIEW1 VIEW
  104. TNAME TABTYPE CLUSTERID
  105. ------------------------------ ------- ----------
  106. VIEW2 VIEW
  107. TESTSEQ TABLE
  108. HREMP SYNONYM
  109. MSG1 TABLE
  110. TEST1 TABLE
  111. PM_CI TABLE
  112. PM_STU TABLE
  113. FLASHBACK_TABLE TABLE
  114. SYS_TEMP_FBT TABLE
  115. 已选择20行。
  116. SQL> drop table test1;
  117. 表已删除。
  118. SQL> show recyclebin
  119. ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
  120. ---------------- ------------------------------ ------------ -------------------
  121. TEST1 BIN$Rn2qG7V+SO2k+aNrG/oYww==$0 TABLE 2012-10-25:10:45:11
  122. SQL> purge recyclebin;
  123. 回收站已清空。
  124. SQL> --管理员没有回收站
  125. SQL> select * from TESTSEQ;
  126. TID TNAME
  127. ---------- --------------------
  128. 3 aaa
  129. 4 aaa
  130. 5 aaa
  131. 8 aaa
  132. SQL> drop table TESTSEQ;
  133. 表已删除。
  134. SQL> show recyclebin
  135. ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
  136. ---------------- ------------------------------ ------------ -------------------
  137. TESTSEQ BIN$UhseqyX1Reyl5iurpupyEg==$0 TABLE 2012-10-25:10:47:38
  138. SQL> select * from TESTSEQ;
  139. select * from TESTSEQ
  140. *
  141. 第 1 行出现错误:
  142. ORA-00942: 表或视图不存在
  143. SQL> select * from tab;
  144. TNAME TABTYPE CLUSTERID
  145. ------------------------------ ------- ----------
  146. DEPT TABLE
  147. EMP TABLE
  148. BONUS TABLE
  149. SALGRADE TABLE
  150. EMP20 TABLE
  151. TESTSAVEPOINT TABLE
  152. TEST2 TABLE
  153. MYPERSON TABLE
  154. EMP10 TABLE
  155. EMPINCOME TABLE
  156. VIEW1 VIEW
  157. TNAME TABTYPE CLUSTERID
  158. ------------------------------ ------- ----------
  159. VIEW2 VIEW
  160. HREMP SYNONYM
  161. MSG1 TABLE
  162. BIN$UhseqyX1Reyl5iurpupyEg==$0 TABLE
  163. PM_CI TABLE
  164. PM_STU TABLE
  165. FLASHBACK_TABLE TABLE
  166. SYS_TEMP_FBT TABLE
  167. 已选择19行。</p><p>
  168. SQL> select * from BIN$UhseqyX1Reyl5iurpupyEg==$0;
  169. select * from BIN$UhseqyX1Reyl5iurpupyEg==$0
  170. *
  171. 第 1 行出现错误:
  172. ORA-00933: SQL 命令未正确结束
  173. SQL> select * from "BIN$UhseqyX1Reyl5iurpupyEg==$0";
  174. TID TNAME
  175. ---------- --------------------
  176. 3 aaa
  177. 4 aaa
  178. 5 aaa
  179. 8 aaa
  180. SQL> host cls
  181. SQL> show recyclebin
  182. ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
  183. ---------------- ------------------------------ ------------ -------------------
  184. TESTSEQ BIN$UhseqyX1Reyl5iurpupyEg==$0 TABLE 2012-10-25:10:47:38
  185. SQL> --运行闪回删除
  186. SQL> flashback table testseq to before drop;
  187. 闪回完毕。</p><p>
  188. SQL> show recyclebin
  189. SQL> select * from testseq;
  190. TID TNAME
  191. ---------- --------------------
  192. 3 aaa
  193. 4 aaa
  194. 5 aaa
  195. 8 aaa
  196. SQL> host cls
  197. SQL> drop table testseq;
  198. 表已删除。</p><p>
  199. SQL> create table testseq(tid number);
  200. 表已创建。</p><p>
  201. SQL> drop table testseq;
  202. 表已删除。
  203. SQL> show recyclebin
  204. ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
  205. ---------------- ------------------------------ ------------ -------------------
  206. TESTSEQ BIN$ZsXHtmHLTLu40DAC6jiKqg==$0 TABLE 2012-10-25:10:51:22
  207. TESTSEQ BIN$hBllsvl5Tum9hHaSvtQhag==$0 TABLE 2012-10-25:10:51:01
  208. SQL> flashback table testseq to before drop;
  209. 闪回完毕。
  210. SQL> show recyclebin
  211. ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
  212. ---------------- ------------------------------ ------------ -------------------
  213. TESTSEQ BIN$hBllsvl5Tum9hHaSvtQhag==$0 TABLE 2012-10-25:10:51:01
  214. SQL> select * from testseq;
  215. 未选定行
  216. SQL> flashback table testseq to before drop;
  217. flashback table testseq to before drop
  218. *
  219. 第 1 行出现错误:
  220. ORA-38312: 原始名称已被现有对象使用
  221. SQL> --闪回重名的表
  222. SQL> flashback table testseq to before drop rename to testseq_old;
  223. 闪回完毕。</p><p>
  224. SQL> select * from testseq_old;
  225. TID TNAME
  226. ---------- --------------------
  227. 3 aaa
  228. 4 aaa
  229. 5 aaa
  230. 8 aaa
  231. SQL> host cls
  232. SQL> /*
  233. SQL> 小结:
  234. SQL> 基本概念: 1. SCN 2. 900秒 3. 权限 flashback any tables
  235. SQL> 闪回表:将表回退到过去的一个时间
  236. SQL> 1. 行移动
  237. SQL> 2. 运行闪回表
  238. SQL> 注意: 系统表不能闪回;不能跨越DDL
  239. SQL> 问题: 怎样得到离该操作近期的一个时间??
  240. SQL> 闪回删除: Oracle的回收站
  241. SQL> 1. 运行闪回删除
  242. SQL> 2. 通过回收站中的名字闪回(双引號)
  243. SQL> 3. 重名的表
  244. SQL> 4. 触发器(disable)
  245. SQL> */
  246. SQL> host cls
  247. SQL> --闪回版本号查询
  248. SQL> create table versions_table
  249. 2 (tid number,tname varchar2(20));
  250. 表已创建。</p><p>
  251. SQL> insert into versions_table values(1.‘Tom‘);
  252. insert into versions_table values(1.‘Tom‘)
  253. *
  254. 第 1 行出现错误:
  255. ORA-00917: 缺失逗号
  256. SQL> insert into versions_table values(1,‘Tom‘);
  257. 已创建 1 行。
  258. SQL> commit;
  259. 提交完毕。
  260. SQL> insert into versions_table values(2,‘Mary‘);
  261. 已创建 1 行。
  262. SQL> commit;
  263. 提交完毕。</p><p>
  264. SQL> insert into versions_table values(3,‘Mike‘);
  265. 已创建 1 行。</p><p>
  266. SQL> commit;
  267. 提交完毕。
  268. SQL> update versions_table set tname=‘MaryNew‘ where tid=2;
  269. 已更新 1 行。
  270. SQL> commit;
  271. 提交完毕。
  272. SQL> select * from versions_table;
  273. TID TNAME
  274. ---------- --------------------
  275. 1 Tom
  276. 2 MaryNew
  277. 3 Mike
  278. SQL> --怎样查询Mary?
  279. SQL> --运行闪回版本号查询
  280. SQL> select tid,tname
  281. 2 from versions_table
  282. 3 versions between TIMESTAMP MINVALUE and MAXVALUE
  283. 4 order by 1;
  284. TID TNAME
  285. ---------- --------------------
  286. 1 Tom
  287. 2 MaryNew
  288. 2 Mary
  289. 3 Mike
  290. SQL> select tid,tname,versions_operation 操作,versions_starttime 起始时间,
  291. 2 versions_endtime 结束时间,versions_xid 事务号
  292. 3 from versions_table
  293. 4 versions between TIMESTAMP MINVALUE and MAXVALUE
  294. 5 order by 1,4;
  295. TID TNAME
  296. ---------- -------------------- -
  297. 起始时间
  298. ---------------------------------------------------------------------------
  299. 结束时间
  300. ---------------------------------------------------------------------------
  301. 事务号
  302. ----------------
  303. 1 Tom I
  304. 25-10月-12 11.17.28 上午
  305. 03002E005A050000
  306. TID TNAME
  307. ---------- -------------------- -
  308. 起始时间
  309. ---------------------------------------------------------------------------
  310. 结束时间
  311. ---------------------------------------------------------------------------
  312. 事务号
  313. ----------------
  314. 2 Mary I
  315. 25-10月-12 11.17.37 上午
  316. 25-10月-12 11.18.16 上午
  317. 02000D0064050000
  318. TID TNAME
  319. ---------- -------------------- -
  320. 起始时间
  321. ---------------------------------------------------------------------------
  322. 结束时间
  323. ---------------------------------------------------------------------------
  324. 事务号
  325. ----------------
  326. 2 MaryNew U
  327. 25-10月-12 11.18.16 上午
  328. 0600030065050000
  329. TID TNAME
  330. ---------- -------------------- -
  331. 起始时间
  332. ---------------------------------------------------------------------------
  333. 结束时间
  334. ---------------------------------------------------------------------------
  335. 事务号
  336. ----------------
  337. 3 Mike I
  338. 25-10月-12 11.17.46 上午
  339. 0400130061050000
  340. SQL> set linesize 150
  341. SQL> col tid for 99
  342. SQL> col tname for a10
  343. SQL> col 操作 for a8
  344. SQL> col 起始时间 for a40
  345. SQL> col 结束时间 for a40
  346. SQL> select tid,tname,versions_operation 操作,versions_starttime 起始时间,
  347. 2 versions_endtime 结束时间,versions_xid 事务号
  348. 3 from versions_table
  349. 4 versions between TIMESTAMP MINVALUE and MAXVALUE
  350. 5 order by 1,4;
  351. TID TNAME 操作 起始时间 结束时间 事务号
  352. --- ---------- -------- ---------------------------------------- ---------------------------------------- ----------------
  353. 1 Tom I 25-10月-12 11.17.28 上午 03002E005A050000
  354. 2 Mary I 25-10月-12 11.17.37 上午 25-10月-12 11.18.16 上午 02000D0064050000
  355. 2 MaryNew U 25-10月-12 11.18.16 上午 0600030065050000
  356. 3 Mike I 25-10月-12 11.17.46 上午 0400130061050000
  357. SQL> col 起始时间 for a30
  358. SQL> col 结束时间 for a30
  359. SQL> col 操作 for a4
  360. SQL> select tid,tname,versions_operation 操作,versions_starttime 起始时间,
  361. 2 versions_endtime 结束时间,versions_xid 事务号
  362. 3 from versions_table
  363. 4 versions between TIMESTAMP MINVALUE and MAXVALUE
  364. 5 order by 1,4;
  365. TID TNAME 操作 起始时间 结束时间 事务号
  366. --- ---------- ---- ------------------------------ ------------------------------ ----------------
  367. 1 Tom I 25-10月-12 11.17.28 上午 03002E005A050000
  368. 2 Mary I 25-10月-12 11.17.37 上午 25-10月-12 11.18.16 上午 02000D0064050000
  369. 2 MaryNew U 25-10月-12 11.18.16 上午 0600030065050000
  370. 3 Mike I 25-10月-12 11.17.46 上午 0400130061050000
  371. SQL> host cls
  372. SQL> --闪回事务查询
  373. SQL> create table transaction_table
  374. 2 (tid number,tname varchar2(20));
  375. 表已创建。
  376. SQL> --第一个事务
  377. SQL> insert into transaction_table values(1,‘Tom‘);
  378. 已创建 1 行。</p><p>
  379. SQL> insert into transaction_table values(2,‘Mary‘);
  380. 已创建 1 行。
  381. SQL> insert into transaction_table values(3,‘Mike‘);
  382. 已创建 1 行。
  383. SQL> commit;
  384. 提交完毕。
  385. SQL> --第二个事务
  386. SQL> update transaction_table set tname=‘MaryNew‘ where tid=2;
  387. 已更新 1 行。
  388. SQL> delete from transaction_table where tid =3;
  389. 已删除 1 行。</p><p>
  390. SQL> commit;
  391. 提交完毕。
  392. SQL> --怎样撤销第二个事务??
  393. SQL> --视图flashback_transaction_query
  394. SQL> desc flashback_transaction_query
  395. 名称 是否为空? 类型
  396. ----------------------------------------------------------------------------------- -------- --------------------------------------------------------
  397. XID RAW(8)
  398. START_SCN NUMBER
  399. START_TIMESTAMP DATE
  400. COMMIT_SCN NUMBER
  401. COMMIT_TIMESTAMP DATE
  402. LOGON_USER VARCHAR2(30)
  403. UNDO_CHANGE# NUMBER
  404. OPERATION VARCHAR2(32)
  405. TABLE_NAME VARCHAR2(256)
  406. TABLE_OWNER VARCHAR2(32)
  407. ROW_ID VARCHAR2(19)
  408. UNDO_SQL VARCHAR2(4000)
  409. SQL> --得到XID
  410. SQL> select tid,tname,versions_operation 操作,versions_starttime 起始时间,
  411. 2 versions_endtime 结束时间,versions_xid 事务号
  412. 3 from transaction_table
  413. 4 versions between TIMESTAMP MINVALUE and MAXVALUE
  414. 5 order by 事务号;
  415. TID TNAME 操作 起始时间 结束时间 事务号
  416. --- ---------- ---- ------------------------------ ------------------------------ ----------------
  417. 3 Mike I 25-10月-12 11.29.38 上午 25-10月-12 11.30.23 上午 0100100060050000
  418. 2 Mary I 25-10月-12 11.29.38 上午 25-10月-12 11.30.23 上午 0100100060050000
  419. 1 Tom I 25-10月-12 11.29.38 上午 0100100060050000
  420. 2 MaryNew U 25-10月-12 11.30.23 上午 080029005C050000
  421. 3 Mike D 25-10月-12 11.30.23 上午 080029005C050000
  422. SQL> select operation,undo_sql
  423. 2 from flashback_transaction_query
  424. 3 where xid=‘080029005C050000‘;
  425. OPERATION
  426. --------------------------------
  427. UNDO_SQL
  428. ------------------------------------------------------------------------------------------------------------------------------------------------------
  429. DELETE
  430. insert into "SCOTT"."TRANSACTION_TABLE"("TID","TNAME") values (‘3‘,‘Mike‘);
  431. UPDATE
  432. update "SCOTT"."TRANSACTION_TABLE" set "TNAME" = ‘Mary‘ where ROWID = ‘AAANpoAAEAAAAJvAAB‘;
  433. BEGIN
  434. SQL> insert into "SCOTT"."TRANSACTION_TABLE"("TID","TNAME") values (‘3‘,‘Mike‘)
  435. 2 ;
  436. 已创建 1 行。
  437. SQL> update "SCOTT"."TRANSACTION_TABLE" set "TNAME" = ‘Mary‘ where ROWID = ‘AAANpoAAEAAAAJvAAB‘;
  438. 已更新 1 行。
  439. SQL> commit;
  440. 提交完毕。</p><p>
  441. SQL> select * from transaction_table;
  442. TID TNAME
  443. --- ----------
  444. 1 Tom
  445. 2 Mary
  446. 3 Mike
  447. SQL> spool off
  448. </p>


Oracle学习(十三):闪回

标签:flash   log   cti   use   ==   cot   des   撤销   产生   

人气教程排行