PRO*C学习指南
PROC 技术简介
什么是PROC(PRO*C)
ORACLE支持六种高级语言中内嵌入SQL语句,或ORACLE库函数调用来访问数据库。它们是C,FORTRAN,COBOL,Ada,PASCAL,PL/I等,这些语言称之为宿主语言,用它们开发的程序就称为PRO*程序,如PRO*C,PRO*COBOL等。
我们可以定义PRO*C程序为:通过在过程化编程语言C/C++中嵌入SQL语句而开发出的应用程序。
PROC与Oracle数据库
在ORACLE数据库管理系统中,有三种访问数据库的方法:
1. 用SQL*Plus,它有SQL命令以交互的应用程序访问数据库;
2. 用第四代语言应用开发工具开发的应用程序访问数据库,这些工具有SQL*Froms,QL*Reportwriter,SQL*Menu和ORACLE*FORMS等;
3. 利用在第三代语言内嵌入的SQL语言或ORACLE库函数调用来访问。、
Pro*C就属于第三种开发工具之一,它把过程化语言C和非过程化语言SQL最完善地结合起来,具有完备的过程处理能力,又能完成任何数据库的处理品任务,使用户可以通过编程完成各种类型的报表。
PROC工作原理
PRO*C应用程序的开发和运行的基本步骤类似于C程序,唯一不同之处是在进行C编译之前需要进行预编译。
程序员用相应的高级语言编写嵌入SQL语句的PRO源程序(若用C语言则称为 PROC源程序),然后运行相应的预编译程序,把嵌入的SQL语句转换为标准的Oracle调用并生成目标源程序,即纯高级语言格式的源程序,最后将这些源程序加入用户的程序中调用。
Oracle预编译程序提供如下功能:
l 能用六种通用的高级程序设计语言中的任何一种编写应用程序。
l 遵循ANSI标准,在高级语言中嵌入SQL语句。
l 可采用动态SQL方法,让程序在运行时接受或构造一个有效的SQL语句。
l 实现Oracle内部数据类型和高级语言数据类型之间的自动转换。
l 可通过在应用程序中嵌入PLSQL事物处理块来改进性能。
l 能在程序行和命令行上指定所需要的预编译可选项,并可在预编译的过程中改变它们的值。
l 能全面检查嵌入的SQL数据操纵语句和PLSQL块的文法和语义。
l 可用SQLNet并行存取多个地点的Oracle数据库。
l 可把数组作为输入和输出程序变量使用。
l 能对应用程序中的代码段进行条件预编译。
l 提供了较强的异常处理功能。
PROC的优点
1. 它把过程化语言和非过程化语言结合,形成一种更强有力的开发工具。利用它可以 开发出满足种复杂的应用程序,还可以引用 窗口技术和鼠标技术等。
2. 可以使开发的应用程序具有管理系统资源使用(如内存分配)、SQL语句执行和指示器等能力。
3. 提高了应用程序的执行速度,因为它把SQL语句翻译成相应的ORACLE库函数调用。特别是在网络环境下,可以减少网络传输和处理的总开销。
学习PROC所需的相关知识
1、 C/C++语言基础知识
2、 Oracle技术,如SQL、PL/SQL等
有用的资料:
from 《Oracle背份策略的补充》
http://www.huihoo.org/joyfire.net/5.html
Oracle数据库开发(一).Windows下配置使用ProC
http://blog.csdn.net/liwei_cmg/archive/2007/06/06/1641330.aspx
Oralce数据库开发(二).Linux下配置使用ProC
http://blog.csdn.net/liwei_cmg/archive/2007/06/07/1643023.aspx
Rooms Information Pro*C Sample: Invoking Java Stored Procedure Using Pro*C
http://www.oracle.com/technology/sample_code/tech/java/jsp/samples/proccalljsp/readme.html
学习PROC+C教程.rar
服务器的test_PROC目录下。服务器IP:192.168.11.41
关于作者:
昵称:wenjian 档案信息: 联系方式:你可以通过wenjian.zhang@hand-china.com联系作者 点击查看wenjian发表过的所有文章... 本文永久链接: http://blog.retailsolution.cn/archives/221 |
对本文的评价:
使用PROC开发的环境配置
环境变量设置
在开发前必须确定以下环境变量已经设定:
$ORACLE_HOME =/d01/app/oracle/product/10.2.0/db_1
$LD_LIBRARY_PATH=$ORACLE_HOMEs/lib
$PROC=ORACLE_HOME/bin/./proc
编译文件基本步骤
1. 把makefile.proc文件放到你要编译的文件所在目录下(已上传放在/test_PROC目录下)
2. 运行make命令
make FileName=”你的文件名” -f 文件路径/makefile.proc
注意FileName不包含后缀,如果你要编译的文件叫test.pc则FileName=”test”
3. 会在同一目录下生成相应的c文件和最终可执行文件
存在的问题:
1.用proc编译生成的C文件存在语法错误,初步怀疑是服务器上库文件包含问题(本机上测试未发现问题,本机上生成的C文件在服务器上用gcc编译正常)
2.makefile未设生成的C文件的路径参数及最终可执行文件的输出参数,因此这些文件都产生在和pc源文件在同一目录下,比较杂乱。有待改进。