欢迎来到天天文库
浏览记录
ID:59120718
大小:80.50 KB
页数:16页
时间:2020-09-15
《ORACLE培训教材之第三讲.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
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程序。但因为它
3、内嵌有SQL语句或PL/SQL块,所以它还含有与之不同的成份。为了让大家对Pro*C有个感性的认识,特将二者差别比较如下:C的全程变量说明C源程序函数1:同函数K。函数2:同函数K。C的局部变量说明函数K可执行语句应用程序首部C的外部变量说明外部说明段(ORACLE变量说明)通讯区说明Pro*C源程序函数1:同函数K。函数2:同函数K。C局部变量说明程序体内部说明部分内部说明段通讯区说明函数KC的可执行语句可执行语句SQL的可执行语句或PL/SQL块二.Pro*C程序的组成结构每一个Pro*C程序
4、都包括两部分:(1)应用程序首部;(2)应用程序体应用程序首部定义了ORACLE数据库的有关变量,为在C语言中操纵ORACLE数据库做好了准备。应用程序体基本上由Pro*C的SQL语句调用组成。主要指查询SELECT、INSERT、UPDATE、DELETE等语句。应用程序的组成结构如图所示:应用程序首部描述部分SQL通信区应用程序体EXECSQLBEGINDECLARESECTION(SQL变量的定义)EXECSQLENDDECLARESECTION;EXECSQLINCLUDESQLLA;EX
5、ECSQLCONNECT:<用户名>IDENTIFIEDBY:<口令>SQL语句及游标的使用1.应用程序首部应用程序的首部就是Pro*C的开始部分。它包括以下三部分:lC变量描述部分;lSQL变量描述部分(DECLARE部分);lSQL通信区。(1).DECLARE部分(描述部分)描述部分说明程序的SQL变量,定义部分以EXECSQLBEGINDECLARESECTION;开始和以EXECSQLENDDECLARESECTION;结束的。它可以出现在程序的主部,也可出现在局部lSQL变量的说明和使
6、用在说明段能为SQL变量指定的数据类型如表所示:数据类型描述CHARCHAR(n)INTSHORTLONGFLOATDOUBLEVARCHAR单字符n个字符数组整数短整数单精度浮点数双精度浮点数变长字符串这些数据类型实际上就是C语言的数据类型,其中VARCHAR中视为C数据类型的扩充。这在以后会谈到。SQL变量的使用应注意以下几点:l必须在描述部分明确定义l必须使用与其定义相同的大小写格式l在SQL语句中使用时,必须在其之前加一个“:”(冒号),但在C语句中引用时不需加冒号。l不能是SQL命令中的
7、保留字。l可以带指示变量。例如:EXECSQLBEGINDECLARESECTIONS;VARCHARprograme[30];Intporgsal,pempno;EXECSQLENDDECLARESECTION;EXECSQLSELECTENAME,SALINTO:programe,:progsalFROMEMPWHEREEMPNO=:pempno;(2).指示器变量的说明和引用指示变量实际上也是一类SQL变量,它被用来管理与其相关联的宿主变量(即在SQL语句中充当输入或输出的变量)。每一个宿主
8、变量都可定义一个指示器变量,主要用于处理空值(NULL)指示器变量的说明基本同一般SQL变量一样,但必须定义成2字节的整型,如SHORT、INT。在SQL语句中引用时,其前也应加“:”(冒号),而且必须附在其相关联的宿主变量之后,在C语句中,可独立使用。当指示器变量为-1时,表示空值。例如:EXECSQLBEGINDECLARESECTION;INTdept-number;SHORTind–num;CHARemp–name;EXECSQLENDDECLARESECTION;Scan
此文档下载收益归作者所有