CREATE PROCEDURE P_Update(in_termid IN VARCHAR2,StmntType IN VARCHAR2)
AS
BEGIN
IF StmntType = 'UpdateCS'
BEGIN
update OP_TTER_MAPPING set TXN_STATUS = 'N' where TERMINAL_ID = in_termid;
END
Else If StmntType = 'UpdateHS'
BEGIN
update OP_TTERMINALMASTER set TXN_STATUS = 'N' where TERMINAL_ID = in_termid;
END
end P_UpdateTIDStatus;
在上述过程中,如果UPDATE成功,我想知道它是成功还是失败,怎么做,我应该得到一些确认,如何修改上面的proc来获得确认?
我可以在程序中像这样设定TXN_STATUS ='N'吗?
这是正确的方式IF StmntType = 'UpdateCS'
我可以这样比较,如果它正确的v将在后端创建程序并且即将从前端执行,我多么不知道“StmntType是什么“是
提前致谢。
答案 0 :(得分:0)
sql%rowcount会给你计数,如果更新不成功那么你不用担心,它会给你错误......:P通常人们会使用这样的错误来捕获错误。希望这会有所帮助..
答案 1 :(得分:0)
请尝试以下操作,如果您收到任何编译错误,请告诉我,因为我还没有测试过。
CREATE OR REPLACE PROCEDURE P_Update(in_termid IN VARCHAR2,
StmntType IN VARCHAR2,
returnval IN OUT NUMBER)
IS
BEGIN
IF (StmntType = 'UpdateCS') then
update OP_TTER_MAPPING set TXN_STATUS = 'N'
where TERMINAL_ID = in_termid;
END IF;
returnval := 0;
EXCEPTION
WHEN OTHERS THEN
returnval := 1;
raise_application_error
(-20140
,'Exception is raised'
);
END P_Update;
当您从前端调用过程时,可以使用返回值进行检查,如果为1,则更新失败。