如果我刚刚delete了一张表,想把数据找回来,有没有办法呢?

ohcyj 2003-10-20 07:59:26
如果我刚刚delete了一张表,想把数据找回来,有没有办法呢?
...全文
28 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
llm06 2003-10-23
  • 打赏
  • 举报
回复
你的数据库是归档模式吗?

如果是的话,关闭数据库,然后重新打开,使用recover until来恢复。
sdqhlyf 2003-10-23
  • 打赏
  • 举报
回复
很关注!
S海鸥 2003-10-23
  • 打赏
  • 举报
回复
up
jlandzpa 2003-10-22
  • 打赏
  • 举报
回复
语法有错了。
podded 2003-10-22
  • 打赏
  • 举报
回复
SQL> select * from test
2 as of timestamp(systimestamp - interval '1' day)
3 where test1='love';
as of timestamp(systimestamp - interval '1' day)
*
ERROR 位于第 2 行:
ORA-00933: SQL 命令未正确结束

请教:是怎么回事啊

gladness 2003-10-21
  • 打赏
  • 举报
回复
Using Flashback Queries: Example
The following statements show a current value from the sample table hr.employees and then changes the value:

SELECT salary FROM employees
WHERE last_name = 'Chung';

SALARY
----------
3800

UPDATE employees SET salary = 4000
WHERE last_name = 'Chung';
1 row updated.

SELECT salary FROM employees
WHERE last_name = 'Chung';

SALARY
----------
4000


To learn what the value was before the update, you can use the following flashback query:

SELECT salary FROM employees
AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' DAY)
WHERE last_name = 'Chung';

SALARY
----------
3800


To revert to the earlier value, use the flashback query as the subquery of another UPDATE statement:

UPDATE employees SET salary =
(SELECT salary FROM employees
AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' DAY)
WHERE last_name = 'Chung')
WHERE last_name = 'Chung';
1 row updated.

SELECT salary FROM employees
WHERE last_name = 'Chung';

SALARY
----------
3800

haught 2003-10-21
  • 打赏
  • 举报
回复
还是有错误!同阿朱
podded 2003-10-21
  • 打赏
  • 举报
回复
C:\>exp learn/learn file=f:\aaa tables=test flashback_time='200310211101805'
LRM-00101: 未知的参数名称 'flashback_time'

EXP-00019: 处理参数失败,有关帮助请键入 'EXP HELP=Y'
EXP-00000: 导出终止失败
Drate 2003-10-21
  • 打赏
  • 举报
回复
象你这样当然是不行的了:

SQL> exp

你是在SQL PLUS下运行EXP命令的吧
EXP命令只要在WINDOWS的CONSOLE运行就可以的
c:\> exp ...这样就行了
haught 2003-10-21
  • 打赏
  • 举报
回复
为什么不行呢?
SQL> exp system/manager file=c:\aaa tables=test flashback_time='20031021095220'
SP2-0734: 未知的命令开头 "exp system..." - 忽略了剩余的行。
编程小妞 2003-10-21
  • 打赏
  • 举报
回复
刚刚delete一张表,数据的前映象(before image)应该在回滚段里边。可以利用oracle imp/export工具从回滚段中找出数据。

SQL> select to_char(sysdate,'yyyymmddhh24miss') from dual;
TO_CHAR(SYSDAT
--------------
20030913123008

SQL> delete test1;

SQL> commit;

SQL> select * from test1;

exp user/password file=f:\aaa tables = test1 flashback_time = '20030913123008'
oopliu 2003-10-21
  • 打赏
  • 举报
回复
study
ohcyj 2003-10-20
  • 打赏
  • 举报
回复
怎么使用啊??
hdkkk 2003-10-20
  • 打赏
  • 举报
回复
dbms_logminer

17,377

社区成员

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

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