配置ORACLE的PRO*C环境

1、访问数据库的方法
    在ORACLE数据库管理和系统中,有三种访问数据库的方法;
    ⑴.用SQL*Plus, 它有SQL命令以交互的应用程序访问数据库;
    ⑵.用第四代语言应用开发工具开发的应用程序访问数据库,这些工具有SQL*Froms,QL*Reportwriter,SQL*Menu等;
    ⑶.利用在第三代语言内嵌入的SQL语言或ORACLE库函数调用来访问。
    
        Pro*C就属于第三种开发工具之一, 它把过程化语言C和非过程化语言SQL最完善地结合起来, 具有完备的过程处理能力,又能完成任何数据
    库的处理品任务,使用户可以通过编程完成各种类型的报表。在Pro*C程序中可以嵌入SQL语言,利用这些SQL语言可以完成动态地建立、修改和
    删除数据库中的表,也可以查询、插入、修改和删除数据库表中的行,还可以实现事务的提交和回滚。在Pro*C程序中还可以嵌入PL/SQL块,以
    改进应用程序的性能,特别是在网络环境下,可以减少网络传输和处理的总开销。

2、编译过程
    Pro*C是oracle的预编译器是一种编程工具,通过它把SQL语句嵌入到C语言程序中,编译过程如下:
    Pro*C源文件(*.pc) -> C源文件(*.c) -> 目标文件(*.o) -> 可执行文件。如图:
    
        预编译器把源程序作为输入,然后翻译程序中嵌入的SQL语句,把它们转化成对标准的ORACLE运行库的调用,最后生成一个修改过的源程序。
    通过对修改过的源程序进行编译、链接,形成可执行文件。

3、Pro*C头文件和库文件
    如图:

    

4、Oracle预编译选项配置文件
    默认在$ORACLE_HOME/bin路径下就有了可执行程序PROC以及相应的未经配置预编译环境。Pro*C预编译时的选项很多,可以把它放到一个文件中
    .如果在预编译时不指定配置文件, 则默认配置文件是 $ORACLE_HOME/precomp/admin/pcscfg.cfg
    编辑pcscfg.cfg文件:
        sys_include=(/opt/oracle/precomp/public,/usr/lib/gcc/i386-redhat-linux/4.1.1/include,/usr/lib/i386-redhat-linux4E/include/
        bits,/home/uriel/git-2.0.3/compat/vcbuild/include,/usr/lib/i386-redhat-linux4E/include)
        ltype=short
        
     此文件的sys_include中应包含sqlca.h及sqlda.h所在的路径(否则编译时报:‘sqlca’ 未声明),我这里为/opt/precomp/public。还需要包括
     stddef.h所在的路径,我这里为/usr/lib/gcc/i386-redhat-linux/4.1.1/include。如果这两个文件你也不知道在什么位置,可以通过
        #find / -name "sqlca.h"
        #find / -name "stddef.h"
     来查找。另外再将常用的头文件路径加上即可,如/usr/include。

5、Oracle预编译选项
    如图:
    

    

    

    
6、编译过程举例(具体实现可参考makefile博客)
    第一步,对带有嵌入式SQL的C代码程序(通常此程序以.pc结尾,简称PC代码)使用proc做一次预编译,将里面的嵌入式SQL转化为代表数据库功能调用的C代码。
    第二步,使用C编译器将C代码编译连接(其中包含数据库中的库 libclntsh.so)成可执行文件。
    .pc->.c: $proc iname=sample1.pc oname=sample1.c
    .c->.o $cc –c sample1.c
    .o->可执行文件 $cc –L$ORACLE_HOME/lib –lclntsh –o sample1 sample1.o
    
    嵌入式C编译时还需链接-lclntsh库(数据库中的库 libclntsh.so)

时间: 2024-11-03 22:35:51

配置ORACLE的PRO*C环境的相关文章

配置ORACLE 10g或11g绿色版客户端和PLSQL环境

 本方法是通过使用ORACLE官方提供的精简版客户端,即绿色免安装的客户端. 下载地址(此处提供的是官方各版本下载地址): Windows 32位系统中使用的客户端下载地址 其他系统环境中使用的客户端下载地址 Instant client的版本很多:主要是Basic和Basic Lite. Basic版本包括了所有的支持运行OCI.OCCI.JDBC.JDBC-OCI的文件,支持多种语言. Basic Lite是Basic版本的精简版,只包括了英文的错误描述,也只支持Unicode.ASCII和

配置ORACLE 11g绿色版客户端和PLSQL远程连接环境

配置ORACLE 11g绿色版客户端和PLSQL环境 本方法是通过使用ORACLE官方提供的精简版客户端,即绿色免安装的客户端. Instant client的版本很多:主要是Basic和Basic Lite. Basic版本包括了所有的支持运行OCI.OCCI.JDBC.JDBC-OCI的文件,支持多种语言. Basic Lite是Basic版本的精简版,只包括了英文的错误描述,也只支持Unicode.ASCII和欧洲字符集. 因此,如果数据库服务器是中文字符集(如 SIMPLIFIED CH

配置ORACLE 客户端连接到数据库

--================================= -- 配置ORACLE 客户端连接到数据库 --================================= Oracle 客户端连接到Oracle 数据库服务器貌似不同于SQL serve中的网络配置,其实不然,只不过所有的SQL server 运行于Windows平台,故很多配置直接集成到了操作系统之中.所以无需配置客户端即可连接到服务器.Oracle 客户端连接到数据库依赖于Oracle Net.Oracle提供

Oracle RAC + Data Guard 环境搭建

国庆之前就准备做这个实验了. 后来时间不够,就没搞了. 6天的长假一放,都散漫的不成样子了.懒散了很多. 今天7号. 上班也没啥精神,但是该做的实验还得继续. Oracle 高可用性的三个主要体现是: RAC, Data Guard 和 Stream.  所以熟练掌握这些技术就是评价DBA的标准一个. RAC + Data Guard 主要用在灾备或者报表服务器上. 比如用RAC+ 逻辑standby 做报表,从而减轻RAC 系统的压力. 关于Data Guard 的一些原理知识可以参考: Or

一次配置oracle em的经历

对oracle10grac配置em,原本是非常简单的事,却花费了很长时间,记录下来,备忘. 首先是报如下错误: [[email protected] admin]$ emca -config dbcontrol db STARTED EMCA at Aug 17, 2014 9:06:47 AM EM Configuration Assistant, Version 10.2.0.5.0 Production Copyright (c) 2003, 2009, Oracle. All right

搭建一个Oracle到Oracle的Goldengate双向复制环境

目标:搭建一个Oracle到Oracle的Goldengate双向复制环境(支持DDL+DML). 环境: OS:Red Hat Enterprise Linux Server release 5.5 (Tikanga) DB:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production gg1和gg2互为source和target,所处OS和所安DB均一样. 一.安装GG 在gg1和gg2都运行例如以下操作: (1

【Java】Linux下安装配置Oracle JDK 1.7版本

1 环境 Vmware虚拟机中的Ubuntu 12.04 32位系统 2具体安装步骤 ①下载最新的jdk包 注意jdk区分32位版本和64位版本,要与Ubuntu兼容才行 下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html ②创建一个目录,解压压缩包 mkdir usr/lib/jvm 移动到该目录,并解压 [email protected]:/usr/lib$ sudo

windows下plsql安装并配置oracle client

1.先下载pl/sql,安装.破解: 这里提供一个自己制作的plsql11本版的绿色汉化破解版: http://down.51cto.com/data/2075386 http://download.csdn.net/detail/abc2536465230/8939917 这两个都是一样的. 2.下载oracle的instanct client的base版文件: 官网连接:http://www.oracle.com/technetwork/database/features/instant-c

Redhat Enterprise 5.4下安装配置Oracle 11g R2详细过程

1.Linux环境配置准备 环境:Linux:Redhat Enterprise 5.4,DB:Oracle 11g R2 X64,Oracle安装到/home/oralce_11目录下. 配置过程如下:(大部分是网上的内容,个人也是按照网上步骤来的) 1) 检查基本需求(对于牛逼的服务器来说,这个肯定是满足要求的,可以跳过)内存大小grep MemTotal /proc/meminfo交换分区大小grep SwapTotal /proc/meminfo增加交换分区创建/home/swap这么一