1.proc是oracle用来预编译嵌入SQL语句的c程序。

2.如何使用proc工具

在Linux环境下,首先确保gcc编译器正常使用,安装oracle数据库或者客户端,一般就会默认安装pro*c/c++工具。确保proc正常使用需要配置以下环境变量,这些环境变量一般配置在(.profile)文件里,修改.profile文件后要执行(source .profile)或(. .profile)

 ORACLE_BASE=/suseDba/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.1.
ORACLE_SID=orcl_test
PATH=$ORACLE_HOME/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:$LD_LIBRARY_PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH

3.环境配置好以后就可以编程练习,首先写一个proc 将要预编译的程序,命名为login.pc

 oracle@suse:~/proctest> cat 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(void)
{
EXEC SQL CONNECT :user IDENTIFIED BY :pass; /**连接数据库**/ if(sqlca.sqlcode == )
printf("success!\n");
else
printf("error!\n"); EXEC SQL COMMIT RELEASE;  /**释放数据库连接**/ return ; }

用proc 预编译 login.pc

oracle@suse:~/proctest> proc login.pc

Pro*C/C++: Release 11.2.0.1. - Production on 星期二 5月  :: 

Copyright (c) , , Oracle and/or its affiliates.  All rights reserved.

系统默认选项值取自于:  /suseDba/oracle/product/11.1./precomp/admin/pcscfg.cfg

oracle@suse:~/proctest> ls
login.c login.lis login.pc

用gcc 编译 login.c

oracle@suse:~/proctest> gcc login.c -o login -I $ORACLE_HOME/precomp/public -L $ORACLE_HOME/lib -l clntsh
oracle@suse:~/proctest> ls
login login.c login.lis login.pc
oracle@suse:~/proctest> ./login
success! -I 指定头文件路径, -L 指定库路径, -l 指定链接动态库名称

linux环境下学习使用pro*c/c++工具的更多相关文章

  1. 分享一个 Linux 环境下,强力的Python 小工具

    场景 Linux 用户,经常需要在终端查看一些数据,从文件里看 或者网络协议获取数据并查看. 比如,查看文件里的json数据:比如,查看etcd里存下的数据. 如果直接看cat 或者 curl 得到的 ...

  2. linux环境下的GUN make学习笔记(一)

    第一章:概述 1.1:make概述 在linux环境下使用make工具能够比较容易的构建一个属于自己的工程,整个工程的编译只需要一个命令就可以完成编译.连接以至于最后的执行.不过我们需要投入一些时间去 ...

  3. Linux环境下段错误的产生原因及调试方法小结(转)

    最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且 项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的“段错误”(Segmentation F ...

  4. 【环境配置】Linux环境下下载、配置java环境、安装eclipse、建立eclipse快捷方式详解

    一.首先是下载Java JDK 到目前为止的最新版本为(jdk1.8.0_60),有两种方式进行下载: 1.使用shell来进行下载,可使用如下命令直接进行下载: wget --no-check-ce ...

  5. Linux环境下段错误的产生原因及调试方法小结

    转载自http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 最近在Linux环境下做C语言项目,由于是在一个原有项目基础之 ...

  6. 由一个简单需求到Linux环境下的syslog、unix domain socket

    本文记录了因为一个简单的日志需求,继而对linux环境下syslog.rsyslog.unix domain socket的学习.本文关注使用层面,并不涉及rsyslog的实现原理,感兴趣的读者可以参 ...

  7. Memcached在Linux环境下的使用详解

    一.引言             写有关NoSQL数据库有关的文章已经有一段时间了,可以高兴的说,Redis暂时就算写完了,从安装到数据类型,在到集群,几乎都写到了.如果以后有了心得,再补充吧.然后就 ...

  8. Kafka~Linux环境下的部署

    概念 Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据. 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素. 这些数据 ...

  9. 【云和恩墨】性能优化:Linux环境下合理配置大内存页(HugePage)

    原创 2016-09-12 熊军 [云和恩墨]性能优化:Linux环境下合理配置大内存页(HugePage)   熊军(老熊) 云和恩墨西区总经理 Oracle ACED,ACOUG核心会员 PC S ...

随机推荐

  1. 遍历ArrayList时同时修改引发的问题

    看见一篇博客,没有写完整,于是增补了一下: 博客原文:http://www.cnblogs.com/alipayhutu/archive/2012/08/11/2634073.html 注:黄色字体为 ...

  2. cocos2d-x test学习[1]

    controller.cpp std::function<TestScene*()> callback;//一个是返回值,一个是参数.返回值是TestScene*,参数是()里的东西 Co ...

  3. 解决导入so库报错小结

    最近公司准备将重构后的项目上线,可是等到我接手的时候发现一个很纠结的问题:安卓5.0以上的手机(例如我现在在用的红米note3)运行重构后项目发生报错,提示缺少某so库. 而5.0以下的手机(我的小米 ...

  4. Linux Vim编辑器使用简单讲解

    在Linux中,主要编辑器为vi或者vim,本文围绕vim做简单的讲解说明:Linux默认自带vi(vim)编辑器,其程序包为:[root@linuxidc.com ~]# rpm -qf `whic ...

  5. 骑士游历/knight tour - visual basic 解决

    在visual baisc 6 how to program 中文版第七章的练习题上看到了这个问题,骑士游历的问题. 在8x8的国际象棋的棋盘上,骑士(走法:一个方向走两格,另一个方向一格)不重复走完 ...

  6. Codeforces 209 C. Trails and Glades

    Vasya went for a walk in the park. The park has n glades, numbered from 1 to n. There are m trails b ...

  7. ElasticSearchwindow下搭建

    ElasticSearch是一个开源的分布式搜索引擎. 下载 下载地址: https://www.elastic.co/downloads/elasticsearch 当前版本:Elasticsear ...

  8. status bar、navigationBar、tableView吸顶view设置

    1. 隐藏navigationBar self.navigationController.navigationBar.hidden = YES; 2. status bar设置 -(void)view ...

  9. 点击链接跳转到固定div位置处(类似锚点链接)

    $('.joinbtn').click(function(){ var a = $("#contact").offset().top;$("html,body" ...

  10. Python之路【第十八章】:Web框架

    Web框架本质 1.众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端 #!/usr/bin/env python # -*- codin ...