05-Ubuntu开发proc/c++

来源:互联网 发布:capvision凯盛 知乎 编辑:程序博客网 时间:2024/04/30 05:34

一、安装ubuntu下的oracle数据库。

二、在终端中配置环境变量。

export ORACLE_HOSTNAME=localhost;export ORACLE_BASE=/opt/oracle;export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1;export ORACLE_SID=orcl;export PATH=$PATH:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/libexport NLS_LANG="Simplified chinese_china.al32utf8"
三、在终端中输入命令测试:
1、查看ORACLE_HOME:
echo ${ORACLE_HOME}
2、查看ORACLE_SID:
echo ${ORACLE_SID}
3、如果上述没有问题,则在终端启动sqlplus看看能否运行。
1)sqlplus /nolog
2)  connect /as sysdba
3) startup(启动sql相关服务)
4) shutdown immediate  --如果启动失败,就关闭,开启监听
5)lsnrctlstart 
6) startup(重启sql服务)
注:如果还是失败,就将错误代码记录下来:【oerr ora 数字】(查询错误原因)
4、假设这里可以用自己的账户登录数据库了。接下来我们就可以进行proc开发了

四、开发proc

proc是通过c/c++语言操作数据库的方法。在两个平台之间,肯定要有一个中间桥梁来连接,这就是proc的由来。(个人理解,请指正)

所以,编译的过程分两步:(这里假设有hello.pc这个文件)

1、将.pc文件(这个文件的代码中加入了oracle语句,所以又称为嵌入式sql)转化为.c文件

命令:proc hello.pc (会生成两个文件, hello.c 和 hello.lis)

注:这里会爆出一个错误。

原因:因为使用命令proc(/home/oracle_11/app/oracle/product/11.2.0/db_1/bin/下,上面配置环境中以申明),sql会查找自己oracle的配置文件中写的路径(/home/oracle_11/app/oracle/product/11.2.0/db_1/precomp/admin/pcscfg.cfg),发现没有这个头文件stddef.h所在的路径。

解决方法:查看下自己系统的stddef.h存放位置,将路径添加到/home/oracle_11/app/oracle/product/11.2.0/db_1/precomp/admin/pcscfg.cfg文件中去。

命令:locate stddef.h(which where自己可以试试看,也是查找命令的路径的)例如我的显示:

/usr/lib/gcc/x86_64-redhat-linux/4.4.4/include/stddef.h

2、利用gcc编译工具编译.c文件。(因为这个.c文件中加入sql的语法,所以要告诉gcc编译器sql自己的库路径,库名称,以及头文件)

命令:gcc dm01_hello.c -o dm01_hello  \
-I/home/oracle_11/app/oracle/product/11.2.0/db_1/precomp/public \
      -L/home/oracle_11/app/oracle/product/11.2.0/db_1/lib   -lclntsh


至此,在Ubuntu下开发proc/c++的环境就完成了。

0 0
原创粉丝点击