解决方案 »
- oracle网友来帮帮忙吧,急~
- new_students := total_students (:major.class_id, 'N')中的:major是什么意思?
- 关于C#要返回Oracel数据集 Oracel中的包
- 通过查看数据库中的哪个试图来监控队列任务的基本情况?
- 失业第31天,散31分!
- system用户 在函数里如何使用dba_tables对象
- oracle中实现自增长字段后的并发问题
- 在存储过程中,怎么执行一个语句?
- 各位,哪里有Oracle的Document可以Down,在线等候......
- Oracle中的分页语句怎么写?
- win8.1专业版Database Upgrade Assistant的问题。
- 字符串中的数字规则替换问题
begin
delete from view_log;
insert into view_log
select * from A WHERE FLAG = 'N';
UPDATE TABLE A SET FLAG = 'Y';
COMMIT;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.put_line('Error Happened!!');
end test;--通过job调用存储过程定时执行
declare
job1 number;
begin
sys.dbms_job.submit(job => :job1,
what => 'test;',
next_date => sysdate,
interval => 'trunc(sysdate)+1'); --每天凌晨执行
commit;
end;
/
begin
delete from view_log;
insert into view_log
select * from A WHERE FLAG = 'N';
UPDATE TABLE A SET FLAG = 'Y';
COMMIT;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.put_line('Error Happened!!');
end test;--通过job调用存储过程定时执行
declare
job1 number;
begin
sys.dbms_job.submit(job => :job1,
what => 'test;',
next_date => sysdate,
interval => 'trunc(sysdate)+1'); --每天凌晨执行
commit;
end;
/
UPDATE TABLE A SET FLAG = 'Y';
忙中出错吧,把table去掉
UPDATE A SET FLAG = 'Y';
有个建议: insert into view_log select * from A WHERE FLAG = 'N';
UPDATE TABLE A SET FLAG = 'Y';以上两句,改成如下,原因1.减小 undo 和 redo 。 原因2.以防中间有新数据写入 A 表,造成 view_log 数据不完整
insert into view_log select * from A WHERE FLAG = 'N';
UPDATE TABLE A SET FLAG = 'Y' where ID in (select ID from view_log )
4楼说的可行,防止中间新写入数据,导致数据不一致create or replace procedure test
is
begin
delete from view_log;
insert into view_log
select * from A WHERE FLAG = 'N';
UPDATE A SET FLAG = 'Y' where ID in (select ID from view_log );
COMMIT;
EXCEPTION WHEN OTHERS THEN
DBMS_OUTPUT.put_line('Error Happened!!');
end test;
执行时做个计划任务就行了,定时每天执行