互联网服务数据库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 个回答Felix的回答

FelixFelix数据仓库工程师亚信联创科技(北京)有限公司
我在9.1中也是像pengjj兄那么做的,可以正常捕获sqlcode和sqlstate,没听说9.5有这方面的修改。foryuling定义continue的话,注意一下插入sqlcode语句的位置,如果不是在异常发生点捕获后立即执行插入,而后续有成功语句执行后,再插入表,则sqlcode已经变为0了。
软件开发 · 2009-04-16
浏览1030

回答者

Felix
数据仓库工程师亚信联创科技(北京)有限公司
擅长领域: 数据库存储灾备

Felix 最近回答过的问题

回答状态

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