Я создал простую программу на C ++ для соединения Oracle OCCI с экземпляром OracleDB.
Вот код:
#include <iostream>
#include <string>
#include <occi.h>
// Connection information
const std::string userName = "admin";
const std::string password = "password";
const std::string connectString = "(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.190)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ORCLCDB)))";
// Connection enviroment
oracle::occi::Environment *env = oracle::occi::Environment::createEnvironment();
int main() {
int succes;
oracle::occi::Connection *conn = env->createConnection(userName, password, connectString);
succes = 0;
std::string id;
std::cin >> id;
std::string anw = "SELECT * FROM BESTAND WHERE ID=";
std::string cnw = anw + id;
oracle::occi::Statement *stmt = conn -> createStatement(cnw);
oracle::occi::ResultSet *rs = stmt -> executeQuery();
while (rs -> next()) {
std::string b = rs -> getString(2);
std::cout << b << std::endl;
}
stmt -> closeResultSet(rs);
conn -> terminateStatement(stmt);
env -> terminateConnection(conn);
oracle::occi::Environment::terminateEnvironment(env);
}
Я использую g ++ на CentOS-8 для compl ie программа, и программа компилируется без проблем, но когда я выполняю Программу, я получаю эту ошибку:
terminate called after throwing an instance of 'oracle::occi::SQLException'
what(): ORA-12162: TNS:net service name is incorrectly specified
У кого-нибудь есть идея, как я могу решить эту проблему.