+ -
当前位置:首页 → 问答吧 → Oracle创建视图的困惑

Oracle创建视图的困惑

时间:2011-11-17

来源:互联网

现在需要创建一个视图,用来查询数据表中最近五分钟的数据,
但是数据表的表名不是固定不变的,每15分钟会生成一个新的表
比如
data_11170400 表示11月17日4点0分开始到4点15存储数据用的表。
我希望这个视图能够随时间的不同可以从不同的数据表中查询数据。

我现在也做了一些工作。

create or replace function getName
return varchar2
as
name varchar2(20);
id number;
begin

select concat(concat('data_',to_char(sysdate,'MMDDHH24')),to_char(trunc(to_number(to_char(sysdate,'MI'))/15)*15,'FM09')) into name from dual;
execute immediate 'create or replace view yang(id) as select r_id from '||name||' where col';
commit;
return name;
end getName;

==========

SQL> declare 
  2 name varchar2(20);
  3 begin
  4 name:=getName();
  5 dbms_output.put_line(name);
  6 end;
  7 /

这样可以成功创建视图,
但是我现在的问题不知道这个视图能不能随着时间的推移而选择不同的数据表查询数据?
如果不能,应该怎么办?

作者: bityoungs   发布时间: 2011-11-17

我表述的不够清楚?

作者: bityoungs   发布时间: 2011-11-17

每次查询的时候你需要重新生成视图的兄弟。。
视图一旦定义了,不会自己变化的。

作者: BenChiM888   发布时间: 2011-11-17

热门下载

更多