Pro*C语句中,sqlca.sqlerrd[2]的作用以及常见Pro*C开发语句

在执行一个Pro*C语句后,可以通过下面的语句实现保存执行成功的行数。

@rowcount = sqlca.sqlerrd[2];

使用内嵌SQL语句时的用法:
(1)、select into 数组的时候,
当记录数<数组长度时,sqlcode返回1403
当记录数=数组长度时,sqlcode返回0
当记录数>数组长度时,sqlcode返回-2112(返回太多行)
(3)、select into 数组时
首先判断sqlca.sqlerrd[2] > 0 成功 
另外判断 sqlca.sqlcode=-2112为数组越界
然后判断 sqlca.sqlcode<0 为失败
select into 单个值
首先判断 sqlca.sqlcode<0 为失败
然后判断sqlca.sqlcode=1403没有查出数据
否则成功。
(4)、select into 一个变量时,如果为NULL
如果为数值型,则不覆盖原来变量的值。
如果为字符串时,则将变量置为NULL。
出错不覆盖原来变量的值。
(5)、select sum()等计算列 into 
有符合条件的记录时 :sqlca.sqlcode=0,sqlca.sqlerrd[2]=1
没有符合条件的记录时 :sqlca.sqlcode=0,sqlca.sqlerrd[2]=1
所以要同时 select count(*) into :变量来判断有无存在的记录。
(6)、insert into 
违反唯一约束条件 sqlca.sqlcode=-1
(7) 对于oracle数据库中date型字段,select 时使用to_char,
insert 时使用 to_date()。 

说明:

sqlca.sqlerrd[2]当sql语句成功时,保存当前sql语句处理的行数.
对于execute,insert,update,delete,select into反映成功处理的函数
在open语句执行时,sqlerrd[2]置为0,在fetch后增值.

转载于:https://www.cnblogs.com/bob-John/archive/2012/12/17/2821481.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值