if应该没有问题。
你的insert语句没有写完整,从结构来看,应该是insert...select ..from..where类型,表示从某表里查询记录再插入到另一张表。如果查询出的记录数为0(即没有相关记录),则@rowcount=0,但不会报错(这是正常逻辑及语法),即@retcode=0。
所以,你的存储过程的意思是,如果插入的记录为0条(也即查出的记录为0条,不包括查询出记录但插入失败的情况),则返回100,否则返回错误。
如果还有疑问,请Hi我~
❷ db2存储过程中如何返回SQL影响的条数 如oracle中的sql%rowcount。
通过ROW_COUNT来判断.
TRUNCATETABLEoutput_debugIMMEDIATE@
BEGIN
DECLAREtempCountINT;
INSERTINTOtest_main(id,value)VALUES(3,'THREE');
GETDIAGNOSTICStempCount=ROW_COUNT;
INSERTINTOoutput_debugVALUES('插入行:'||TO_CHAR(tempCount));
INSERTINTOtest_main(id,value)
SELECT4,'FOUR'FROMSYSIBM.SYSDUMMY1UNIONALL
SELECT5,'FIVE'FROMSYSIBM.SYSDUMMY1;
GETDIAGNOSTICStempCount=ROW_COUNT;
INSERTINTOoutput_debugVALUES('插入行:'||TO_CHAR(tempCount));
updatetest_mainsetvalue='FIVE'WHEREid=5;
GETDIAGNOSTICStempCount=ROW_COUNT;
INSERTINTOoutput_debugVALUES('更新行:'||TO_CHAR(tempCount));
END@
db2=>select*fromtest_main@
IDVALUE
---------------------
1ONE
2TWO
3THREE
5FIVE
4FOUR
5条记录已选择。
db2=>select*fromoutput_debug@
DATA
--------------------------------------------------
插入行:1
插入行:2
更新行:1
3条记录已选择。
❸ 在数据库的一个函数中,看到了v_count:=sql%rowcount;请问sql%rowco是什么
晕,oracle基础语法,求最近执行sql行数
❹ 在sql中select @row=@@rowcount什么意思
将全局变量@@rowcount的值赋予局部变量@row
❺ sql更新成功后@@ROWCOUNT一定有值吗
一定有的。比如,1 0 好像还有可能是-1吧。
❻ 在sql存储过程中@@rowcount<>0是什么意思
@@rowcoun:返回受上一语句影响的行数。 @@rowcount<>0:查询返回的记录数不为零。
注释
SQL 语句可以通过下列方式设置 @@ROWCOUNT 的值:
1、将 @@ROWCOUNT 设置为受影响或被读取的行的数目。 可以将行发送到客户端,也可以不发送。
2、保留前一个语句执行中的 @@ROWCOUNT。
3、将 @@ROWCOUNT 重置为 0 但不将该值返回到客户端。
❼ oracle中的sql%rowcount是啥意思
你好,这个是oracle的语法
sql%rowcount用于记录修改的条数,必须放在一个更新或者删除等修改类语句后面执行,select语句用于查询的话无法使用,
当你执行多条修改语句时,按照sql%rowcount 之前执行的最后一条语句修改数为准。
❽ oracle PLSQL sql%rowcount的几点疑问
1. v_count1 v_coun2 只是变量而已,后面的number(3)表示精度,该变量可以接收3位数以内的数字 超过则会报错,一般情况下直接写number更好一些,反而不容易出现错误。
2.sql%rowcount用于记录修改的条数,就如你在sqlplus下执行delete from之后提示已删除xx行一样, 这个参数必须要在一个修改语句和commit之间放置,否则你就得不到正确的修改行数。
例如:
SQL> declare n number;
2 begin
3 insert into test_a select level lv from al connect by level<500;
4 n:=sql%rowcount;
5 commit;
6 dbms_output.put_line(n);
7 end;
8 /
499
PL/SQL procere successfully completed.
SQL> declare n number;
2 begin
3 insert into test_a select level lv from al connect by level<500;
4 commit;
5 n:=sql%rowcount;
6 dbms_output.put_line(n);
7 end;
8 /
0
PL/SQL procere successfully completed.
3.是最后一个select的条数。 要统计所有的,可以使用三个变量接收sql%rowcount,然后相加即可,不过貌似直接select的写法无法使用sql%rowcount。
❾ SQL存储过程 @@rowcount使用
@@ROWCOUNT是返回受上一语句影响的行数。并不是取得总记录数
可以这样写得到所有记录
把set @iRecordCount=@@rowcount 替换成
select @iRecordCount=count(*) from #t
这样就可以得到总记录数啊
❿ sql 中rowcount=0 return 什么意思
问题不详细,看整个sql语句!