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 }
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加密
