05-Ubuntu开发proc/c++

一、安装ubuntu下的oracle数据库。

二、在终端中配置环境变量。

export ORACLE_HOSTNAME=localhost;
export ORACLE_BASE=/opt/oracle;
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1;
export ORACLE_SID=orcl;
export PATH=$PATH:$ORACLE_HOME/bin 
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export NLS_LANG="Simplified chinese_china.al32utf8"
三、在终端中输入命令测试:
1、查看ORACLE_HOME:
	echo ${ORACLE_HOME}
2、查看ORACLE_SID:
	echo ${ORACLE_SID}
3、如果上述没有问题,则在终端启动sqlplus看看能否运行。
	1)sqlplus /nolog
	2)  connect /as sysdba
	3) startup(启动sql相关服务)
	4) shutdown immediate  --如果启动失败,就关闭,开启监听
	5)lsnrctl	start 
	6) startup(重启sql服务)
	注:如果还是失败,就将错误代码记录下来:【oerr ora 数字】(查询错误原因)
4、假设这里可以用自己的账户登录数据库了。接下来我们就可以进行proc开发了

四、开发proc

proc是通过c/c++语言操作数据库的方法。在两个平台之间,肯定要有一个中间桥梁来连接,这就是proc的由来。(个人理解,请指正)

所以,编译的过程分两步:(这里假设有hello.pc这个文件)

1、将.pc文件(这个文件的代码中加入了oracle语句,所以又称为嵌入式sql)转化为.c文件

命令:proc hello.pc (会生成两个文件, hello.c 和 hello.lis)

注:这里会爆出一个错误。

原因:因为使用命令proc(/home/oracle_11/app/oracle/product/11.2.0/db_1/bin/下,上面配置环境中以申明),sql会查找自己oracle的配置文件中写的路径(/home/oracle_11/app/oracle/product/11.2.0/db_1/precomp/admin/pcscfg.cfg),发现没有这个头文件stddef.h所在的路径。

解决方法:查看下自己系统的stddef.h存放位置,将路径添加到/home/oracle_11/app/oracle/product/11.2.0/db_1/precomp/admin/pcscfg.cfg文件中去。

命令:locate stddef.h(which where自己可以试试看,也是查找命令的路径的)例如我的显示:

/usr/lib/gcc/x86_64-redhat-linux/4.4.4/include/stddef.h

2、利用gcc编译工具编译.c文件。(因为这个.c文件中加入sql的语法,所以要告诉gcc编译器sql自己的库路径,库名称,以及头文件)

命令:gcc dm01_hello.c -o dm01_hello  \
-I/home/oracle_11/app/oracle/product/11.2.0/db_1/precomp/public \
      -L/home/oracle_11/app/oracle/product/11.2.0/db_1/lib   -lclntsh


至此,在Ubuntu下开发proc/c++的环境就完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值