错得一头雾水!
create or replace procedure P_insertEvent(
v_relateid in varchar2(13), --就在这里报,后面的逻辑都是通过了测试
v_relate_type in integer,--再写成存储过程的
v_alarm_time in date,
v_alarm_way in varchar2(8),
v_callerid in varchar2(64),
v_callername in varchar2(32),
v_contactway invarchar2(64),
v_evetime in date,
v_eveplace in varchar2(64),
v_evetype in varchar2(16),
v_evelevel in varhcar2(8),
v_callid in number(10),
v_evereason in varchar2(32),
v_istest in char(1),
v_eveDescription in varchar2(128),
v_evestate in varchar2(8),
v_finishflag in number(1),
v_finishtime in time ,
v_putonrecordflag in number(1),
v_archiveflag in number(1),
v_dutyid in varchar2(16),
v_eveidout varchar2(13)) is
eid varchar2(13);
begin
select to_char(sysdate, 'yyyymmdd') ||
substr('00000' || to_char(nextID),
length('00000' || to_char(nextID)) - 4,
length('00000' || to_char(nextID)))
as eveNextID into eid from
(select to_number(nvl(max(substr(eventid,
length(eventid - 4),
length(eventid))),
'0')) + 1 as nextID
from event
where instr(eventid,
to_char(sysdate,
'yyyymmdd')) > 0);
insert into event values(eid,v_relating_eveid,v_relate_type,v_alarm_time,
v_alarm_way,v_callerid,v_callername,v_contactway,
v_evetime,v_eveplace,v_evetype,v_evelevel,
v_callid,v_evereason,v_istest,v_eveDescription,
v_evestate,v_finishflag,v_finishtime,v_putonrecordflag,
v_archiveflag,v_dutyid);
v_eveid :=eid;
commit;
exception
when others then
rollback;
end P_insertEvent;
|