《PLSQL是ORACLE对标准数据库语言的扩展.docx》由会员分享,可在线阅读,更多相关《PLSQL是ORACLE对标准数据库语言的扩展.docx(76页珍藏版)》请在优知文库上搜索。
1、PUSQ1.jORAC1.E对标准数据岸语古的扩展,ORAC1.E公司已经相P1.JSQ1.解介到ORAC1.E效劳器和其他工R中了.近几年中更功的开发人员和DBA开始快用IVSQ1.本文格讲述P1./SQ1.基础语法,结构和纸件、以及如何设计并执行个PUSQ1.程17.PiySQ1.ttftA从版本6开始P1./SQ1.就被可靠的整合到ORACIE中1.一旦辛理P1./SQ1.的优点以及其独行的数据管理的便利性,那么你很难想象ORAC1.EKTP1./SQ1.的情形,P1./SQ1.不是一个独立的产品,他是一个整合到ORAC1.E效劳!S和ORAC1.E工具中的技术.可以把P1./SQ1.看
2、作ORAC1.E效劳器内的一个引聚,SqI语句执行者处理第个的却语句,P1./SQ.引擎处理P1./SQ1.和序焕.当P1./SQ1.程序块在P1.,SQ1.引芋处理时.ORAC1.E效劳器中的SQ1.语句执行器处理p1./sq1.程序块中的SQ1.语句.P1./SQ1.的优点如下.P1./SQ1.H种而性能的基于事务处理的语百,的运行在任何ORAC1.E环境中.支持所有数据处理命令.通过使用P1./SQ1.程序单元处理SW的数据定义和数据控加元案.P1./SQ1.支持所在SQ1.故据类型和所有SQ1.函故.I可时支杵所HORAC1.E对象炎型.P1./SO1.块可以被命名和存储在ORAC1.
3、E效劳正中,同时也能被其他的P1./SQ1.程序或SQI.命令调用,任何客户/效劳奋工具都能访问P1.ZSQ1.fSJ7,具有很好的可)6用性.,可以使用ORACI.E数据工具管理存植在效劳器中的P1./SQI.程序的平安性.可以授权或撤销数榭库其他用户访何PUSQ.程序的能力.P1.JSQ1.代因可以使用仟HSC11文本编辑器编写.所以对任何ORAC1.E能够运行的探作系统都是I1.第便利的,对于SW,ORACir必须在同一时间处理他一条SQI.谕句,在网络环境下这就意味作每一个独立的调用都须被orac1.e效劳器处理,这就占用大氽的效劳法时间,同时导致网络拥挤,而P1./SQ1.足以整个语
4、句块发给效劳器,这就降怔了网络拥挤,FVSQ1.块结构P1./SQ1.是一种块结构的语古,组成PiJsQ1.程序的的元是逻辑块,一个P1.JSQ1.程序包含了一个或多个逻辑块,年个块都可以划分为三个局部.与其他讲?(相同.变量在使用之前必须声明,P1./SQ1.提供了枚立的专门用于处理弁常的局都.卜面描述了P1.JSW块的不同局部:声明IIiB(DeC1.arat100section)声明局部包含/变量和常量的数据类型和初始侦这个局却是由关健字DEC1.ARE开始,如果不需要声明变紧或常后,那么可以忽略这一后部;需婴说明的是涉标的声明也在这一局部。执行II.(Executab1.esectio
5、n)执行局但是PtSQ1.块中的指令JEj加,由关键字BEGIN开始,所有的可执行语句施放在这一局部,其他的P1./SQ1.块也可以放在这一局部.异偶处JI(Excepticnsection)这一局部是可选的,在这一局部中处理异常或恰谈,对异常处理的详细讨论我幻花后面进行.PISQ1.坎培法(eCUREdecIttra1.ionS1.atetwitvBKG1.N-SaCUt(SbIQStAtetMmtsIn(EPHiW)exceptionS1.a1.vtvn1.sEXDP1./SQ1.块中的每一条语句都必翁以分号结求,SQ1.语句可以使多行的,但分号弟示该语句的结束,一行中可以有多条SU1.i
6、,他们之何以分号分隔。每一个P1./SQ1.块由BEGN或DEC1.ARE开钻.以END结束。注棒由一标示。JVSQ1.软的名和名Pt/SQ1.程序块可以是一个命名的程序块也可以是一个国名程序块.圣名程序块可以用在效劳森地也可以用在客户端。命名税分块可以E现在其他P1./SQ1.程序块的声明局都,这方市比较明显的是子程序,子程序可以在执行舄郎引用,也可以在异常处理局部引用.P1./SQ1.程序块可带独立茹译并存精在数挤(S中,任何与敢想库相芝茂的应用程序机可以访河这柜育储的P1./SQ1.程序块.ORAC1.E提供了四种类型的不存储的程序:.ffift.it,包.触发器出数是命名了的.存特在数
7、弟之中的P1./SQ1.程序块.函数挂殳零个或多个。入与效,有一小卷E1.值,退日值的敢据美型在创立由次时定义。定义函数的返法如下:R!NCT10*ina11e1.parnnMr.arateter.)JRETVRXdatatypesIS(xadec1.arationsBSG1.NexecuteS1.a1.ewntsEXBPTISiexceptionhand1.ersEXDria*过存储过程是一个P1./SO1.程序块,接受零个或多个与数作为怆入(INPirT)或输出(X11UD或班作输入又作物出(INa/D.与函数不同.存储过程没有退回慎.存传过程不能由SQ1.语句直揍使用.只能通NEXEC1
8、.i冬或P1./SQ1.程序块内部M1.用.定义存储过程的语法如下:PH1.x1.iICHEnwn?(purater(.(urun*1.cr.)ISI1.IXa1.dec1.ara1.iontf)IUiG1.N0XCwe(CWSTANT)daabyte(NOTM1.1.):=UEF1U1.1.eMpress1.nn注Jt:可以在声明变量的同时给受量及制性的力上NOTNIJ1.1.约束条件,此时交量在初始化时必然取值.*给交量取值有两种方式:直接给变量赋值X:=200sY=YMK*20):,Si1.SQ1.SE1.ECTIXTO或HfrGImT0f变量蛾值SE1.ECTSUM(SA1.ARY).
9、S1.X(SA1.XRY布.DINTOToTA1.-SA1.ARYeTATA1.-COMMISSIONIrKOMEMP1.OYEEWHEREDEPT=IO;常量常量与交黄相似,但售量的值在程序内部不能武支,焦量的值在定义时Iit于,,他的声明方式与爻量相依,但必叁包括关键宇COSTAN1.常量和交量都可统定义为SQ1.和用户定义的数搭类型“ZERQtAUECSr)数据美型标量(sca1.ar)数忤英3!没有内部坦件,他们大致可分力以下因矣:.nu11ber,character.date/tine,boo1.ean表1显示了鼓华锐抿笑里;表2兄示了字符数据美Sh表3显示了日窈和布尔敏抿美3!表1
10、Sca1.arTypesrNuaiericIMtetypeRangeSUb1.n8AscriptionBINARY!XTEGtX-21647KmRA1.MnRA1.POSITIVEWSiriVEXSGX11PE附于含偌单字中重数.手求存他十度低于MMBER值.用于AIM花&的于突熨(SUBnTE):WnRUZ用于小负敷PoSITIVE:只用于正做M1.tItA1.及只用于货我和*X1.1.1.值POSmvEX:只用于正象,不能用于NU1.1.fiSKw1.Yre:只看值;OAi.MN1.o1.0E-30-f1.,三125比DECIU.刈川口PRKOXF1.oArIxtkgeric存读数字值.句
11、括集致和浮息做.可以坦弟精良佣剃度方式.jf!nubcr胡韦的相度是物肥8注是以IMWUERICREA1.SMAmWP1.sjmeger-2M4I7与肘NAFYMGER长本中同,但录用矶4运算计,PtSJXT丽提做更好的性能.表2字秆电将类型datatyperangsubtypedccripticoIchar最大长度367字OIAftXCTER1.aSc最大长度2】“4836n字q存储N文长度字符字RAHftXK3Z767字节.一:.遂行缝糙.IjftW最大长皮2M7d836,7与1.aW数据夷里相似,同徉他也不让在字将集之同进行料我.RW11)18个字节:方式2m1.1.:”:、一二,:.;
12、一.、,:,方行标示不:.噌一我值.VARCI4W2最大代质3276多多节STRIKGAKUIAR与YAKHAR我格笑里相慎,3的耳交上足的字符中/明方法与YRRCHAR相同表3DATE和BOO1.1.iiWdatatype-;,“:,descriptIunBOo1.EAXTRUE小吹存贵辑今TRUE或FA1.SE.无金般INTEO014712BC育旬田定长的日期和肘向佰日电值中也谷计同1.oB数据美型IOB(大时象,1.argeQbjcc1.)数据表至用于存铭美假网像.声音达杼的大型数窕对象.数据对欧可以是二造制数据也可以是字符数奏,其最大长度不趣过4G。1.OB数据赛至支括任意访问方式,1
13、.QM只支持顺序访问方式。U)B存储在一个单独的性*上.同时一个1.OB定位符F1.OB1.OCaSr)存隹在原始的表中,该定(符是一个指向实际数据的指针,在P1.ZSf1.1.中件1.(复据使用ORAC1.E提供的包DBMS1.OB.1.OB品据类至可分为以下四哭:.BFI1.E.B1.OB.C1.0B.NC1.OB操作符与其他程序设计语吉相同,P1./SQ1.有一系列操作苻。操作将分为下面几类:.算术操作符.关系操作符.比较理作符.更辑探作符算术操作符如aI所示operatoroperation-减*枭方关系操作符主要用于条传为新语句或用于hrrc子阜中.关系掾作杵检交击件和结果是否为IrUC或IxIJiC.表5是P1./SQ1.中的关系操作符operatorcrationK小于梁作轩小于或等于拨件符匚大于,