1、.;在DECLARE块中可以同时声明多个常量和变量。声明普通常量或 变量是需要说明以下信息:常量或变量的名称 常量或变量的数据类型,声明常量,声明常量的基本格式如下:constant:=;关键字constant表示声明的是常量。常量一旦定义,在以后的使用中 其值不再改变。一些固定的大小为了防止有人改变,最好定义成常量。例如 Pass_Score constant INTEGER:=60;,声明变量,声明变量的基本格式如下:(宽度):变量声明是没有关键字,但要指定数据类型,宽度和初始值可以定义 也可以不定义。例如 Address VARCHAR2(30):=地址未知;PL/SQL对一个未初始化的
2、变量,将被默认赋值为NULL例如 Address VARCHAR2(30);,案例,例如SET SERVEROUTPUT ON;DECLAREPass_Score constant INTEGER:Address VARCHAR2(30):=北京海淀区;BEGINDBMS_OUTPUT.PUT_LINE(Pass_Score);DBMS_OUTPUT.PUT_LINE(Address);END;,使用SET SERVEROUTPUT ON命令设置环境变量SERVEROUTPUT为打开状态,从而使PL/SQL程序能够 在SQL*Plus中输出结果使用函数DBMS_OUTPUT.PUT_LINE(
3、)可以输出参数的值,PL/SQL程序的执行部分,PL/SQL程序的执行部分包括赋值语句流程控制语句SQL语句游标语句,使用赋值语句,可以在声明变量时或处理变量时设置初始值。也可以在程 序的执行部分对变量进行赋值。SET ServerOutPut ON;DECLARETrainName VARCHAR2(30);BEGINTrainName:=Oracle Administration;Dbms_output.put_line(TrainName);运行结果如下图所示,流程控制语句,流程控制语句是所有过程性程序语言的关键PL/SQL的主要控制语句如下:if.then.else(elsif)判断i
4、f正确则执行then,否则执行else(elsif为嵌套判断)case 有逻辑的从数值中做出选择loop.exit.end 循环控制,用判断语句执行exitloop.exit when.end 同上,当when为真时执行exitwhile.loop.end 当while为真时循环for.in.loop.end 已知循环次数的循环,条件语句IF-1,IF语句是根据条件表达式的值决定执行相应的程序段。语 法结构如下:IF THEN.ELSIF THEN.ELSE END IF;其中ELSIF子句是可选项。,条件语句IF-2,程序中说明一个整型变量Number,使用IF语句判断Number变量是正
5、数、负数或0。DECLARENumber INTEGER:=-10;BeginIF Number 0 THENdbms_output.put_line(正数);ELSEdbms_output.put_line(0);END IF;End;执行效果如右图所示:,分支语句CASE-1,分支语句是对指定的变量进行判断,从指定的列表中选择 满足条件的行,并把该行的值作为CASE语句的结果返回。CASE语句的语法结构如下:CASE WHEN THEN 值1 WHEN THEN 值2.WHEN THEN 值nELSE 值n+1 END;,分支语句CASE-2,声明一个整型变量varDAY和一个字符型变量R
6、esult。使用CASE语句判断varDAY是星期几。如果变量varDAY在17之间,则能够显示相应的星期信 息,否则返回提示信息“数据越界”;DECLAREvarDAY INTEGER:=3;Result VARCHAR2(20);BEGINResult:=Case varDAY WHEN 1 THEN 星期一 WHEN 2 THEN 星期二 WHEN 3 THEN 星期三 WHEN 4 THEN 星期四 WHEN 5 THEN 星期五 WHEN 6 THEN 星期六 WHEN 7 THEN 星期日ELSE 数据越界 END;dbms_output.put_line(Result);,循环语
7、句LOOP.EXIT.END-1,此语句的功能是重复执行循环体中的程序块,直到执行EXIT语句,则退出循环。LOOP.EXIT.END语句的语法结构如下LOOPIF THEN EXITEND IF END LOOP;,循环语句LOOP.EXIT.END-2,计算14累加SET ServerOutPut ON;DECLAREvarNum INTEGER:=1;varSum INTEGER:=0;BEGINLOOPvarSum:=varSum+varNum;dbms_output.put_line(varNum);IF varNum=4 THENEXIT;dbms_output.put_line(
8、+);varNum:=varNum+1;END LOOP;dbms_output.put_line(=);dbms_output.put_line(varSum);,循环语句LOOP.EXIT WHEN.END-1,此循环语句的功能是重复执行循环体中的程序块,直到满 足EXIT WHEN后面的判断语句,则退出循环。LOOP.EXIT WHEN.END语句的语法结构如下:LOOPEXIT WHEN END LOOP;,循环语句LOOP.EXIT WHEN.END-2,重新实现14累加SET ServerOutPut ON;EXIT WHEN varNum=4;,循环语句WHILE.LOOP.EN
9、D LOOP-1,此语句的功能是当WHILE后面的语句条件成立时,重复执 行循环体中的程序块。WHILE.LOOP.END LOOP语句语法结构如下:WHILE LOOPEND LOOP;,循环语句WHILE.LOOP.END LOOP-2,再次实现14累加SET ServerOutPut ON;BEGINWHILE varNum=4 LOOPvarSum:IF varNum 4 THEN dbms_output.put_line(+);,循环语句FOR.IN.LOOP.END LOOP-1,此语句定义一个循环变量,并指定循环变量的初始值和终 止值。每循环一次循环变量自动加1.FOR.IN.L
10、OOP.END LOOP语句的语法如下FOR IN.LOOPEND LOOP;,循环语句FOR.IN.LOOP.END LOOP-2,再次实现14累加SET ServerOutPut ON;BEGINFOR varNum IN 1.4 LOOPvarSum:,异常处理,PL/SQL程序在运行过程中,可能会出现错误或异常现象例如:无法建立到Oracle的连接或用0做除数。好的程序应该对可 能发生的异常情况进行处理,异常处理代码在EXCEPTION块中实 现可以使用WHEN语句来定义异常。WHEN语句的使用方法如下:EXCEPTIONWHEN THENWHEN THEN.WHEN OTHERS T
11、HEN,预定义异常种类,案例,向一个NUMBER类型的变量赋值字符串时,导致异常的发 生SET ServerOutPut ON;DECLAREvarNum NUMBER;BEGINvarNum:=abc;EXCEPTIONWHEN VALUE_ERROR THENdbms_output.put_line(VALUE_ERROR);,PL/SQL常用函数,在PL/SQL编程中,会经常使用Oracle数据库提供的函数 来完成用户需要的功能。除了统计函数之外,还有字符型函数、数值型函数、日期 型函数等等。,字符型函数,数值型函数,日期型函数,本章总结,PL/SQL语言基本结构变量和常量的声明流程控制语句常用函数,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1