C语言开发过程中,需要对数据库进行操作,使用 Oracle 数据库一般会采用Oracle Pro*C/C++ 预编译器。
本文章参考Oracle官方文档和自我实践,实验环境为 RHEL7 和 Oracle19c,详细介绍 Oracle Pro*C/C++ 预编译器,了解它在开发操作 Oracle 数据的应用程序中的作用,并了解它使您的应用程序能够做什么,具体如使用。
本章介绍Oracle Pro*C/C++精简版客户端编译环境安装。
客户端安装
Oracle的官方网站上有Oracle Instant Client Basic 精简版客户端,它的作用就是提供TNS配置服务名的功能。
Instant client 有2个版本:Basic和Basic Lite。
- Basic版本包括了所有的支持运行OCI、OCCI、JDBC、JDBC-OCI的文件,支持多种语言。
- Basic Lite是Basic版本的精简版,只包括了英文的错误描述,也只支持Unicode、ASCII和欧洲字符集。 如果数据库服务器是中文字符集(如 SIMPLIFIED CHINESE_CHINA.ZHS16GBK),则必须下载Basic版本。
编译环境安装
为了能使用Oracle ProC/C++ 预编译器,需要下载额外的 Precompiler Package,该包提供 ProC 和 Pro*COBOL 预编译器的额外的工具和库。
为了能正常编译,需要下载 SDK 包,包含额外的头文件和一个示例 makefile。
安装方法
# 使用root建立用户
useradd study
# 切换用户
su - study
# 解压安装包
unzip instantclient-basic-linux.x64-19.11.0.0.0dbru.zip
unzip instantclient-precomp-linux.x64-19.11.0.0.0dbru.zip
unzip instantclient-sdk-linux.x64-19.11.0.0.0dbru.zip
# 添加环境变量
vi .bash_profile
# 增加如下环境变量
export ORACLE_HOME=/home/study/instantclient_19_11
export TNS_ADMIN=/home/study/instantclient_19_11
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export LD_LIBRARY_PATH=/home/study/instantclient_19_11
安装目录
当您安装 Oracle 精简版客户端时,会在您的硬盘驱动器上为 Oracle 产品创建一个目录结构。
Oracle 主目录包含运行 Pro*C/C++ 所需的 Oracle 子目录和文件。
$ORACLE_HOME 该目录包含表中列出的 Pro*C/C++ 可执行文件、库文件和示例程序。
| 目录名称 | 内容 |
|---|---|
| /precomp/admin | 配置文件 |
| /sdk/demo | Pro*C/C++ 的示例程序 |
| /sdk/include | 头文件 |
编译验证
# 重载环境变量
source $HOME/.bash_profile
# 测试编译程序
cd $HOME/instantclient_19_11/sdk/demo
make -f demo_proc_ic.mk