日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

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

發(fā)布時間:2024/10/8 linux 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux pro*c环境配置,打造ubuntu下精简版的oracle客户端及pro*c编译环境 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

oracle的pro*c簡介

安裝oracle客戶端

安裝sqlpus

安裝pro*c

ORACLE的PRO*C曾經(jīng)很流行,雖然現(xiàn)在不被推崇,但是已經(jīng)比較成熟項目依然使用,所以打造自己的pro*c編譯環(huán)境還是有意義的。現(xiàn)在網(wǎng)上搜一下,可能還可以找得到windows下面的pro*c編譯環(huán)境,但是linux下基本上沒有,當(dāng)然你愿意啃E文的話,可能還是有一些的,但是大部分都只能通過介紹oracle

9i的安裝來獲得我們需要的pro*c編譯環(huán)境,如果只是單純想安裝pro*c,那是沒有的,所以才想到寫下來記錄一下。

在linux安裝orace 9i是很麻煩的事情,首先,按照官方的說法,oracle是只支持red

hat的,雖然服務(wù)器大部分都是,但我想作為開發(fā)人員,肯定用的發(fā)行版都是五花八門了。總體而言,在ubuntu下安裝oracle9i主要存在這幾點麻煩:1.需要打補丁,而且補丁也難下;2.安裝時中文不支持;3.為了這個功能要裝這個龐然大物;4.部分動態(tài)鏈接庫很老的版本不好找;5.oracle9i的安裝光盤實在不好拿到;6.安裝時間好長。

首先,當(dāng)然是到oracle的網(wǎng)站下載文件了,下面是地址?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。

現(xiàn)在安裝oracle精簡客戶端及sqlplus。首先創(chuàng)建目錄并解壓文件,如下:

$ cd /opt

$ sudo mkdir ora11g & cd?ora11g

$ 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

$ cdinstantclient_11_2

$ sudo mkdir lib bin

把所有程序文件拷入bin,庫文件拷入lib

cd

lib

sudo ln

-s libclntsh.so.11.1

libclntsh.so

編輯一下主目錄下.bash_profile設(shè)置幾個環(huán)境變量

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

將找個要用的服務(wù)名tnsnames.ora拷到相應(yīng)路徑下,像我的是/opt/ora11g/instantclient_11_2/network/admin,沒有目錄則新建

加載一下環(huán)境變量

$. ~/.bash_profile

還要安裝一下aio庫還要將oracle的路徑加進(jìn)ld.conf

$sudo apt-get install libaio1

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

加上如下內(nèi)容:

/opt/ora11g/instantclient_11_2/lib

更新一下

$sudo ldconfig?-v

應(yīng)該可以了

寫個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=2048oreclen=2048parse=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

總結(jié)

以上是生活随笔為你收集整理的linux pro*c环境配置,打造ubuntu下精简版的oracle客户端及pro*c编译环境的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。