Oracle内置函数SQLCODE和SQLERRM是特别用在OTHERS处理器中,分别用来返回Oracle的错误代码和错误消息
SQLCODE:数据库操作的返回码,其中0--成功;<0--失败;100--没有检索到数据 ;+1--用户自定义异常
SQLERRM: 函数返回指定错误代码的错误信息。
一个Oracle的错误消息最多只能包含512个字节的错误代码。如果没有异常被触发,则SQLCODE返回0,SQLERRM返回“ORA-0000:normal, successful completion”。
SQL%ROWCOUNT: 返回最相邻的前一个DML语句影响的行数.select:查询的行数;delete:删除的行数;update:修改的行数
1,对应SQLSERVER数据库的内置函数
SQLCODE <=> @@ERROR
SQLERRM <=> ERROR_MESSAGE()
SQL%ROWCOUNT<=>@@ROWCOUNT
2,游标状态
MicroSoft SQL SERVER @@fetch_status
其值有以下三种,分别表示三种不同含义:【返回类型integer】
0 FETCH 语句成功
-1 FETCH 语句失败或此行不在结果集中
-2 被提取的行不存在
@@fetch_status值的改变是通过fetch next from实现的“FETCH NEXT FROM Cursor”;
Oracle
Cursor%found 游标有数据
Cursor%Notfound 游标无数据
3.update对SQL%ROWCOUNT的影响:
测试特殊情况:更新新旧值相等,仍记为修改了1行
BEGIN
UPDATE test
SET ecczhh = 1
WHERE ecczhm = '001512072733'
AND ecczhh = 1;
IF SQL%rowCOUNT < 1 THEN
dbms_output.put_line(0);
ELSE
dbms_output.put_line(1);
END IF;
END;
OUTPUT : 1