proc学习笔记
来源:互联网 发布:淘宝店铺买模版视频 编辑:程序博客网 时间:2024/06/10 09:58
1、proc是什么?
proc是oracle用来预编译嵌入SQL语句的c程序。
下图展示了Proc*C/C++程序的编写、编译流程。
根据上图可以看出proc只是预编译一下源程序,即把*.pc预编译成标准的c或c++程序。
2、怎样编译、链接*.pc应用程序?
本文以linux环境为例,首先要保证C/C++的编译器(gcc/g++)可以使用。然
后就是要正确安装oracle数据库服务器和proc development tools组件,一般会默认安
装。此时应当保证proc命令可以使用。
如果不能使用则检查以下环境变量(.bash_profile)是否配置正确:
ORACLE_HOME=/home/oracle #oracle软件安装路径
ORACLE_SID=zcm #oracle数据库实例名
PATH=${ORACLE_HOME}/bin:${PATH}:. #可执行程序搜索路径
LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${LD_LINRARY_PATH}:. #链接库文件搜索路径
export ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH
举例如下分三步走:
第一步:编写一个简单的proc程序(命名为login.pc):
#include <stdio.h>
#include "sqlca.h"
EXEC SQL BEGIN DECLARE SECTION;
char user[] = "scott";
char pass[] = "scott";
EXEC SQL END DECLARE SECTION;
int main(int argc, char **argv)
{
EXEC SQL CONNECT :user IDENTIFIED BY :pass;
if(sqlca.sqlcode == 0)
printf("success!!\n");
else
printf("error!\n");
return 0;
}
第二步:在命令行输入proc预编译pc文件为c文件
$ proc iname=login.pc oname=login.c
注意此时可能会报错:
Error at line 34, column 11 in file /usr/include/stdio.h
# include <stddef.h>
..........1
PCC-S-02015, unable to open include file
意思就是找不到stddef.h这个文件
解决办法:
【1】找到该文件以及其他需要文件的绝对路径:
$ find /usr -name stddef.h
【2】将该绝对路径写入${ORACLE_HOME}/precomp/admin/pcscfg.cfg
include=/usr/lib/gcc/i686-redhat-linux/4.4.4/include
第三步:用gcc编译、链接c源文件
$ gcc -I ${ORACLE_HOME}/precomp/public login.c -o login -L ${ORACLE_HOME}/lib -l clntsh
上面:
'-I'指定头文件路径
'-o'指定输出文件名
'-L'指定库路径
'-l'指定链接动态库名字
最后就可以执行login程序了
- proc学习笔记
- [linux驱动]proc学习笔记(一)
- SAS学习笔记之PROC FORMAT
- Linux下Oracle的Proc学习笔记
- 《linux程序设计学习笔记》之一---/proc文件系统
- Proc笔记
- 学习笔记 --- LINUX 驱动调试之使用proc
- linux设备驱动学习笔记--内核调试方法之proc
- linux proc文件系统学习
- proc学习小结
- linux proc文件系统学习
- proc文件目录学习
- linux proc文件系统学习
- linux下proc学习
- /proc 文件系统的学习
- linux proc文件系统学习
- linux设备驱动学习笔记--内核调试方法之proc(补充seq_file)
- Linux内核学习笔记之seq_file接口创建可读写proc文件
- BHW牛人2013SEO方法语录,仅供参考!
- Pro Android学习笔记(十):了解Intent(上)
- thinkphp增删改查
- 序列化与反序列化
- eclipse plugin 插件 推荐
- proc学习笔记
- 程序员的野心:让GPU像CPU一样运行
- jquery禁用右键、文本选择功能、复制按键的实现
- 超强的HTML依靠正则表达式去标点符号
- Android开发入门之数据库例子
- 一条线段分成三部分,构成三角形的概率
- WCDMA: MAC-d flow --- 流金岁月
- ARM-Linux移植攻略--yaffs2 Partially written block xxx detected 问题解决
- 怎样解决centons6.3系统网速慢的问题