OraclePL/SQL语言基础优质PPT.pptx
《OraclePL/SQL语言基础优质PPT.pptx》由会员分享,可在线阅读,更多相关《OraclePL/SQL语言基础优质PPT.pptx(35页珍藏版)》请在冰豆网上搜索。
![OraclePL/SQL语言基础优质PPT.pptx](https://file1.bdocx.com/fileroot1/2022-10/4/196973f7-07e5-4a53-9867-cf173c595fdd/196973f7-07e5-4a53-9867-cf173c595fdd1.gif)
.;
在DECLARE块中可以同时声明多个常量和变量。
声明普通常量或变量是需要说明以下信息:
常量或变量的名称常量或变量的数据类型,声明常量,声明常量的基本格式如下:
constant:
=;
关键字constant表示声明的是常量。
常量一旦定义,在以后的使用中其值不再改变。
一些固定的大小为了防止有人改变,最好定义成常量。
例如Pass_ScoreconstantINTEGER:
=60;
声明变量,声明变量的基本格式如下:
(宽度):
变量声明是没有关键字,但要指定数据类型,宽度和初始值可以定义也可以不定义。
例如AddressVARCHAR2(30):
=地址未知;
PL/SQL对一个未初始化的变量,将被默认赋值为NULL例如AddressVARCHAR2(30);
案例,例如SETSERVEROUTPUTON;
DECLAREPass_ScoreconstantINTEGER:
AddressVARCHAR2(30):
=北京海淀区;
BEGINDBMS_OUTPUT.PUT_LINE(Pass_Score);
DBMS_OUTPUT.PUT_LINE(Address);
END;
使用SETSERVEROUTPUTON命令设置环境变量SERVEROUTPUT为打开状态,从而使PL/SQL程序能够在SQL*Plus中输出结果使用函数DBMS_OUTPUT.PUT_LINE()可以输出参数的值,PL/SQL程序的执行部分,PL/SQL程序的执行部分包括赋值语句流程控制语句SQL语句游标语句,使用赋值语句,可以在声明变量时或处理变量时设置初始值。
也可以在程序的执行部分对变量进行赋值。
SETServerOutPutON;
DECLARETrainNameVARCHAR2(30);
BEGINTrainName:
=OracleAdministration;
Dbms_output.put_line(TrainName);
运行结果如下图所示,流程控制语句,流程控制语句是所有过程性程序语言的关键PL/SQL的主要控制语句如下:
if.then.else(elsif)判断if正确则执行then,否则执行else(elsif为嵌套判断)case有逻辑的从数值中做出选择loop.exit.end循环控制,用判断语句执行exitloop.exitwhen.end同上,当when为真时执行exitwhile.loop.end当while为真时循环for.in.loop.end已知循环次数的循环,条件语句IF-1,IF语句是根据条件表达式的值决定执行相应的程序段。
语法结构如下:
IFTHEN.ELSIFTHEN.ELSEENDIF;
其中ELSIF子句是可选项。
条件语句IF-2,程序中说明一个整型变量Number,使用IF语句判断Number变量是正数、负数或0。
DECLARENumberINTEGER:
=-10;
BeginIFNumber0THENdbms_output.put_line(正数);
ELSEdbms_output.put_line(0);
ENDIF;
End;
执行效果如右图所示:
分支语句CASE-1,分支语句是对指定的变量进行判断,从指定的列表中选择满足条件的行,并把该行的值作为CASE语句的结果返回。
CASE语句的语法结构如下:
CASEWHENTHEN值1WHENTHEN值2.WHENTHEN值nELSE值n+1END;
分支语句CASE-2,声明一个整型变量varDAY和一个字符型变量Result。
使用CASE语句判断varDAY是星期几。
如果变量varDAY在17之间,则能够显示相应的星期信息,否则返回提示信息“数据越界”;
DECLAREvarDAYINTEGER:
=3;
ResultVARCHAR2(20);
BEGINResult:
=CasevarDAYWHEN1THEN星期一WHEN2THEN星期二WHEN3THEN星期三WHEN4THEN星期四WHEN5THEN星期五WHEN6THEN星期六WHEN7THEN星期日ELSE数据越界END;
dbms_output.put_line(Result);
循环语句LOOP.EXIT.END-1,此语句的功能是重复执行循环体中的程序块,直到执行EXIT语句,则退出循环。
LOOP.EXIT.END语句的语法结构如下LOOPIFTHENEXITENDIFENDLOOP;
循环语句LOOP.EXIT.END-2,计算14累加SETServerOutPutON;
DECLAREvarNumINTEGER:
=1;
varSumINTEGER:
=0;
BEGINLOOPvarSum:
=varSum+varNum;
dbms_output.put_line(varNum);
IFvarNum=4THENEXIT;
dbms_output.put_line(+);
varNum:
=varNum+1;
ENDLOOP;
dbms_output.put_line(=);
dbms_output.put_line(varSum);
循环语句LOOP.EXITWHEN.END-1,此循环语句的功能是重复执行循环体中的程序块,直到满足EXITWHEN后面的判断语句,则退出循环。
LOOP.EXITWHEN.END语句的语法结构如下:
LOOPEXITWHENENDLOOP;
循环语句LOOP.EXITWHEN.END-2,重新实现14累加SETServerOutPutON;
EXITWHENvarNum=4;
循环语句WHILE.LOOP.ENDLOOP-1,此语句的功能是当WHILE后面的语句条件成立时,重复执行循环体中的程序块。
WHILE.LOOP.ENDLOOP语句语法结构如下:
WHILELOOPENDLOOP;
循环语句WHILE.LOOP.ENDLOOP-2,再次实现14累加SETServerOutPutON;
BEGINWHILEvarNum=4LOOPvarSum:
IFvarNum4THENdbms_output.put_line(+);
循环语句FOR.IN.LOOP.ENDLOOP-1,此语句定义一个循环变量,并指定循环变量的初始值和终止值。
每循环一次循环变量自动加1.FOR.IN.LOOP.ENDLOOP语句的语法如下FORIN.LOOPENDLOOP;
循环语句FOR.IN.LOOP.ENDLOOP-2,再次实现14累加SETServerOutPutON;
BEGINFORvarNumIN1.4LOOPvarSum:
异常处理,PL/SQL程序在运行过程中,可能会出现错误或异常现象例如:
无法建立到Oracle的连接或用0做除数。
好的程序应该对可能发生的异常情况进行处理,异常处理代码在EXCEPTION块中实现可以使用WHEN语句来定义异常。
WHEN语句的使用方法如下:
EXCEPTIONWHENTHENWHENTHEN.WHENOTHERSTHEN,预定义异常种类,案例,向一个NUMBER类型的变量赋值字符串时,导致异常的发生SETServerOutPutON;
DECLAREvarNumNUMBER;
BEGINvarNum:
=abc;
EXCEPTIONWHENVALUE_ERRORTHENdbms_output.put_line(VALUE_ERROR);
PL/SQL常用函数,在PL/SQL编程中,会经常使用Oracle数据库提供的函数来完成用户需要的功能。
除了统计函数之外,还有字符型函数、数值型函数、日期型函数等等。
字符型函数,数值型函数,日期型函数,本章总结,PL/SQL语言基本结构变量和常量的声明流程控制语句常用函数,