Linux c/c++访问Oracle数据库--环境配置

原文地址::https://blog.csdn.net/gaogao303/article/details/17303453

相关文章

1、Linux c/c++访问Oracle数据库--连接数据库----https://blog.csdn.net/gaogao303/article/details/17351513

 

最近需要在linux下面做数据库的接口,之前对数据库都是空白,经过度娘之后才有所了解。万事开头难,开始吧~~~

/****************/

访问数据库最好的方法应该就是通过现有的客户端了,但是要做成接口所以客户端是不行的了,经过一番搜索之后发现可以利用C通过以下第三方库进行访问数据库的

1)OCI 

2)Pro*c

能力有限只找到这两个。这两个都是Oracle 官方给出库。

一、OCI

参考官网给出的相关信息。OCI应该是最底层最基本的调用接口,不过通过其他网友们的反馈,OCI对于我这种初学者来说有点难,不太好上手,所以果断放弃。。~~~这里也就不多说了。

二、Pro*c

同样参考官网的相关信息。网上说这个相对来说比较好学,而且开发效率相对较高一点,学之。

通过proc预编译工具将嵌入的sql语句翻译成C语句,最后使用gcc进行编译链接。在预编译的时候是将嵌入的sql语句翻译成OCI的调用~~~原来Proc是对OCI的另外一种封装~~~

三、配置开发环境

说到开发,就必须要有开发环境,下面就来搭建Pro*c的开发环境吧,这其中又是各种波折啊,不过最大的难题就是找到Proc*C库。

这里有各种Pro*c的库,只有pro*c库还是不行的,我们还需要有oracle的客户端才行,客户端地址,按照个人配置选择适当的链接,转到下载页面之后按照相应的版本下载相应的安装包,不过不用全部都要下载,需要的安装包有:

 oracle-instantclient11.2-basic-11.2.0.4.0-1.i386.rpm

 oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.i386.rpm

 oracle-instantclient11.2-devel-11.2.0.4.0-1.i386.rpm 

 oracle-instantclient11.2-precomp-11.2.0.4.0-1.i386.rpm

其中的 11.2.0.4.0 是版本号~~按需下载!

首选安装 *-basic*包 其余的没有顺序要求了,全部安装成功就OK了。which proc 看看有没有proc的命令吧!

安装目录:/usr/lib/oracle/11.2/client/ 

头文件目录:/usr/include/oracle

proc默认的配置文件是在 /usr/lib/oracle/11.2/client/precomp/admin/pcscfg.cfg,但是这样安装之后precomp目录在/usr/lib/oracle/11.2/client/lib 目录下,我们需要cp 出来。另外需要在pcscfg.cfg文件中添加一下两行:


sys_include=/usr/include 
sys_include=/usr/include/oracle/11.2/client
不然编译的时候会报找不到头文件的错误! Ok!
下面先测试一下能不能链接我们的数据库吧!

代码如下:保存为:test.pc

#include <stdio.h>
#include <sqlca.h>
#include <oraca.h>
EXEC ORACLE OPTION(ORACA=YES);

int main()
{
        char uid[]="test/test@192.168.30.50:1521/rsdb";
        EXEC SQL CONNECT :uid;
        if (sqlca.sqlcode == 0)
                printf("Connect successful!\n");
        else
                printf("%s\n",sqlca.sqlerrm.sqlerrmc);
        return sqlca.sqlcode;
}
编译处理:
1、将.pc文件处理成.c文件,执行成功之后会有一个test.c文件

proc test.pc 
2、根据.c文件生成可执行程序

gcc test.c -o test -lclntsh -I/usr/include/oracle/11.2/client/ -L/usr/lib/oracle/11.2/client/lib

3、运行

./test
能打印出
Connect successful!
说明链接成功了,否则会打印链接失败的信息。

至此Pro*c开发环境搭建完成。

(未完待续~~~)
————————————————
版权声明:本文为CSDN博主「菜_鸟_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/gaogao303/article/details/17303453

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值