大致是这样的,另外,好像可以去掉最外面的一对begin-end
---------------------------------------------------------------
CREATE OR REPLACE function SSP_InsOaCaseStep (
p_BaseDocID Integer,
p_MoveStep Integer,
p_ParaStep Integer,
p_PreStep Integer,
p_FlowDefineID Integer,
p_SendPersonID Integer,
p_ReceivePersonID Integer,
p_State Integer)
return Integer
IS
begin
begin
begin
insert TabDocState(chvBaseDocID,
intMoveStep,
intParaStep,
PreStep,
chvSendPersonID,
chvReceivePersonID,
SimplyFlow,
State)
values ( p_BaseDocID,
p_MoveStep,
p_ParaStep,
p_PreStep,
p_SendPersonID,
p_ReceivePersonID,
p_FlowDefineID,
p_State);
EXCEPTION
WHEN OTHERS THEN
rollback;
return 0;
END; update TabBasicDoc
set chvCurStep = p_MoveStep
WHERE chvID = p_BaseDocID; EXCEPTION
WHEN OTHERS THEN
rollback;
return 0;
END; commit;
return 1;
end
end
---------------------------------------------------------------
---------------------------------------------------------------
CREATE OR REPLACE function SSP_InsOaCaseStep (
p_BaseDocID Integer,
p_MoveStep Integer,
p_ParaStep Integer,
p_PreStep Integer,
p_FlowDefineID Integer,
p_SendPersonID Integer,
p_ReceivePersonID Integer,
p_State Integer)
return Integer
IS
begin
begin
begin
insert TabDocState(chvBaseDocID,
intMoveStep,
intParaStep,
PreStep,
chvSendPersonID,
chvReceivePersonID,
SimplyFlow,
State)
values ( p_BaseDocID,
p_MoveStep,
p_ParaStep,
p_PreStep,
p_SendPersonID,
p_ReceivePersonID,
p_FlowDefineID,
p_State);
EXCEPTION
WHEN OTHERS THEN
rollback;
return 0;
END; update TabBasicDoc
set chvCurStep = p_MoveStep
WHERE chvID = p_BaseDocID; EXCEPTION
WHEN OTHERS THEN
rollback;
return 0;
END; commit;
return 1;
end
end
---------------------------------------------------------------
p_BaseDocID number,
p_MoveStep number,
p_ParaStep number,
p_PreStep number,
p_FlowDefineID number,
p_SendPersonID number,
p_ReceivePersonID number,
p_State number)
AS
begin
begin
insert TabDocState(chvBaseDocID,
intMoveStep,
intParaStep,
PreStep,
chvSendPersonID,
chvReceivePersonID,
SimplyFlow,
State)
values ( p_BaseDocID,
p_MoveStep,
p_ParaStep,
p_PreStep,
p_SendPersonID,
p_ReceivePersonID,
p_FlowDefineID,
p_State);
commit;
exception
when others then
rollback;
end
begin
update TabBasicDoc
set chvCurStep = p_MoveStep WHERE chvID = p_BaseDocID;
commit;
exception
when others then
rollback;
endend
/
....
exception
when others then
flag:=0;
rollback;
end;
....