linu连接oracle数据库

上传人:lcm****20 文档编号:44919054 上传时间:2018-06-14 格式:DOCX 页数:6 大小:30.08KB
返回 下载 相关 举报
linu连接oracle数据库_第1页
第1页 / 共6页
linu连接oracle数据库_第2页
第2页 / 共6页
linu连接oracle数据库_第3页
第3页 / 共6页
linu连接oracle数据库_第4页
第4页 / 共6页
linu连接oracle数据库_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《linu连接oracle数据库》由会员分享,可在线阅读,更多相关《linu连接oracle数据库(6页珍藏版)》请在金锄头文库上搜索。

1、源代码 C+代码 1. #include 2. #include 3. #include “occi.h“ 4. using namespace oracle:occi; 5. using namespace std; 6. 7. int main() 8. 9. string usr=“sys“; 10. string pwd=“orcl“; 11. string SID=“ORCL“; /注意大小写 12. string date; 13. 14. Environment *env=Environment:createEnvironment(Environment:OBJECT); 15.

2、 Connection *conn= env-createConnection(usr,pwd,SID);/all strings 16. if(conn) 17. coutcreateStatement(); 22. string sSQL = “select to_char(sysdate,yyyy-mm-dd hh24:mi:ss) from dual“; 23. stmt-setSQL(sSQL); 24. 25. 26. ResultSet *rs = stmt-executeQuery(); 27. if(rs-next() 28. 29. date = rs-getString(

3、1); 30. 31. 32. coutterminateConnection(conn); 35. Environment:terminateEnvironment(env); 36. 37. return 0; 38. 39. 我 linux 上安装 oracle 路径:/u01/app/oracle/product/10.2.0/db_1 编译命令:g+ -o conn -L/u01/app/oracle/product/10.2.0/db_1/lib -L/u01/oracle/product/10.2.0/db_1/rdbms/lib conn_db.cpp 问题一:编译时报如下错误

4、: Shell 代码 1. oraclelocalhost demo$ g+ -o conn -L/u01/app/oracle/product/10.2.0/db_1/lib -L/u01/oracle/product/10.2.0/db_1/rdbms/lib conn_db.cpp 2. g+: g+: No such file or directory 3. conn_db.cpp:3:18: error: occi.h: No such file or directory 4. conn_db.cpp:4: error: oracle has not been declared 5.

5、 conn_db.cpp:4: error: occi is not a namespace-name 6. conn_db.cpp:4: error: expected namespace-name before ; token 7. conn_db.cpp: In function int main(): 8. conn_db.cpp:14: error: Environment was not declared in this scope 9. conn_db.cpp:14: error: env was not declared in this scope 10.conn_db.cpp

6、:14: error: Environment is not a class or namespace 11.conn_db.cpp:14: error: Environment is not a class or namespace 12.conn_db.cpp:15: error: Connection was not declared in this scope 13.conn_db.cpp:15: error: conn was not declared in this scope 14.conn_db.cpp:21: error: Statement was not declared

7、 in this scope 15.conn_db.cpp:21: error: stmt was not declared in this scope 16.conn_db.cpp:26: error: ResultSet was not declared in this scope 17.conn_db.cpp:26: error: rs was not declared in this scope 18.conn_db.cpp:35: error: Environment is not a class or namespace 19. 解决:编译时没有引入 OCCI 库文件路径(orac

8、le 安装时候这个库已经附带装好了)路径:/u01/app/oracle/product/10.2.0/db_1/rdbms/public编译命令增加 OCCI 库:g+ -o conn -I/u01/app/oracle/product/10.2.0/db_1/rdbms/public -L/opt/app/oracle/product/10.2.0/db_1/lib -L/opt/oracle/product/10.2.0/db_1/rdbms/lib conn_db.cpp 问题 2:找不到对应函数 Shell 代码 1. oraclelocalhost demo$ g+ -o conn

9、 -I/home/oracle/oracle/include-L/opt/app/oracle/product/10.2.0/db_1/lib -L/opt/oracle/product/10.2.0/db_1/rdbms/lib conn_db.cpp -Wall -O -g 2. /tmp/cclFs9xq.o: In function main: 3. /home/oracle/oracle/demo/conn_db.cpp:14: undefined reference to oracle:occi:Environment:createEnvironment(oracle:occi:E

10、nvironment:Mode, void*, void* (*)(void*, unsigned int), void* (*)(void*, void*, unsigned int), void (*)(void*, void*) 4. /home/oracle/oracle/demo/conn_db.cpp:35: undefined reference to oracle:occi:Environment:terminateEnvironment(oracle:occi:Environment*) 5. collect2: ld returned 1 exit status 6. 解决

11、:增加 libocci.so 和 libclntsh.so(它们既为 OCCI 库文件)指定编译 修改后的编译命令: g+ -o conn -I/u01/app/oracle/product/10.2.0/db_1/rdbms/public -L/app/oracle/product/10.2.0/db_1/lib -L/u01/app/oracle/product/10.2.0/db_1/rdbms/lib -lclntsh -locci conn_db.cpp另外可能在引入-lclntsh -locci 编译时可能会报找不到以下错误: Shell 代码 1. oraclelocalhost

12、 demo$ g+ -o conn -I/u01/app/oracle/product/10.2.0/db_1/rdbms/public -L/app/oracle/product/10.2.0/db_1/lib -L/u01/app/oracle/product/10.2.0/db_1/rdbms/lib -lclntsh -locci conn_db.cpp2. /usr/bin/ld: cannot find -lclntsh 3. collect2: ld returned 1 exit status 4. oraclelocalhost demo$ 5. 解决:这是因为没有找到 li

13、bclntsh.so 和 libocci.so 链接库,将 libclntsh.so 和 libocci.so 拷贝到/usr/lib 目录下就可以了 补充:完成后改写环境变量:vi ./bash_profile问题三:occi 在 linux 编译运行时报 libstdc+.so.6 冲突的问题 Java 代码 1. oraclelocalhost demo$ g+ -o conn -I/u01/app/oracle/product/10.2.0/db_1/rdbms/public -L/app/oracle/product/10.2.0/db_1/lib -L/u01/app/oracle

14、/product/10.2.0/db_1/rdbms/lib -lclntsh -locci conn_db.cpp 2. /usr/bin/ld: warning: libstdc+.so.5, needed by /opt/app/oracle/product/10.2.0/db_1/lib/libocci.so, may conflict with libstdc+.so.6 解决:OCCI 库在 linux 编译的时候,由于 linux 版本太高,会提示以上情况,实际上,在大多数 linux 系统上,还保留有 libstdc+5 的库,自己手工在编译的时候加上去就好了 修改后的编译命令

15、:g+ -o conn -I/u01/app/oracle/product/10.2.0/db_1/rdbms/public -L/app/oracle/product/10.2.0/db_1/lib -L/u01/app/oracle/product/10.2.0/db_1/rdbms/lib -lclntsh -locci /usr/lib/libstdc+.so.5 conn_db.cpp 补充:编译之前将数据库监听开启在 oracle 的安装目录中找到 lsnrctl 执行文件,并运行它(监听开启)编译通过后执行结果输出: Shell 代码 1. oraclelocalhost demo$ g+ -o conn -I/u01/app/oracle/product/10.2.0/db_1/rdbms/public -L/app/oracle/product/10.2.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号