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 /
这样可以成功创建视图,
但是我现在的问题不知道这个视图能不能随着时间的推移而选择不同的数据表查询数据?
如果不能,应该怎么办?
但是数据表的表名不是固定不变的,每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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28