欢迎来到天天文库
浏览记录
ID:34725024
大小:155.18 KB
页数:16页
时间:2019-03-10
《oracle培训教材之第三讲》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Pro*C的使用一Pro*C程序概述:1.什么是Pro*C程序在ORACLE数据库管理和系统中,有三种访问数据库的方法;(1)用SQL*Plus,它有SQL命令以交互的应用程序访问数据库;(2)用第四代语言应用开发工具开发的应用程序访问数据库,这些工具有SQL*Froms,QL*Reportwriter,SQL*Menu等;(3)利用在第三代语言内嵌入的SQL语言或ORACLE库函数调用来访问。Pro*C就属于第三种开发工具之一,它把过程化语言C和非过程化语言SQL最完善地结合起来,具有完备的过程处理能力,又能完成任何数据库的处理品任务,使用户可以通
2、过编程完成各种类型的报表。在Pro*C程序中可以嵌入SQL语言,利用这些SQL语言可以完成动态地建立、修改和删除数据库中的表,也可以查询、插入、修改和删除数据库表中的行,还可以实现事务的提交和回滚。在Pro*C程序中还可以嵌入PL/SQL块,以改进应用程序的性能,特别是在网络环境下,可以减少网络传输和处理的总开销。2.Pro*C的程序结构图通俗来说,Pro*C程序实际是内嵌有SQL语句或PL/SQL块的C程序,因此它的组成很类似C程序。但因为它内嵌有SQL语句或PL/SQL块,所以它还含有与之不同的成份。为了让大家对Pro*C有个感性的认识,特将二者
3、差别比较如下:C的全程变量说明C源程序函数1:同函数K。函数2:同函数K。C的局部变量说明函数K可执行语句应用程序首部C的外部变量说明外部说明段(ORACLE变量说明)通讯区说明Pro*C源程序函数1:同函数K。函数2:同函数K。C局部变量说明程序体内部说明部分内部说明段16/16通讯区说明函数KC的可执行语句可执行语句SQL的可执行语句或PL/SQL块二.Pro*C程序的组成结构每一个Pro*C程序都包括两部分:(1)应用程序首部;(2)应用程序体应用程序首部定义了ORACLE数据库的有关变量,为在C语言中操纵ORACLE数据库做好了准备。应用程序
4、体基本上由Pro*C的SQL语句调用组成。主要指查询SELECT、INSERT、UPDATE、DELETE等语句。应用程序的组成结构如图所示:应用程序首部描述部分SQL通信区应用程序体EXECSQLBEGINDECLARESECTION(SQL变量的定义)EXECSQLENDDECLARESECTION;EXECSQLINCLUDESQLLA;EXECSQLCONNECT:<用户名>IDENTIFIEDBY:<口令>SQL语句及游标的使用1.应用程序首部应用程序的首部就是Pro*C的开始部分。它包括以下三部分:lC变量描述部分;lSQL变量描述部分(
5、DECLARE部分);lSQL通信区。(1).DECLARE部分(描述部分)描述部分说明程序的SQL变量,定义部分以EXECSQLBEGINDECLARESECTION;开始和以EXECSQLENDDECLARESECTION;结束的。它可以出现在程序的主部,也可出现在局部lSQL变量的说明和使用在说明段能为SQL变量指定的数据类型如表所示:数据类型描述CHARCHAR(n)INTSHORTLONGFLOATDOUBLEVARCHAR单字符n个字符数组整数短整数单精度浮点数双精度浮点数变长字符串16/16这些数据类型实际上就是C语言的数据类型,其中V
6、ARCHAR中视为C数据类型的扩充。这在以后会谈到。SQL变量的使用应注意以下几点:l必须在描述部分明确定义l必须使用与其定义相同的大小写格式l在SQL语句中使用时,必须在其之前加一个“:”(冒号),但在C语句中引用时不需加冒号。l不能是SQL命令中的保留字。l可以带指示变量。例如:EXECSQLBEGINDECLARESECTIONS;VARCHARprograme[30];Intporgsal,pempno;EXECSQLENDDECLARESECTION;EXECSQLSELECTENAME,SALINTO:programe,:progsalF
7、ROMEMPWHEREEMPNO=:pempno;(2).指示器变量的说明和引用指示变量实际上也是一类SQL变量,它被用来管理与其相关联的宿主变量(即在SQL语句中充当输入或输出的变量)。每一个宿主变量都可定义一个指示器变量,主要用于处理空值(NULL)指示器变量的说明基本同一般SQL变量一样,但必须定义成2字节的整型,如SHORT、INT。在SQL语句中引用时,其前也应加“:”(冒号),而且必须附在其相关联的宿主变量之后,在C语句中,可独立使用。当指示器变量为-1时,表示空值。例如:EXECSQLBEGINDECLARESECTION;INTdep
8、t-number;SHORTind–num;CHARemp–name;EXECSQLENDDECLARESE
此文档下载收益归作者所有