存储过程单独执行没有问题,可以从dblink查出数据并添加到表里,但是放到定时任务里之后,手动执行就报错,自动执行也是一样的问题
这是存储过程
CREATE
OR REPLACE PROCEDURE sync_user_data AS BEGIN
INSERT INTO SWAN_ENT_USER ( USER_ID, NAME, STATUS, USER_CODE, CREATE_TIME, UPDATE_TIME, COKINGCOAL_ONLINE_NUM, LOGISTICS )
SELECT user_id,name,status,user_id,create_time,update_time,COKINGCOAL_ONLINE_NUM,logistics_id FROM user_msg @USERDBLINK b
WHERE NOT EXISTS ( SELECT USER_ID FROM SWAN_ENT_USER a WHERE a.user_id = b.user_id );
commit;
END sync_user_data;
这是定时任务
declare sync_user_job number;
begin
dbms_job.submit(sync_user_job,'SYNC_USER_DATA',sysdate,'SYSDATE+100/(60*24*60)');
end;
执行手动执行
begin
dbms_job.run(37);
commit;
end;
报错信息
> ORA-06550: line 1, column 773:
PLS-00103: Encountered the symbol "" when expecting one of the following:
:= . ( @ % ;
The symbol ";" was substituted for "" to continue.
ORA-06512: at "SYS.DBMS_ISCHED", line 9232
ORA-06512: at "SYS.DBMS_ISCHED", line 242
ORA-06512: at "SYS.DBMS_ISCHED", line 9217
ORA-06512: at "SYS.DBMS_IJOB", line 376
ORA-06512: at "SYS.DBMS_JOB", line 262
ORA-06512: at line 2
> 时间: 0.058s
查了半天没查出来什么问题,有没有大佬麻烦解释下