环境条件
1 ORACLE 11.2.0.4版本数据库
2 NETBEANS IDE 8.1
3 JDK 1.8
4 开发包和LIBS
Instant Client Package - SDK: Additional header files and an examplemakefile for developing Oracle applications with Instant Client
instantclient-sdk-linux.x64-11.2.0.4.0.zip (643,089 bytes) (cksum - 3927039586) |
Instant Client Package - Basic: All files required to run OCI, OCCI, andJDBC-OCI applications
instantclient-basic-linux.x64-11.2.0.4.0.zip (60,704,657 bytes) (cksum - 41267059) |
5 WINDOS XMANGER 4.0 Xmanager - Passive
6 LINUX 中文版本
[oracle@svr3 instantclient_11_2]cat/etc/issue
CentOS release 6.4 (Final)
Kernel \r on an \m
1 数据库已经安装并运行良好 虽然同一台虚拟机上
2 NETBEANS IDE8.1 FOR LINUX C++
/u01/netbean/bin
[oracle@svr3 bin]ll
总用量 2.3M
-rwxr-xr-x. 1 root root 7.7K 10月 23 2015netbeans
-rw-r--r--. 1 root root 643K 10月 23 2015netbeans.exe
-rw-r--r--. 1 root root 1.6M 10月 23 2015netbeans64.exe
3 JDK
[oracle@svr3 bin]java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build25.91-b14, mixed mode)
安装在/usr/java/jdk1.8.0_91/jre/bin/
4开发包和LIBS
LIBS: instantclient-basic-linux.x64-11.2.0.4.0.zip
在WINDOS解压好了后上传到 /u01/netbean/OCCI/instantclient_11_2
-rw-r--r--. 1 root root 25K 5月 17 15:41 adrci
-rw-r--r--. 1 root root 439 5月 17 15:41 BASIC_README
-rw-r--r--. 1 root root 47K 5月 17 15:41 genezi
-rw-r--r--. 1 root root 7.7M 5月 17 15:41 libnnz11.so
-rw-r--r--. 1 root root 1.9M 5月 17 15:41 libocci.so
-rw-r--r--. 1 root root 52M 5月 17 15:41 libclntsh.so.11.1
-rw-r--r--. 1 root root 162K 5月 17 15:41 libocijdbc11.so
-rw-r--r--. 1 root root 2.0M 5月 17 15:41 ojdbc5.jar
-rw-r--r--. 1 root root 2.7M 5月 17 15:41 ojdbc6.jar
-rw-r--r--. 1 root root 188K 5月 17 15:41 uidrvci
-rw-r--r--. 1 root root 66K 5月 17 15:41 xstreams.jar
-rw-r--r--. 1 root root 114M 5月 17 15:41 libociei.so
drwxr-xr-x. 4 root root 4.0K 5月 17 15:41 sdk
-rw-r--r--. 1 root root 1.5M 5月 17 15:42 libsqlplus.so
-rw-r--r--. 1 root root 1.5M 5月 17 15:42 libsqlplusic.so
Include
instantclient-sdk-linux.x64-11.2.0.4.0.zip 同样解压好了后上传到
[oracle@svr3 instantclient_11_2]pwd
/u01/netbean/OCCI/instantclient_11_2
[oracle@svr3 instantclient_11_2]cd sdk/
[oracle@svr3 sdk]ll
总用量 312K
drwxr-xr-x. 2 root root 4.0K 5月 17 15:41 demo
drwxr-xr-x. 2 root root 4.0K 5月 17 15:41 include
-rw-r--r--. 1 root root 869 5月 17 15:41 ott
-rw-r--r--. 1 root root 295K 5月 17 15:41 ottclasses.zip
-rw-r--r--. 1 root root 435 5月 17 15:41 SDK_README
配置环境
#c++ occi
exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/u01/netbean/OCCI/instantclient_11_2
export DISPLAY=192.168.0.67:0.0
OK 这样运行NETBEANS后 就把图形界面导在WINDOWS下了,当然你得先开启Xmanager– Passive来接受
然后运行个HELLO WORD 来测试下NETBEANS C++ 运行环境
http://blog.csdn.net/ZengMuAnSha/article/details/5826949
关于LINUX C++安装可以看看 http://blog.csdn.net/ZengMuAnSha/article/details/8141666
然后呢我们得把头文件和LIBS添加到NETBEAN环境中
它在文件->项目属性中
我们把INCLUDE文件添加
添加LIBS 在连接器当中
我们把那个LIBOCCI.SO.11.1 得改名否则不会显示出来的. 要添加两个库
再然后呢就是输入代码
/*
* Tochange this license header, choose License Headers in Project Properties.
* Tochange this template file, choose Tools | Templates
*and open the template in the editor.
*/
/*
*File: main.cpp
*Author: oracle
*
*Created on May 12, 2016, 6:30 PM
*/
#include
#define LINUXOCCI //避免函数重定义错误
#include
#include
using namespace std;
using namespace oracle::occi;
intmain(void)
{
Environment *env;
Connection *conn;
Statement *stmt;
//build a connection
string struser("shark");
string strpwd("SX_@1893-&x");
string strconn_string("192.168.1.3:1521/orcl");
env= Environment::createEnvironment (Environment::OBJECT);
conn =env->createConnection(struser, strpwd, strconn_string);
/ * con =env->createConnection (user, passwd, db);*/
if( NULL != conn)
cout << "connsuccess" << endl;
else
cout << "connfailed" < //execute sql statement string strsql("select tr_no,tr_mer_no from trade_record_hist"); stmt =conn->createStatement(strsql); ResultSet *rset =stmt->executeQuery(); while(rset->next()){ string tr_no = rset->getString(1); string tr_mer_no =rset->getString(2); cout<<"tr_no="< } //close resourses stmt->closeResultSet(rset); conn->terminateStatement(stmt); env->terminateConnection(conn); Environment::terminateEnvironment(env); return 0; } 我在WIN7上 IDE最大化的 菜单无法稳定下来. 构建完了后它IDE 会把项目放在/HOME/ORACLE目录下 运行时候报错 terminate called after throwing an instanceof 'oracle::occi::SQLException' what(): ORA-12154: TNS: 无法解析指定的连接标识符 运行 FINISHED; Aborted; 核心已转储; 实时: 140ms; 用户: 10ms; 系统: 10ms 监听和TNS配置都好好的 [oracle@svr3 sdk]lsnrctl status LSNRCTL for Linux: Version 11.2.0.4.0 -Production on 17-5月 -2016 17:58:51 Copyright (c) 1991, 2013, Oracle. All rights reserved. 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) LISTENER 的 STATUS ------------------------ 别名 LISTENER 版本 TNSLSNRfor Linux: Version 11.2.0.4.0 - Production 启动日期 17-5月 -201611:22:29 正常运行时间 0 天 6 小时 36 分 21 秒 跟踪级别 off 安全性 ON: LocalOS Authentication SNMP OFF 监听程序参数文件 /u01/app/oracle/product/11.2.0.4/db1/network/admin/listener.ora 监听程序日志文件 /u01/app/oracle/diag/tnslsnr/svr3/listener/alert/log.xml 监听端点概要... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.3)(PORT=1521))) 服务摘要.. 服务 "orcl" 包含 1 个实例。 实例 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序... 命令执行成功 [oracle@svr3 sdk]cd /u01/app/oracle/product/11.2.0.4/db1/network/admin/ [oracle@svr3 admin]ll 总用量 20K -rw-r--r--. 1 oracle oinstall 381 12月 17 2012 shrept.lst drwxr-xr-x. 2 oracle oinstall 4.0K 5月 17 10:30 samples -rw-r--r--. 1 oracle oinstall 212 5月 17 11:17 sqlnet.ora -rw-r--r--. 1 oracle oinstall 549 5月 17 11:22 listener.ora -rw-r-----. 1 oracle oinstall 389 5月 17 11:27 tnsnames.ora [oracle@svr3 admin]cat tnsnames.ora # tnsnames.ora Network Configuration File:/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools. ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = svr3)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.3)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) [oracle@svr3 admin]tnsping orcl TNS Ping Utility for Linux: Version11.2.0.4.0 - Production on 17-5月 -2016 17:59:08 Copyright (c) 1997, 2013, Oracle. All rights reserved. 已使用的参数文件: /u01/app/oracle/product/11.2.0.4/db1/network/admin/sqlnet.ora 已使用 TNSNAMES 适配器来解析别名 尝试连接 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = svr3)(PORT =1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.3)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl))) OK (20 毫秒) [oracle@svr3 admin] 我们直接用TNSNAME conn = env->createConnection(struser,strpwd, "orcl"); OK!! 小功告成