Chinaunix首页 | 论坛 | 博客
  • 博客访问: 167417
  • 博文数量: 66
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-23 15:21
文章分类

全部博文(66)

文章存档

2016年(66)

我的朋友

分类: LINUX

2016-05-06 15:39:49

检测错误和状态改变


在Pro*C/C++中,用于检测错误和状态改变的方法有如下两种:

·定义状态变量SQLSTATE或SQLCODE,在执行了SQL语句后检查它们的值,并根据需要执行相应的操作。

·使用SQLCA。SQLCA被定义在头文件sqlca.h中。

在该程序中我们使用了SQLCA进行错误检测。关于SQLCA的详细描述请参阅第八章相关说明,这里不再累述。




WHENEVER语句用于检测并处理错误,使用该语句的语法如下:

EXEC SQL WHENEVER


例子:
EXEC SQL WHENEVER NOT FOUND CONTINUE ;
EXEC SQL WHENEVER SQLWARNING CONTINUE ;
EXEC SQL WHENEVER SQLERROR CONTINUE ;



1)条件(condition)

Oracle可自动检测以下条件:

·SQLWORING:当Oracle返回警告信息时会设置sqlworn[0]为“W”。使用该条件必须定义SQLCA。

·SQLERROR:出现严重错误,此时SQLCODE为负值。

·NOT FOUND:当Oracle不能找到满足条件的记录时SQLCODE被置为+1403。



2)操作(action)

当Oracle检测到以上条件时,应用程序可以执行如下操作:

·CONTINUE:继续运行下一条语句。

·DO:执行错误处理函数。

·GOTO lable_name:转移到标号处执行。

·STOP:停止执行,回滚事务。

阅读(2052) | 评论(0) | 转发(0) |
0

上一篇:ORACLE-Proc:动态SQL

下一篇:ORACLE-Proc:SQLCA

给主人留下些什么吧!~~