在PL-SQL上进行更改之前如何获取视图/触发?

时间:2018-07-01 11:36:53

标签: oracle view oracle11g database-administration sql-view

我有一个观点:
昨天| myview | select * from mat where bereich='AAA' |
今天| myview | select * from mat where bereich='BBB' AND typ='BR' |


有人更改了我对产品的看法,或者我忘记了备份先前的查询,并且该查询已提交

如何昨天重新获得我的查询/ myview?

谢谢。

2 个答案:

答案 0 :(得分:0)

视图只是一个存储的查询,数据没有任何变化。只需使用旧查询重新创建视图:

create or replace myview as
  select * 
  from mat
  where bereich = 'AAA';

答案 1 :(得分:0)

您可以使用user_views数据字典视图来查看视图的前text。为此,您需要一些特权,例如

SQL> sqlplus / as sysdba
SQL> grant flashback on user_views to myschema;

以及使用闪回技术(例如

的最低要求)
SQL> select p.value 
  from v$parameter p
 where p.name = 'db_flashback_retention_target';

 VALUE
 -----
  1440 -- should be set to 1440(minute) as minimum to get the value for the day before.

由您的 DBA 提供。

然后,连接到您的架构

SQL> conn myschema/mypwd

并使用以下查询

SQL> select t.text 
  from user_views 
  as of timestamp systimestamp - interval '1' day t
where t.view_name = 'MYVIEW';

获取过去视图的text来重新创建。

P.S。根据您的需要,关键字day可能被hourminutesecond取代。