一个事务的简单问题。如何判断一条语句成功执行。
我写一个存储过程
如何判断一条语句成功执行。
如 :update
我好RollBack;
问题点数:0、回复次数:5Top
1 楼w_tsinghua()回复于 2003-06-03 16:19:46 得分 0
用exception,例如
DECLARE
BEGIN
BEGIN -- sub-block begins
update yourtable set col1='test' where --你的update语句
COMMIT;
EXIT;
EXCEPTION
WHEN others THEN
ROLLBACK;
END; -- sub-block ends
END;
Top
2 楼armu80830(此情可待)回复于 2003-06-03 16:23:04 得分 0
我写了个例子,执行成功返回T,失败返回F
CREATE OR REPLACE PROCEDURE "INSERTAREAS" (
tareaid IN VARCHAR2,
tareaname IN VARCHAR2,
tremark IN VARCHAR2,
execresult OUT VARCHAR2
)
AS
BEGIN
INSERT INTO areas
(areaid, areaname, remark
)
VALUES (to_number(tareaid), tareaname, tremark
);
execresult := 'T';
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
ROLLBACK;
execresult := 'F' || SQLCODE;
END "INSERTAREAS";
/Top
3 楼gogo168(不懂)回复于 2003-06-03 16:25:32 得分 0
有没有象MSSQL中
的 @@error属性?
Top
4 楼gogo168(不懂)回复于 2003-06-03 16:26:56 得分 0
用execption
很麻烦Top
5 楼li_lip()回复于 2003-06-03 18:50:39 得分 0
写个例子:
INSERT INTO areas
(areaid, areaname, remark
)
VALUES (to_number(tareaid), tareaname, tremark
);
IF SQL%NOTFOUND THEN
RAISE_APPLICATION_ERROR(-20000,'...');
END IF;Top



