向各位高手问个问题:
表:
CREATE TABLE SMS_MSGBATCHSENDLOGMAIN
(
SUBSCRIBEID VARCHAR2(32 BYTE) NOT NULL,
BATCHSENDID VARCHAR2(32 BYTE) NOT NULL,
MSGDATE DATE,
SUMMARY VARCHAR2(80 BYTE),
CONTENT CLOB NOT NULL,
AUTHORIZEFLAG NUMBER(1) DEFAULT (0) NOT NULL,
SENDPOINT DATE,
AUTHORIZEDATE DATE,
QUEUEFLAG NUMBER(1) DEFAULT (0) NOT NULL
)
create or replace procedure proc_sms_1 as
begin
update sms_1
set queueflag = 1
where sendpoint = trunc(sysdate, 'mi')
and queueflag <> 1 ;
commit;
end;
begin
sys.dbms_job.submit(
job => :job,
what => 'proc_sms_1;',
next_date => trunc(sysdate, 'mi') + 1/(24*60),
interval => 'trunc(sysdate, ''mi'') + 1/(24*60)'
);
end;这是个定时调用存储过程的,我要当时间为SENDPOINT字段里的时间时,调用上面的存储过程,将QUEUEFLAG值改为1,
请问我上面的代码该怎么改了?回复必给分,谢谢..
表:
CREATE TABLE SMS_MSGBATCHSENDLOGMAIN
(
SUBSCRIBEID VARCHAR2(32 BYTE) NOT NULL,
BATCHSENDID VARCHAR2(32 BYTE) NOT NULL,
MSGDATE DATE,
SUMMARY VARCHAR2(80 BYTE),
CONTENT CLOB NOT NULL,
AUTHORIZEFLAG NUMBER(1) DEFAULT (0) NOT NULL,
SENDPOINT DATE,
AUTHORIZEDATE DATE,
QUEUEFLAG NUMBER(1) DEFAULT (0) NOT NULL
)
create or replace procedure proc_sms_1 as
begin
update sms_1
set queueflag = 1
where sendpoint = trunc(sysdate, 'mi')
and queueflag <> 1 ;
commit;
end;
begin
sys.dbms_job.submit(
job => :job,
what => 'proc_sms_1;',
next_date => trunc(sysdate, 'mi') + 1/(24*60),
interval => 'trunc(sysdate, ''mi'') + 1/(24*60)'
);
end;这是个定时调用存储过程的,我要当时间为SENDPOINT字段里的时间时,调用上面的存储过程,将QUEUEFLAG值改为1,
请问我上面的代码该怎么改了?回复必给分,谢谢..
解决方案 »
- 大家帮下忙,看看这样得记录怎么取!
- 关于使用dbca创建数据库问题
- oracle中如何把查询结果导出到excel里面?
- ORACLE 11環境
- dbca 问题
- 同样的程序在不同的操作系统下连接oracle速度的不同反应!
- 9i创建用户时出现“ORA-01031:Insufficient Privilegse ”。
- 我的存储过程里使用了远程SQL的表,在与远程SQL连接断开后,重新连接则要编译存储过程,为什么?如何解决?请指教!
- PRO*C开发的基于ORACLE8.0.5的程序如何在ORACLE8.1.7下运行?寻求改动量最小的解决办法(NT环境,UNIX环境下已经有解决办法了)
- 有关左连接的问题,十分紧急,不胜感激!!
- 用oracle触发器对记录表增加记录的问题
- OCI程序向oracle表中插入数据导致引起表的锁,从而程序停止执行的问题(高分求)
sys.dbms_job.submit(
job => :job,
what => 'proc_sms_1;',
next_date => trunc(sysdate, 'mi') + 1/(24*60),
interval => 'trunc(sysdate, ''mi'') + 1/(24*60)'
);
2.是哪部分时间相同?是年月日时分秒全相同时调用还是只要分钟相同?因为看你写的存储过程,对上面这几个问题处理的模糊。
表为:
CREATE TABLE SMS_1
(
BATCHSENDID VARCHAR2(32 BYTE) NOT NULL, //主键
CONTENT CLOB NOT NULL, //内容
SENDPOINT DATE, //比较的时间,一般为当前时间之后的时间;
QUEUEFLAG NUMBER(1) DEFAULT (0) NOT NULL
) create or replace procedure proc_sms_1 as
begin
update SMS_1
set QUEUEFLAG = 1
where SENDPOINT = trunc(sysdate, 'mi')
and queueflag <> 1 ;
commit;
end;
begin
sys.dbms_job.submit(
job => :job,
what => 'proc_sms_1;',
next_date => trunc(sysdate, 'mi') + 1/(24*60),
interval => 'trunc(sysdate, ''mi'') + 1/(24*60)'
);
end;
系统时间为SMS_1表里的sendpoint字段,时间只比较年月日,没有时分移的,谢谢..
begin
update SMS_1
set QUEUEFLAG = 1
where trunc(SENDPOINT, 'mi') = trunc(sysdate, 'mi')
and queueflag <> 1 ;
commit;
end;