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

leo_wynleo_wyn商业智能工程师Security
declare continue handler for sqlexception ,sqlwarning, not found

由于错误句柄使用 "continue", 当"sqlexception ,sqlwarning, not found" 发生时,
先执行错误捕获代码(declare continue 定义的), 然后继续执行 "sqlexception ,sqlwarning, not found" 发生的代码的后面的程序, 如果程序运行成功, sqlcode 仍然为0;
系统集成 · 2009-04-15
浏览1086

回答者

leo_wyn
商业智能工程师Security

leo_wyn 最近回答过的问题

回答状态

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