[英]Connecting c++ program with Oracle
我正在尝试将C ++程序连接到Oracle数据库(12.2)。
我的C ++程序是(我在ubuntu中使用g ++编译器),
#include <occi.h>
#include <iostream>
using namespace std;
int main()
{ oracle::occi::Environment *env = oracle::occi::Environment::createEnvironment();
oracle::occi::Connection *conn = env->createConnection("bsk", "oraclepass");
env->terminateConnection(conn);
oracle::occi::Environment::terminateEnvironment(env);
}
我遇到了错误
undefined reference to `oracle::occi::Environment::createEnvironment(oracle::occi::Environment::Mode, void*, void* (*)(void*, unsigned long), void* (*)(void*, void*, unsigned long), void (*)(void*, void*))'
Employees.cpp:(.text+0x169): undefined reference to `oracle::occi::Environment::terminateEnvironment(oracle::occi::Environment*)'
collect2: error: ld returned 1 exit status
我是数据库连接的新手。 你能帮我吗?
在Oracle网站上,这是一个有效的示例:
const string userName = "HR";
const string password = "password";
const string connectString = "";
Environment *env = Environment::createEnvironment();
{
Connection *conn = env->createConnection(userName, password, connectString);
Statement *stmt = conn->createStatement("SELECT blobcol FROM mytable");
ResultSet *rs = stmt->executeQuery();
rs->next();
Blob b = rs->getBlob(1);
cout << "Length of BLOB : " << b.length();
...
stmt->closeResultSet(rs);
conn->terminateStatement(stmt);
env->terminateConnection(conn);
}
Environment::terminateEnvironment(env);
您的代码似乎朝着正确的方向发展。 因此,似乎缺少某些库!
确保这些库已安装在您的计算机上。
试试这个代替
$ g++ sample.C -I/opt/oracle/11.0.2/rdbms/public/ -L/opt/oracle/11.0.2/lib/ -locci -lclntsh
更换/opt/oracle/11.0.2
与Oracle home路径,它应该工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.