【YashanDB知识库】YashanDB-OCI-快速上手

本文内容来自YashanDB官网,具体内容请见https://www.yashandb.com/newsinfo/7488285.html?templateId=1718516

背景

OCI 是Oracle调用接口(Oracle Call Interface 简称OCI) 提供了一组对Oracle数据库进行存取的接口子例程(函数),通过在第三方设计语言(如C语言)中进行调用可达到存取ORACLE数据库的目的。

崖山数据库基于Oracle的OCI接口,开发了强兼容的接口,应用可以做比较少的改动,平滑地迁移到崖山数据库。

主要优点

1、Oracle数据库服务器特性中的即时可用性

2、企业级的性能和可伸缩性

3、强健的安全模型

4、在所有运行Oracle的平台上的可移植性。

本文将介绍cmake 方式编译崖山数据库,帮助读者快速上手崖山数据库的OCI接口,并在使用OCI解决实际工作遇到的问题。

环境准备

1、配置yashandb的C驱动 和 OCI 文件

2、准备Oracle的OCI软件包,需要下载两个:

其一是instantclient-basic-linux.x64-21.14.0.0.0dbru.zip,

其二是instantclient-sdk-linux.x64-21.14.0.0.0dbru.zip

3、机器提前安装GDB和CMAKE工具

如何编译yashandb的OCI代码?

接下来,以官网OCI示例代码为例,快速上手编译Yashandb的OCI代码

准备编译前命令

编辑 CMakeList.txt,它是CMAKE工程编译的声明命令文件

点击查看代码
[yashan103@localhost oci_dir]$ cat CMakeLists.txt

cmake_minimum_required(VERSION 2.8.12)

# CMAKE的工程名

project(YAS_OCI_TEST)

set(CMAKE_CXX_STANDARD 11)

set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(BUILD_USE_64BITS on)

set(CMAKE_CONFIGURATION_TYPES "Debug" CACHE STRING "" FORCE)

set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "" FORCE)

#设置OCI接口的源代码路径

SET(LIBHELLO_SRC

./bb.c

)

#查找库文件

find_library(YAS_OCI_LIBRARY NAMES yas_oci PATHS /home/yashan103/oci_lib/yashandb-oci-23.2.1.100-4-gecc0e02-linux-x86_64)

#确认库文件是否找到

if(NOT YAS_OCI_LIBRARY)

   message(FATAL_ERROR "Could not find libyas_oci.so")

endif()

# 添加OCI.h的头文件

include_directories(/home/yashan103/instantclient_21_12/sdk/include)

##执行编译操作

add_executable(YAS_OCI_TEST ${LIBHELLO_SRC})


##添加OCI的yashandb依赖文件

target_link_libraries(YAS_OCI_TEST ${YAS_OCI_LIBRARY})

[yashan103@localhost oci_dir]$

[yashan103@localhost oci_dir]$

[yashan103@localhost oci_dir]$ cat CMakeLists.txt

cmake_minimum_required(VERSION 2.8.12)

# CMAKE的工程名

project(YAS_OCI_TEST)

set(CMAKE_CXX_STANDARD 11)

set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(BUILD_USE_64BITS on)

set(CMAKE_CONFIGURATION_TYPES "Debug" CACHE STRING "" FORCE)

set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "" FORCE)

#设置OCI接口的源代码路径

SET(LIBHELLO_SRC

./bb.c

)

#查找库文件

find_library(YAS_OCI_LIBRARY NAMES yas_oci PATHS /home/yashan103/oci_lib/yashandb-oci-23.2.1.100-4-gecc0e02-linux-x86_64)

#确认库文件是否找到

if(NOT YAS_OCI_LIBRARY)

   message(FATAL_ERROR "Could not find libyas_oci.so")

endif()

# 添加OCI.h的头文件

include_directories(/home/yashan103/instantclient_21_12/sdk/include)

##执行编译操作

add_executable(YAS_OCI_TEST ${LIBHELLO_SRC})

##添加OCI的yashandb依赖文件

target_link_libraries(YAS_OCI_TEST ${YAS_OCI_LIBRARY})
准备Oracle的依赖文件 点击查看代码
[yashan103@localhost instantclient_21_12]$ ll

total 272500

-rwxr-xr-x. 1 yashan103 yashan103 42192 Dec 21 2023 adrci

-rw-r--r--. 1 yashan103 yashan103 5780 Dec 21 2023 BASIC_LICENSE

-rw-r--r--. 1 yashan103 yashan103 1634 Dec 21 2023 BASIC_README

drwxrwxr-x. 2 yashan103 yashan103 55 Apr 1 10:46 bin

-rwxr-xr-x. 1 yashan103 yashan103 59544 Dec 21 2023 genezi

drwxrwxr-x. 2 yashan103 yashan103 6 Aug 5 21:38 include

drwxrwxr-x. 2 yashan103 yashan103 6 Aug 5 21:38 lib

lrwxrwxrwx. 1 yashan103 yashan103 21 Jul 23 11:22 libclntshcore.so -> libclntshcore.so.21.1

lrwxrwxrwx. 1 yashan103 yashan103 21 Jul 23 11:22 libclntshcore.so.12.1 -> libclntshcore.so.21.1

lrwxrwxrwx. 1 yashan103 yashan103 21 Jul 23 11:22 libclntshcore.so.18.1 -> libclntshcore.so.21.1

lrwxrwxrwx. 1 yashan103 yashan103 21 Jul 23 11:22 libclntshcore.so.19.1 -> libclntshcore.so.21.1

lrwxrwxrwx. 1 yashan103 yashan103 21 Jul 23 11:22 libclntshco
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值