在一次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。
最后检查语句发现第二次构建的select语句的where子句中字段值的类型不匹配,即图中org_code类型不匹配,字段值类型本应是int类,而出错的select中的却给成了字符类型
改正后测试,通过。
涨知识:oracle的where子句类型不匹配也会抛出terminate called after throwing an instance of ‘otl_tmpl_exception<otl_exc, otl_conn, otl_cur>‘异常。
原文:https://www.cnblogs.com/codebeep/p/14657108.html