Javascript 在oracle apex中每隔几分钟执行一次plsql代码
您好,我目前正在设计一个应用程序,需要保存人员的经度和纬度,但我很难想出如何每隔几分钟刷新经度和纬度,以及更新数据库并将人员的新经度和纬度写入我的数据库表 编辑: 我创建了一个过程,如下所示:Javascript 在oracle apex中每隔几分钟执行一次plsql代码,javascript,html,sql,plsql,oracle-apex,Javascript,Html,Sql,Plsql,Oracle Apex,您好,我目前正在设计一个应用程序,需要保存人员的经度和纬度,但我很难想出如何每隔几分钟刷新经度和纬度,以及更新数据库并将人员的新经度和纬度写入我的数据库表 编辑: 我创建了一个过程,如下所示: Create or replace procedure Ins_Location (P_IMU_ID IN Number, P_IMUL_LATITUDE IN NUMBER, P_IMUL_LONGITUDE IN NUMBER) is begin insert int
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;
然后我创建了一个流程,它将按照如下方式启动作业:
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:“BEGIN Ins_Location(:GLOBAL_ID,:P1_LAT,:P1_LNG);END;”是数据库对象的无效名称。如果必须定期执行某些操作,请使用
DBMS_调度程序
包-它就是为此而设计的。在您的情况下,它将调用一个包含您提到的PL/SQL代码的存储过程。如果您使用的是apex的20.2版,您可以为此使用“自动化”功能。然后在apex中实现DBMS\u调度程序
,它非常易于使用,并具有许多现成的功能。是的,我正在使用20.2,因此我将尝试了解它的工作原理,然后再与您联系,谢谢谢谢。谢谢。我必须阅读相关内容,看看是否可以使其工作。如果您有作业类型=>“存储过程”,那么您就不需要开始-结束。将作业类型更改为“PLSQL块”