现在需要创建一个视图,用来查询数据表中最近五分钟的数据,
但是数据表的表名不是固定不变的,每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 /这样可以成功创建视图,
但是我现在的问题不知道这个视图能不能随着时间的推移而选择不同的数据表查询数据?
如果不能,应该怎么办?
但是数据表的表名不是固定不变的,每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 /这样可以成功创建视图,
但是我现在的问题不知道这个视图能不能随着时间的推移而选择不同的数据表查询数据?
如果不能,应该怎么办?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货