接到任务,要测试Greatdb对OCI的兼容,对OCI的概念与使用一头雾水,我只知道在PLSQL developer使用时要在选项里配置OCI Library的位置,其实就是oci.dll动态链接库。
那么OCI到底是个东西呢,国产数据库如何与之兼容,开发人员怎么用这个东西?
经过厚着脸皮一直问我们的研发人员,终于对之有了一点了解。
我原来做过java开发,java与数据库的交互的接口用的是JDBC,而C或C++语言开发 与 数据库交互会使用OCI。
原来做开发时只是知道在平台提供的jdbc.properties文件里更改数据库连接的地址,平台把底层的处理都进行了封装,以至于我做了几年的代码开发也没搞明白底层的处理.
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
参考JDBC详解 - ErBing - 博客园 (cnblogs.com)
OCI(Oracle Call Intedace,即0racle调用层接口)是Oracle公司提供的由头文件和库函数等组成的一个访问Oracle数据库的应用程序编程接口(application programming interface API),它允许开发人员在第三代编程语言(包括C, C++, COBOL 与 FORTRAN)中通过SQL(Structure Query Language)来操纵Oracle数据库,而且OCI在一定程度上支持第三代编程语言(诸如C, C++, COBOL 与 FORTRAN)的数据类型、语法等等。
参考OCI接口简介及其在VC++中的应用(上)_yangzai77的博客-CSDN博客
而greatdb要做的兼容就是 提供一个oci类库,底层切换到调用greatdb客户端动态库libperconaserverclient.so,来操作greatdb数据库,应用代码开发人员就可以通过oci类库直接使用oracle的oci函数来操作greatdb数据库。
不得不说我们的数据库开发人员还是很牛的,这些概念对现在的我来说太难理解了。