日期:2014-05-17  浏览次数:20915 次

linux 下c语言访问oracle
RedHatAS4下,用c语言操作oracle10g,不知道如何访问,以前见到有人说用proc但是,企业版安装后没有proc的demo,安装选项里的示例方案选项不可用无法安装。c访问oracle,proc这两方面谁能给指点迷津,多谢了,指个方向,提供点资料,网站都不胜感激。

------解决方案--------------------
OCI或者proc,参考官方文档tahiti.oracle.com
------解决方案--------------------
OTL 是 Oracle, Odbc and DB2-CLI Template Library 的缩写,是一个C++操控关系数据库的模板库,最新版本4.0.104,参见http://otl.sourceforge.net/,下载地址http://otl.sourceforge.net/otlv4_h.zip。
优点:a. 跨平台
b. 运行效率高,与C语言直接调用API相当
c. 开发效率高,起码比ADO.net使用起来更简单,更简洁
d. 部署容易,不需要ADO组件,不需要.net framework 等
缺点:
a. 只有C++才可以使用她
b. 说明以及范例不足(暂时性的)

------解决方案--------------------
给你一个proc程序使用的makefile的例子吧

#****************************************************************************
#oracle为64位
include $(ORACLE_HOME)/precomp/lib/env_precomp.mk
#****************************************************************************

USERID=dbusr/dbusr
BIN_PATH=$(HOME)/bin
PROCX=$(ORACLE_HOME)/bin/proc
CC=cc
COPY=cp
MV=mv

ORCL_FLAG = dbms=v7 mode=oracle \
sys_include=/usr/include \
include=$(ORACLE_HOME)/precomp/public \
include=$(ORACLE_HOME)/precomp/lib \
sqlcheck=full userid=$(USERID)
#****************************************************************************
#oracle为64位
LIB_PATH = -L/usr/lib -L$(ORACLE_HOME)/lib
#****************************************************************************
#LIB_PATH = -L/usr/lib -L$(ORACLE_HOME)/lib32

INCL_PATH = -I /usr/include \
-I $(ORACLE_HOME)/precomp/public
#****************************************************************************
#对C进行32位编译
#****************************************************************************
#CC_FLAG = -g $(INCL_PATH) $(LIB_PATH) $(PROLDLIBS) 

#****************************************************************************
##对C进行64位编译 AIX
CC_FLAG = -q64 -g $(INCL_PATH) $(LIB_PATH) $(PROLDLIBS) 
#################################################################################
.SUFFIXES: .pc .c .o
.pc.o: 
@$(PROCX) $(ORCL_FLAG) iname=$*.pc 
$(CC) -c $(CC_FLAG) $*.c

.c.o:
$(CC) -c $(CC_FLAG) $*.c