查询和显示每'X'Oracle数据库的分钟数


Query and Display Results Every 'X' amount of Minutes from Oracle Database

是否有一种方法,我可以查询Oracle 10g数据库,并在动态刷新的html文件中每3分钟显示结果,例如?

这是我的困境:我有几个查询,我想在一个基本的HTML网页上用一些CSS显示整个组织的结果。问题是,我不希望用户能够不断刷新页面在他/她的浏览器,从而严重陷入困境的数据库。编写查询或编写显示表格所需的HTML和CSS都没有问题。这几乎就像我想查询,每3分钟将结果导出为XML,并不断有一个HTML或PHP文件指向动态更新的XML文件。我也愿意接受其他的选择。

我有基本的用户访问Oracle数据库…我不喜欢。不过,我确实可以访问服务器,并且有使用PHP、PL/SQL和HTML的经验。也许我必须学习像Python这样的低级编程语言?我被困在这里了。任何形式的帮助将不胜感激!

您还可以使用setTimeout()函数每3分钟执行一次Ajax请求。

使用jQuery框架

$(document).ready(function() {
    setTimeout("getFeed()", 180000); //180000 = 3 minutes in milliseconds
});
function getFeed() {
    //ajaxRequest here
}

有关ajax的更多信息,请访问:http://api.jquery.com/jQuery.ajax/

设置一个物化视图(mv),将你的应用程序指向这个mv,然后设置一个调度器作业,以任何你喜欢的频率刷新它。

参见dbms_scheduler在Oracle中设置调度程序作业。

注意:您可能需要使用atomic_refresh=>true来删除/插入到mv中,而不是截断/插入(如果atomic_refresh=>false,在刷新完成之前mv中将有0行)。

一个简单的例子mv创建:

create materialized view MY_MV
tablespace MY_TS
build immediate
refresh complete on demand
with primary key
as
SELECT a.foo, b.bar
from table_a a, table_b b
where a.col1 = b.col2
and a.baz='BLAH'
;

刷新调用示例:

dbms_mview.refresh('MY_MV', 'C', atomic_refresh=>true);