Linux c++ 连接Oracle
1. 在已经安装Oracle 的linux 系统上 安装
instantclient-basic-linux.x64-11.2.0.3.0.zip
2.unzip it, copy libocci.so and libclntsh.so to /lib or /usr/lib
3. run ldconfig
4.
#include
#include
#include "occi.h"
using namespace oracle::occi;
using namespace std;
int main()
{
string usr="test";
string pwd="t2npRh6Oq5su5dBnS4VrpHIYLKv+";
string SID="test";
string date;
Environment *env=Environment::createEnvironment(Environment::OBJECT);
Connection *conn= env->createConnection(usr,pwd,SID);//all strings
if(conn)
cout<
else
cout<
Statement *stmt = conn->createStatement();
string sSQL = "select to_char(enddate,'yyyy-mm-dd hh24:mi:ss') from info";
stmt->setSQL(sSQL);
ResultSet *rs = stmt->executeQuery();
if(rs->next())
{
date = rs->getString(1);
}
cout<
env->terminateConnection(conn);
Environment::terminateEnvironment(env);
return 0;
}
compile
g++ main.cpp -o test -I/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/public/ -L/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib
Makefile
INCDIR=-I$(ORACLE_HOME)/rdbms/public/
LDFLAGS=-L$(ORACLE_HOME)/rdbms/lib/ -lclntsh -locci
COMPILECMD=g++
targets := clean
.PHONY: all clean
all:clean
@echo "run make all "
$(COMPILECMD) main.cpp -o test $(INCDIR) $(LDFLAGS)
clean:
@echo "run make clean "
rm -rf test