在oracle apex中每隔几分钟执行一次plsql代码

Executing plsql code every few minutes in oracle apex

您好,我目前正在设计一个需要保存人员经度和纬度的应用程序,但我无法弄清楚如何每隔几分钟刷新一次经度和纬度以及如何更新数据库和编写新人员纬度和经度进入我的数据库 table.

编辑:

我创建了一个程序如下:

Create or replace procedure Ins_Location 
    (P_IMU_ID IN Number,
    P_IMUL_LATITUDE IN NUMBER,
    P_IMUL_LONGITUDE IN NUMBER)
is
begin
    insert into i_mobile_user_locations
        (IMU_ID,
        IMUL_LATITUDE,
        IMUL_LONGITUDE)
        VALUES
            (P_IMU_ID,
            P_IMUL_LATITUDE,
            P_IMUL_LONGITUDE);
end;

然后我创建了一个进程来启动作业,如下所示:

Begin
    DBMS_SCHEDULER.CREATE_JOB(
        job_name        => 'ins_location',
        job_type        => 'STORED_PROCEDURE',
        job_action      => 'BEGIN Ins_Location(:GLOBAL_ID,:P1_LAT,:P1_LNG); END;',
        start_Date      => systimestamp,
        repeat_interval => 'freq = minutely; interval = 5',
        enabled         => true,
        comments        => 'My Location insert'
    );
end;

但每次我尝试执行该过程时,它都会给我这个错误: ORA-27452: “开始 Ins_Location(:GLOBAL_ID,:P1_LAT,:P1_LNG); 结束;”是数据库对象的无效名称。

如果您必须周期性地做某事,那么使用DBMS_SCHEDULER包——它就是为这样的目的而设计的。它将 - 在您的情况下 - 调用包含您提到的 PL/SQL 代码的存储过程。

如果您使用的是 20.2 版的 apex,则可以为此使用“自动化”功能。然后是 DBMS_SCHEDULER 在 apex 中的实现,它非常易于使用并且具有许多开箱即用的功能。