103、Pro C 连接Oracle数据库和问题解决

来源:互联网 发布:tcp端口号 不够 编辑:程序博客网 时间:2024/06/05 20:21

系统环境:
oracle11g     linux 4.0企业版 gcc 3.4.6

前提:
oracle数据库安装完毕,与oracle相关环境变量已经设置完毕。

1.登陆系统,用proc命令测试环境,提示错误信息:
proc: error while loading shared libraries: libclntsh.so.11.1: cannot open shared object file: No such file or directory


2.切换root用户,修改/etc/profile文件,添加代码如下:
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/local/lib;
export LD_LIBRARY_PATH


3.切换oracle用户,加载profile文件。执行命令source /etc/profile,再执行proc查看


4.修改/$ORACLE_HOME/precomp/admin/pcscfg.cfg文件,设置proc编译选项,添加配置
code=cpp
cpp_suffix=cc
parse=none
SQLCHECK=SEMANTICS


5.切换oracle安装目录下,新建works目录,新建数据库连接文件conn.pc

6.编写conn脚本,内容如下:

7.用proc命令编译conn.pc文件,编译成功


8.用g++ conn.cc命令编译cc文件,提示conn.cc:146:19: sqlca.h: No such file or directory错误。


9.-I 添加sqlca.h头文件,继续编译,提示错误:
/tmp/ccvOpDOS.o(.text+0x293): In function `main':
: undefined reference to `sqlcxt'
collect2: ld returned 1 exit status


10.添加连接库再编译,提示成功


11.执行conn文件,连接数据库。提示数据库无效。

12.启动数据库


启动监听进程


13.再执行conn文件,提示Scott用户被锁定
ORA-28000: the account is locked


14,解锁

15.再执行conn,提示密码已经过期
ORA-28001: the password has expired


16.修改Scott密码


17.再次执行conn文件,提示连接数据库成功