Oracle11g第08讲过程控制及匿名块Word格式.docx
- 文档编号:19879889
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:7
- 大小:16.38KB
Oracle11g第08讲过程控制及匿名块Word格式.docx
《Oracle11g第08讲过程控制及匿名块Word格式.docx》由会员分享,可在线阅读,更多相关《Oracle11g第08讲过程控制及匿名块Word格式.docx(7页珍藏版)》请在冰豆网上搜索。
●顺序语句:
GOTO语句,NULL语句
1.1条件语句
IF<
布尔表达式>
THEN
PL/SQL和SQL语句
Selectintofromtable;
ENDIF;
ELSE
其它语句
ELSIF<
其它布尔表达式>
提示:
ELSIF不能写成ELSEIF
例1:
select里面一定要有into
DECLARE
v_empnoemp.empno%TYPE:
=&
empno;
//做一个输入后,给变量赋值
V_salaryemp.sal%TYPE;
//声明一个和emp表中的sal相同类型的变量
V_commentVARCHAR2(35);
BEGIN
SELECTsalINTOv_salaryFROMempWHEREempno=v_empno;
//into是单行单列的
IFv_salary<
1500THEN
V_comment:
=‘Fairlyless’;
ELSIFv_salary<
3000THEN
=‘Alittlemore’;
ELSE
=‘Lotsofsalary’;
ENDIF;
DBMS_OUTPUT.PUT_LINE(V_comment);
END;
1.2CASE表达式
CASEselector
WHENexpression1THENresult1
WHENexpression2THENresult2
WHENexpressionNTHENresultN
[ELSEresultN+1]
例2:
DECLARE
V_gradechar
(1):
=UPPER(‘&
p_grade’);
V_appraisalVARCHAR2(20);
V_appraisal:
=
CASEv_grade
WHEN‘A’THEN‘Excellent’
WHEN‘B’THEN‘VeryGood’
WHEN‘C’THEN‘Good’
ELSE‘Nosuchgrade’
END;
DBMS_OUTPUT.PUT_LINE(‘Grade:
‘||v_grade||’Appraisal:
‘||v_appraisal);
1.3循环
1.简单循环
LOOP
要执行的语句;
EXITWHEN<
条件语句>
/*条件满足,退出循环语句*/
ENDLOOP;
例3.
intNUMBER
(2):
=0;
LOOP
int:
=int+1;
DBMS_OUTPUT.PUT_LINE('
int的当前值为:
||int);
EXITWHENint=10;
ENDLOOP;
2.WHILE循环
WHILE<
例4.
xNUMBER;
x:
=1;
WHILEx<
10LOOP
X的当前值为:
||x);
x:
=x+1;
3.数字式循环
FOR循环计数器IN[REVERSE]下限..上限LOOP
//使用reverse与不使用的区别:
一个倒序,一个正序
每循环一次,循环变量自动加1;
使用关键字REVERSE,循环变量自动减1。
跟在INREVERSE后面的数字必须是从小到大的顺序,而且必须是整数,不能是变量或表达式。
可以使用EXIT退出循环。
例5.
FORintin1..10LOOP
'
例6.
CREATETABLEtemp_table(num_colNUMBER);
V_counterNUMBER:
=10;
INSERTINTOtemp_table(num_col)VALUES(v_counter);
FORv_counterIN20..25LOOP
INSERTINTOtemp_table(num_col)VALUES(v_counter);
FORv_counterINREVERSE20..25LOOP
END;
DROPTABLEtemp_table;
1.4标号和GOTO
PL/SQL中GOTO语句是无条件跳转到指定的标号去的意思。
语法如下:
GOTOlabel;
......
<
label>
>
/*标号是用<
>
括起来的标识符*/
例7:
V_counterNUMBER:
LOOP
V_counter的当前值为:
||V_counter);
V_counter:
=v_counter+1;
IFv_counter>
10THEN
GOTOl_ENDofLOOP;
<
l_ENDofLOOP>
1.5NULL语句
在PL/SQL程序中,可以用null语句来说明“不用做任何事情”的意思,相当于一个占位符,可以使某些语句变得有意义,提高程序的可读性。
如:
...
…
IFv_numISNULLTHEN
GOTOprint1;
print1>
NULL;
--不需要处理任何数据。
100块钱买100只小鸡,公鸡5元/只,母鸡3元/只,小鸡1元3只,有多少种买法?
CreatetableChickens
(
Gongjinumber,
Mujinumber,
Xiaojinumber
);
xnumber;
ynumber;
znumber;
forxin1..20loop
foryin1..34loop
forzin1..100loop
if((x+y+z=100)and(5*x+3*y+1/3*z=100))
then
insertintoChickensvalues(x,y,z);
endif;
endloop;
/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle11g 08 过程 控制 匿名
![提示](https://static.bdocx.com/images/bang_tan.gif)