互联网服务数据库sqlcode

存储过程中返回sqlcode sqlstate 的问题

set stmt = ' update zy.temp2  set c2= '||c1.name||' where   c1 = '||c1.id ;prepare prestmt from stmt;execute prestmt;set v_msg='SQL_CODE:'||char( sqlcode)||'SQL_STATE:'||char( sqlstate);如果execute prestmt 执行成功v_msg 返回值是SQL_CODE:0       ...显示全部
set stmt = ' update zy.temp2  set c2= '||c1.name||' where   c1 = '||c1.id ;
prepare prestmt from stmt;
execute prestmt;
set v_msg='SQL_CODE:'||char( sqlcode)||'SQL_STATE:'||char( sqlstate);


如果execute prestmt 执行成功v_msg 返回值是SQL_CODE:0          SQL_STATE:00000
执行错误也是SQL_CODE:0          SQL_STATE:00000 

我在测试环境中测试,如果执行错误会返回错误sqlcode,sqlstate 
我测试环境版本是8.1 生产环境是9.5 难道9.5使用上还有其它语法吗?收起
参与15

查看其它 14 个回答pengjianjun的回答

leo 和 Felix 说得没错。如果你定义的是 CONTINUE 类型的句柄,那么应该立即捕获 SQLCODE,否则其他语句一执行,SQLCODE就会发生变化了
2009-04-17
浏览1001

回答者

pengjianjun 最近回答过的问题

回答状态

  • 发布时间:2009-04-17
  • 关注会员:0 人
  • 回答浏览:1001
  • X社区推广