系统环境:
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文件,提示连接数据库成功