那样肯定不行的create or replace procedure abssf as begin INSERT INTO sc_jc_rm (sc_jc_rm.bl_id, sc_jc_rm.bl_name, sc_jc_rm.fl_id, sc_jc_rm.rm_id, sc_jc_rm.rm_name, sc_jc_rm.area_rm, sc_jc_rm.rm_cat, sc_jc_rm.rm_type, sc_jc_rm.dv_id) SELECT rm.bl_id, bl.name, rm.fl_id, rm.rm_id, rm.name AS abc, bl.area_rm, rm.rm_cat, rm.rm_type, rm.dv_id FROM rm, bl WHERE rm.bl_id = bl.bl_id; commit; end; / declare job1 number; begin dbms_job.submit(job1, 'abssf;', sysdate, 'sysdate+1/86400'); commit; end;你直接这样不就好了么,另外你这个job的nextdate 是sysdate,就不知道行不行了,你可以指定一个时间
先查以下sql,看有数据不?截图看看select job from user_job where what = 'abssf;'看看是多少,再执行begin dbms_job.run(查出来的数字); end;估计是没运行,查看运行的job需要查看dba权限的表DBA_JOBS_RUNNING;你像上面执行一遍看看
create or replace procedure abssf as begin INSERT INTO sc_jc_rm (sc_jc_rm.bl_id, sc_jc_rm.bl_name, sc_jc_rm.fl_id, sc_jc_rm.rm_id, sc_jc_rm.rm_name, sc_jc_rm.area_rm, sc_jc_rm.rm_cat, sc_jc_rm.rm_type, sc_jc_rm.dv_id) SELECT rm.bl_id, bl.name, rm.fl_id, rm.rm_id, rm.name AS abc, bl.area_rm, rm.rm_cat, rm.rm_type, rm.dv_id FROM rm, bl WHERE rm.bl_id = bl.bl_id; commit; end; / declare job1 number; begin dbms_job.submit(job1, 'abssf;', sysdate, 'sysdate+1/86400'); commit; end;你就直接运行这段代码 肯定行的
我执行select * from sc_jc_rm where bl_id='0100001' and fl_id='F01' and rm_id='0119' 查询结果没有数据啊影魔大神
怎么这么多,删掉相同,重新建一个就好,而且你1秒一次,是不是太频繁了,不知道有没有关系,刚才我执行了一下一秒一次10W数据插入,把我笔记本给卡死了,没看到结果 删除job begin dbms_job.remove(85); end;
create or replace procedure abssf as begin INSERT INTO aa(id, flag) SELECT 1,2 from dual ; commit; end; / declare job1 number; begin dbms_job.submit(job1, 'abssf;', sysdate, 'sysdate+1/86400'); commit; end; 举个简单例子,测试过 没问题,不会是代码问题, 你查不到数据,你还是找找你数据的原因吧
create or replace procedure abssf as
begin
INSERT INTO sc_jc_rm
(sc_jc_rm.bl_id,
sc_jc_rm.bl_name,
sc_jc_rm.fl_id,
sc_jc_rm.rm_id,
sc_jc_rm.rm_name,
sc_jc_rm.area_rm,
sc_jc_rm.rm_cat,
sc_jc_rm.rm_type,
sc_jc_rm.dv_id)
SELECT rm.bl_id,
bl.name,
rm.fl_id,
rm.rm_id,
rm.name AS abc,
bl.area_rm,
rm.rm_cat,
rm.rm_type,
rm.dv_id
FROM rm, bl
WHERE rm.bl_id = bl.bl_id;
commit;
end;这里漏了提交,如果想查有没有执行成功,主要还是查询user_jobs,这个表的last_dte指的是上一次成功执行的时间
user_jobs里面其他字段都可以参考一下
bl.name,
rm.fl_id,
rm.rm_id,
rm.name AS abc,
bl.area_rm,
rm.rm_cat,
rm.rm_type,
rm.dv_id
FROM rm, bl
dbms_job.run(:job1);
end; 这一段是不是有问题啊 报“绑定变量 "job1" 未声明
匿名块已完成”
begin
INSERT INTO sc_jc_rm
(sc_jc_rm.bl_id,
sc_jc_rm.bl_name,
sc_jc_rm.fl_id,
sc_jc_rm.rm_id,
sc_jc_rm.rm_name,
sc_jc_rm.area_rm,
sc_jc_rm.rm_cat,
sc_jc_rm.rm_type,
sc_jc_rm.dv_id)
SELECT rm.bl_id,
bl.name,
rm.fl_id,
rm.rm_id,
rm.name AS abc,
bl.area_rm,
rm.rm_cat,
rm.rm_type,
rm.dv_id
FROM rm, bl
WHERE rm.bl_id = bl.bl_id;
commit;
end;
/
declare job1 number;
begin
dbms_job.submit(job1, 'abssf;', sysdate, 'sysdate+1/86400');
commit;
end;你直接这样不就好了么,另外你这个job的nextdate 是sysdate,就不知道行不行了,你可以指定一个时间
dbms_job.run(查出来的数字);
end;估计是没运行,查看运行的job需要查看dba权限的表DBA_JOBS_RUNNING;你像上面执行一遍看看
begin
INSERT INTO sc_jc_rm
(sc_jc_rm.bl_id,
sc_jc_rm.bl_name,
sc_jc_rm.fl_id,
sc_jc_rm.rm_id,
sc_jc_rm.rm_name,
sc_jc_rm.area_rm,
sc_jc_rm.rm_cat,
sc_jc_rm.rm_type,
sc_jc_rm.dv_id)
SELECT rm.bl_id,
bl.name,
rm.fl_id,
rm.rm_id,
rm.name AS abc,
bl.area_rm,
rm.rm_cat,
rm.rm_type,
rm.dv_id
FROM rm, bl
WHERE rm.bl_id = bl.bl_id;
commit;
end;
/
declare
job1 number;
begin
dbms_job.submit(job1, 'abssf;', sysdate, 'sysdate+1/86400');
commit;
end;你就直接运行这段代码 肯定行的
删除job begin
dbms_job.remove(85);
end;
begin
INSERT INTO aa(id, flag) SELECT 1,2 from dual ;
commit;
end;
/
declare
job1 number;
begin
dbms_job.submit(job1, 'abssf;', sysdate, 'sysdate+1/86400');
commit;
end; 举个简单例子,测试过 没问题,不会是代码问题, 你查不到数据,你还是找找你数据的原因吧