视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Linux下OTL连接Oracle数据库
2020-11-09 10:42:20 责编:小采
文档


上面是一段很挫的OTL连接Oracle数据库代码,只有连接没有其它操作。但是我在编译时遇到了些问题:会产生一坨错误提示,但其实真正

Linux下OTL连接Oracle数据库

#include
using namespace std;

#define OTL_ORA10G //不可缺少
#include "otlv4.h" //注意OTL头文件位置

otl_connect db;

int main()
{
otl_connect::otl_initialize();
try
{
db.rlogon("user/passwd"); //连接本机数据库
if(db.connected)
cout<<"Connected to Database"< }
catch(otl_exception& p)
{
cerr< cerr< cerr< cerr< }

db.logoff();
return 0;
}

上面是一段很挫的OTL连接Oracle数据库代码,,只有连接没有其它操作。但是我在编译时遇到了些问题:会产生一坨错误提示,但其实真正问题不多。具体如下:(PS:我的Oracle 10g已经正确的安装在本地)

1. 首先是提示找不到"oci.h", 这个文件其实位于$ORACLE_HOME/rdbms/public下,解决方法有多种,可以g++编译时使用"-I"头文件路径,我是把路径添加到了CPLUS_INCLUDE_PATH这个环境变量中

2.继续编译会有如下错误提示

undefined reference to `OCIServerDetach'

undefined reference to `OCIHandleFree'

这是因为没有连接libclntsh.so这个库文件,这个文件位于$ORACLE_HOME/lib下,知道原因解决方法就很简单了,命令如下

g++ otl_example.cpp -lclntsh -L$ORACLE_HOME/lib

3.编译没有错误了 ,运行则提示“error while loading shared libraries: libclntsh.so.10.1: cannot open shared object file: No such file or directory”

解决方法:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

至此,这个小程序就可以正常运行了。(我的ORACLE_HOME:/oracle/oracle/product/10.2.0/db_1)

推荐阅读:

OTL之Oracle开发总结

RMAN备份策略制定参考内容

RMAN备份学习笔记

Oracle数据库备份加密 RMAN加密

下载本文
显示全文
专题