上面是一段很挫的OTL連接Oracle數(shù)據(jù)庫代碼,只有連接沒有其它操作。但是我在編譯時遇到了些問題:會產(chǎn)生一坨錯誤提示,但其實真正
Linux下OTL連接Oracle數(shù)據(jù)庫
#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"); //連接本機數(shù)據(jù)庫
if(db.connected)
cout<<"Connected to Database"<
catch(otl_exception& p)
{
cerr<
db.logoff();
return 0;
}
上面是一段很挫的OTL連接Oracle數(shù)據(jù)庫代碼,,只有連接沒有其它操作。但是我在編譯時遇到了些問題:會產(chǎn)生一坨錯誤提示,但其實真正問題不多。具體如下:(PS:我的Oracle 10g已經(jīng)正確的安裝在本地)
1. 首先是提示找不到"oci.h", 這個文件其實位于$ORACLE_HOME/rdbms/public下,解決方法有多種,可以g++編譯時使用"-I"頭文件路徑,我是把路徑添加到了CPLUS_INCLUDE_PATH這個環(huán)境變量中
2.繼續(xù)編譯會有如下錯誤提示
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開發(fā)總結
RMAN備份策略制定參考內(nèi)容
RMAN備份學習筆記
Oracle數(shù)據(jù)庫備份加密 RMAN加密
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com