打造ubuntu下精简版的oracle客户端及pro*c编译环境
- oracle的pro*c简介
- 安装oracle客户端
- 安装sqlpus
- 安装pro*c
ORACLE的PRO*C曾经很流行,虽然现在不被推崇,但是已经比较成熟项目依然使用,所以打造自己的pro*c编译环境还是有意义的。现在网上搜一下,可能还可以找得到windows下面的pro*c编译环境,但是linux下基本上没有,当然你愿意啃E文的话,可能还是有一些的,但是大部分都只能通过介绍oracle 9i的安装来获得我们需要的pro*c编译环境,如果只是单纯想安装pro*c,那是没有的,所以才想到写下来记录一下。
在linux安装orace 9i是很麻烦的事情,首先,按照官方的说法,oracle是只支持red hat的,虽然服务器大部分都是,但我想作为开发人员,肯定用的发行版都是五花八门了。总体而言,在ubuntu下安装oracle9i主要存在这几点麻烦:1.需要打补丁,而且补丁也难下;2.安装时中文不支持;3.为了这个功能要装这个庞然大物;4.部分动态链接库很老的版本不好找;5.oracle9i的安装光盘实在不好拿到;6.安装时间好长。
首先,当然是到oracle的网站下载文件了,下面是地址
现在安装oracle精简客户端及sqlplus。首先创建目录并解压文件,如下:
$ cd /opt
$ sudo mkdir ora11g & cd
$ unar instantclient-basic-linux.x64-11.2.0.4.0.zip
$ unar instantclient-sqlplus-linux.x64-11.2.0.4.0.zip
$ unar instantclient-precomp-linux.x64-11.2.0.4.0.zip
cd lib
sudo ln
编辑一下主目录下.bash_profile设置几个环境变量
export ORACLE_HOME=/opt/ora11g/instantclient_11_2
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG='simplified chinese_china'.UTF8
export PATH=$ORACLE_HOME/bin:$PATH
将找个要用的服务名tnsnames.ora拷到相应路径下,像我的是/opt/ora11g/instantclient_11_2/network/admin,没有目录则新建
加载一下环境变量
$. ~/.bash_profile
还要安装一下aio库还要将oracle的路径加进ld.conf
$sudo apt-get install libaio1
$sudo vi /etc/ld.so.conf.d/ora11gcliet.conf
加上如下内容:
/opt/ora11g/instantclient_11_2/lib
更新一下
$sudo ldconfig
应该可以了
$sqlplus
写个helloworld验证一下我们的pro*c能不能用了。。
#include
#include
EXEC SQL INCLUDE sqlca;
EXEC SQL INCLUDE oraca;
EXEC ORACLE OPTION(ORACA=YES);
EXEC SQL BEGIN DECLARE SECTION;
EXEC SQL END
void sqlerror();
int main(){
}
void sqlerror(){
}
再写个简单的makefile
SRCS
OBJS
COMMLIB
LINKER
RM
PROC
PROCFLAGS
CFLAGS
. SUFFIXES :
. c . o :
.pc.c:
$(TARGET):
clean
$
conn