打造ubuntu下精简版的oracle客户端及pro*c编译环境(转)

Linux下OCILIB编译安装 OS:Red Hat Enterprise Linux Server release 7.6 (Maipo) GCC VERSION: gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36) 下载OCILIB源文件,OCILIB项目地址:https://github.com/vrogier/ocilib 当前最新版本为:4.6.2 并解压,解压目录为: $OCILI... 阅读详情

打造ubuntu下精简版的oracle客户端及pro*c编译环境

  1. oracle的pro*c简介
  2. 安装oracle客户端
  3. 安装sqlpus
  4. 安装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的网站下载文件了,下面是地址 http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html。我们主要要安装这几个,oracle精简客户端,sqlplus以及pro*c。所以要分别下载这几个文件instantclient-basic-linux32-11.1.0.7.zip,instantclient-sqlplus-linux32-11.1.0.7.zip,instantclient-precomp-linux32-11.1.0.7.zip。

现在安装oracle精简客户端及sqlplus。首先创建目录并解压文件,如下:

$ cd /opt
$ sudo mkdir oracle
$ unzip instantclient-basic-linux32-11.1.0.7.zip
$ unzip instantclient-sqlplus-linux32-11.1.0.7.zip

编辑一下主目录下.bash_profile设置几个环境变量

export ORACLE_HOME=$ORACLE_BASE/instantclient_11_1
export LD_LIBRARY_PATH=$ORACLE_HOME:${LD_LIBRARY_PATH}
export PATH=$ORACLE_HOME:$ORACLE_HOME/sdk:$PATH
export NLS_LANG=AMERICAN_AMERICA.UTF8

将找个要用的服务名tnsnames.ora拷到相应路径下,像我的是/opt/oracle/instantclient_11_1/network/admin,没有目录则新建

加载一下环境变量

$. ~/.bash_profile

还要安装一下aio库还要将oracle的路径加进ld.conf

$sudo apt-get install libaio1

$sudo vi /etc/ld.so.conf.d/ora.conf

/opt/oracle/instantclient_11_1/

更新一下

$ldconfig   -v

应该可以了

$sqlplus user@service_name/password

image

现在开始安装pro*c了。

将instantclient-precomp-linux32-11.1.0.7.zip解压到$ORACLE_HOME

并在该目录下新建子目录precomp/admin,移动pcscfg.cfg到该目录下并编辑相应的头文件位置

sys_include=(/opt/oracle/instantclient_11_1/sdk/include,/usr/include,/usr/include/linux)
ltype=short

再新建子目录lib

$sudo mkdir lib

$cd lib

$sudo ln -s libclntsh.so /opt/oracle/instantclient_11_1/libclntsh.so.11.1

写个helloworld验证一下我们的pro*c能不能用了。。

#include
#include

EXEC SQL INCLUDE sqlca;
EXEC SQL INCLUDE oraca;
EXEC ORACLE OPTION(ORACA=YES);

EXEC SQL BEGIN DECLARE SECTION;
        VARCHAR v_username[20];
        VARCHAR v_password[20];
EXEC SQL END    DECLARE SECTION;

void sqlerror();

int main(){
        v_username.len = sprintf(v_username.arr,"tpibs@ywdev");
        v_password.len = sprintf(v_password.arr,"tppw123");

        EXEC SQL WHENEVER SQLERROR DO sqlerror();
        EXEC SQL CONNECT :v_username IDENTIFIED BY :v_password;

        printf("/nconn ORACLE ,user:%s/n",v_username.arr);

        EXEC SQL COMMIT WORK RELEASE;

return 0;
}

void sqlerror(){
        EXEC SQL WHENEVER SQLERROR CONTINUE;
        printf("/nORACLE error detected:/n");
        printf("/n%.70s/n",sqlca.sqlerrm.sqlerrmc);
        Exec sql rollback RELEASE;
}

再写个简单的makefile

TARGET  = hello
SRCS    = main.c
OBJS    = main.o
COMMLIB = -lpthread -lclntsh

LINKER  = $(CC)
RM      = /bin/rm -f
PROC    = proc

PROCFLAGS = code=ANSI_C ireclen=2048 oreclen=2048 parse=none include=/usr/include/
    include=/usr/include/linux/
    include=/usr/local/include/
    include=/usr/lib/gcc/i486-linux-gnu/4.3.3/include

CFLAGS  = -I$(ORACLE_HOME)/precomp/public/
-L$(ORACLE_HOME)/lib

.SUFFIXES: .o .c .pc

.c.o:
        $(CC) -c $(CFLAGS) $<

.pc.c:
@echo "PROC ."
-$(PROC) iname=$*.pc $(PROCFLAGS)

$(TARGET): $(SRCS) $(OBJS)
        $(CC) -o $@ $(OBJS) $(CFLAGS) $(COMMLIB)

clean :
        $(RM) $(TARGET) $(OBJS) $(TARGET:%=%.c)

$ make 
$ ./hello
conn ORACLE ,user:tpibs@ywdev

ubuntu编译QOCI驱动 环境:ubuntu12.04+qt4.8.0+oracle11g2 是个编译文档,希望对你有帮助 立即下载

相关推荐

OracleClient-19C Oracle客户端,包括windows和Linux

OracleClient-19C Oracle客户端,包括windows和Linux

linux搭建oci环境,Linux下搭建OCI环境

系统环境以及相关软件:操作系统:Linuxjabnih-VirtualBox3.2.0-23-generic-pae#36-UbuntuSMPTueApr1022:19:09UTC2012i686i686i386GNU/Linux编译器:gcc(Ubuntu/Linaro4.6.3-1ubuntu5)4.6.3Automake:automake(GNUa...

weixin_29306875的博客 809

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

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

Linux oci连接oracle服务器

因公司需要,开发MES将其迁移到Linux平台,使用oracle数据库,现在oracle服务器已经配置好,如果没有配置成功的请参考另一篇博客Linux下安装oracle,即可安装! 转载请附上链接,禁止侵权! 一、安装前言 因linux发行版本不同,我这个版本是ubuntu的 同时,编译器使用的是QT,但是我在QT下编译oci插件不成功,具体不成功原因可能是使用的ubuntu而不是centos或者ret hat,我在ret hat下编译依旧不成功,具体不成功原因就不加以说明了。 现在选择的方式是安装orac

专注音视频底层算法与工程实现,深入解析数字信号处理。深入研究WebRTC 3A、多麦声源定位、vad、语音识别等技术 1859

oracle-instantclient12.2-precomp-12.2.0.1.0-1.x86_64.rpm

oracle-instantclient12.2-precomp-12.2.0.1.0-1.x86_64.rpm

高速光耦在隔离串口通信中的选型与优化策略

本文深入探讨了高速光耦在隔离串口通信中的关键作用与选型优化策略。针对串口通信中因普通光耦响应慢导致的误码问题,文章详细分析了响应时间、电流传输比、供电电压与隔离耐压等核心选型指标,并对比了6N137、HCPL-0601等主流型号。同时,提供了电路设计、PCB布局的优化技巧及实用的调试指南,旨在帮助工程师实现高速、稳定的隔离串口通信。

grpc6streamer的博客 322

Ubunt php连接oracle,uBuntu PHP Oracle扩展 OCI8安装

0. 环境说明uBuntu 14.04Nginx 1.4.6Php 5.5.91. 准备工作这里因为使用了RPM包,所以预先安装RPM:root@ubuntu:/opt# apt-get install rpm准备好相应的安装包文件,根据文件名称自行到官网下载对应版本:root@ubuntu:/opt# wget http://xxxxxxxx/php-oci8.tar.gz ....

weixin_31940053的博客 262

Java 网络编程(超级详细)

1. 网络编程 1.1 网络编程概述 计算机网络 是指将地理位置相同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及通信协议的管理和协调下,实现资源共享和信息传递的计算机系统 1.2 网络编程三要素 1、IP地址 要想让网络中的计算机能够互相通信,必须为计算机指定一个标识号,通过这个标识号来指定要接受数据的计算机和识别发送的计算机,而IP地址就是这个标识号,也就是设备的标识。 2、端口 网络的通信,本质上是两个应用程序的通信。每台计算机都有很多的应用程

imByte的博客 3万+

SQLPLUS使用上下键方法

步骤1:下载rlwrap-0.30.tar.gz。步骤2:执行如下命令,解压rlwrap-0.30.tar.gz。              tar -zxvf rlwrap-0.30.tar.gz步骤3:执行如下命令,进行安装。              cd rlwrap-0

森林狼的专栏 443

天池长期赛:二手车价格预测(422方案分享)

本次比赛是一次很好的锻炼数据挖掘能力的入门赛,从EDA-数据清洗-特征工程-模型调参-模型融合,能够完整的学习到大数据的分析和挖掘,值得历练。

weixin_46685991的博客 1万+

14、OpenClaw(龙虾助手)Skill 开发完整规范(2026最新版)

OpenClaw Skill 开发指南摘要: Skill 是 OpenClaw AI 助手的核心扩展机制,支持声明式(SKILL.md)和原生代码(JS/TS/Python)两种开发模式。声明式 Skill 通过 Markdown 定义触发条件和执行流程,适合简单业务;原生代码 Skill 提供完整编程能力,适合复杂场景。开发需遵循标准化项目结构,包含 SKILL.md(元数据)、manifest.json(权限声明)等文件,并严格处理错误和多系统适配。新版要求原生 Skill 必须声明文件、网络等权限,确

欢迎光临~知1而N的博客 1243

linux pro*c环境配置,打造ubuntu下精简版的oracle客户端及pro*c编译环境

oracle的pro*c简介安装oracle客户端安装sqlpus安装pro*cORACLE的PRO*C曾经很流行,虽然现在不被推崇,但是已经比较成熟项目依然使用,所以打造自己的pro*c编译环境还是有意义的。现在网上搜一下,可能还可以找得到windows下面的pro*c编译环境,但是linux下基本上没有,当然你愿意啃E文的话,可能还是有一些的,但是大部分都只能通过介绍oracle9i的安装来获...

weixin_35531779的博客 369

万物皆可GAN ---普通GAN, pix2pix, CycleGAN和pix2pixHD的比较以及演变过程

普通GAN, pix2pix, CycleGAN和pix2pixHD的原理、比较以及演变过程

m0_61985580的博客 3724

打造ubuntu下精简版的oracle客户端…

打造ubuntu下精简版的oracle客户端及pro*c编译环境 oracle的pro*c简介 安装oracle客户端 安装sqlpus 安装pro*c   ORACLE的PRO*C曾经很流行,虽然现在不被推崇,但是已经比较成熟项目依然使用,所以打造自己的pro*c编译环境还是有意义的。现在网上搜一下,可能还可以找得到windows下面的pro*c编译环境,但是linux下基

wxwpxh的专栏 591

MATLAB实战:用ARMAX模型搞定电力系统惯量实时评估(附完整代码)

本文详细介绍了如何利用MATLAB中的ARMAX模型实现电力系统惯量的实时评估。通过系统辨识技术,结合电力系统的动态特性,提供从数据预处理、模型辨识到实时评估的全流程实战指南,并附完整代码。ARMAX模型在新能源高渗透率电网中展现出显著优势,误差较传统方法降低50%以上。

b9c0d的博客 396

C#联合Halcon机器视觉框架源码

本软件参考EV开发,共用模块,基于WPF+Halcon,是非常不错的学习框架,需要什么功能可以自己添加,插件式开发非常方便。

Z's Palace 4829

ubuntu使用sqlplus,pro*C

ubuntu使用sqlplus,pro*C(客户端)

m0_61083792的博客 866

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ubuntu安装C++ oracle开发环境(oci)

1、oracle官网下载rpm包 http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html 2、安装rpm包 Ubuntu的软件包格式是deb,如果要安装rpm的包,则要先用alien把rpm转换成deb。 sudo apt-get install alien #alien默认没有安装,所以首先要...

错位竞争,单点突破。 1891

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Ubuntu10.04 下使用code Blocks 进行oci 程序开发

Ubuntu10.04 下使用code Blocks 进行oci 程序开发1.   安装linux版本的ORACLE。     参照自己整理的文档《Ubuntu10.04 安装Oracle10G》。2.   下载linux版本oracle的客户端       http://www.oracle.com/technetwork/topics/linuxsoft-082809.htmloci的库文件:instantclient-basic-linux32-10.2.0.3-20061115.zip oci的头文

李根生 的专栏 1437

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

编译oracle jdk源码,OpenJDK8源码编译(Ubuntu 16.04)

一、下载下载步骤参考的官网,内容如下:Source codeThe jdk8u-dev forest for ongoing development can be cloned using this command:hg clone http://hg.openjdk.java.net/jdk8u/jdk8u-dev;cd jdk8u-dev;sh get_source.sh.The corr...

weixin_33844346的博客 445

Pro*C的使用

一 Pro*C 程序概述:1.什么是Pro*C程序在ORACLE数据库管理和系统中, 有三种访问数据库的方法;(1) 用SQL*Plus, 它有SQL命令以交互的应用程序访问数据库;(2)用第四代语言应用开发工具开发的应用程序访问数据库,这些工具有SQL*Froms,QL*Reportwriter,SQL*Menu等;(3) 利用在第三代语言内嵌入的SQL语言或ORACLE库函数调用来访问。Pro

alee007的空间 2258
上一篇: 三种SQL分页法(转)
下一篇: fedora 10 安装Oracle 10G 和启动
cinience
博客等级 码龄17年 41粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值