首页 > 数据库技术 > 详细

oracle 语句执行时报terminate called after throwing an instance of 'otl_tmpl_exception<otl_exc, otl_conn, otl_cur>'解决

时间:2021-04-14 15:28:37      阅读:30      评论:0      收藏:0      [点我收藏+]

  在一次oracle操作程序调试过程中发现当每次执行到同一个select语句时程序就会抛出异常terminate called after throwing an instance of ‘otl_tmpl_exception<otl_exc, otl_conn, otl_cur>‘,并终止。为此我在网络上搜索该异常的处理方法:

  网络上的解释及处理方式:

  在linux下用c++连接mysql或oracle数据库时,若频繁调用otlstream构造函数,发生terminate called after throwing an instance of ‘otl_tmpl_exception<otl_exc, otl_conn, otl_cur>‘的问题,解决方法:

  在调用otl_connect类的void rlogon(const char* connect_str, const int aauto_commit=0)函数时,将aauto_commit的值置为1。

  例:
  db.rlogon("DSN=my_db;UID=sa;PWD=tiger",1);
  其中db为otl_connect类的对象。
  注意:第二参数aauto_commit设置为1,表示数据库事务自动提交;设置为0,表示数据库事务非自动提交。
 
  我遇到的情况跟该网上说明不一样,我是构造第二次otl_stream的时候就出现了该错误。
  技术分享图片

 

    最后检查语句发现第二次构建的select语句的where子句中字段值的类型不匹配,即图中org_code类型不匹配,字段值类型本应是int类,而出错的select中的却给成了字符类型

  改正后测试,通过。

  涨知识:oracle的where子句类型不匹配也会抛出terminate called after throwing an instance of ‘otl_tmpl_exception<otl_exc, otl_conn, otl_cur>‘异常。

  
  

 

 

oracle 语句执行时报terminate called after throwing an instance of 'otl_tmpl_exception<otl_exc, otl_conn, otl_cur>'解决

原文:https://www.cnblogs.com/codebeep/p/14657108.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!