查询和显示结果来自Oracle数据库的每隔“X”分钟数

时间:2011-07-17 00:07:53

标签: php python xml oracle plsql

有没有办法可以查询Oracle 10g数据库,例如每3分钟在动态刷新的html文件中显示结果?

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

我使用Oracle DB进行基本用户访问...没有管理员喜欢。但我确实可以访问服务器,并且具有PHP,PL / SQL和HTML方面的经验。也许我必须进入像Python这样的低级编程语言?我有点被困在这里。任何形式的帮助将不胜感激!

2 个答案:

答案 0 :(得分:2)

您还可以使用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/

答案 1 :(得分:1)

设置materialized view(mv),将您的应用指向此mv,然后设置调度程序作业,以便以您喜欢的频率刷新它。

有关在Oracle中设置调度程序作业的信息,请参阅dbms_scheduler

一个注意事项:你可能想做一个atomic_refresh => true来删除/插入mv而不是truncate / insert(如果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);