1.条件控制语句
IF 语句
IF 语句根据条件执行一系列语句,有三种形式:IF-THEN、 IF-THEN-ELSE 和 IF-THEN-ELSIF
--if语句语法:
if 条件表达式 then
plsql语句;
end if;
--如果条件表达式成立,那么执行then后面的plsql代码,如果条件不成立跳过if语句执行其它语句
declare
str varchar2(10);
begin
str:='&选择颜色:';
if str='red' then
dbms_output.put_line('红色');
end if;
if str!='red' then
dbms_output.put_line('不知道');
end if;
end;
--if else 语句语法:
if 条件表达式 then
plsql语句;
else
plsql语句;
end if;
--如果if的条件表达式成立,执行then后面的代码,如果条件不成立执行else后面的代码;
declare
v_str varchar2(20);
begin
v_str:='&请输入一个颜色';
if v_str='red' then
dbms_output.put_line('它是红色');
else
dbms_output.put_line('其它颜色');
end if;
end;
--elsif语句语法:
if 条件表达式1 then
plsql语句1;
...
elsif 条件表达式n then
plsql语句n;
else
plsql语句;
end if;
--如果条件表达式1成立,执行语句1,如果条件1不成立,判断下一个条件表达式,如果所有条件都不成立执行else后面的语句.其中elsif可以有多个,else部分可以省略
declare
v_str varchar2(20):='&动物:';
begin
if v_str='dog' then
dbms_output.put_line('它是一只狗');
elsif v_str='cat' then
dbms_output.put_line('它是一只猫');
elsif v_str='pig' then
dbms_output.put_line('它是一头猪');
else
dbms_output.put_line('不认识');
end if;
end;
CASE 语句
case
when 条件表达式1 then
plsql命令 值1;
when 条件表达式2 then
值2;
...
else
默认值;
end case;
--如果条件表达式1成立,那么就执行相应then后面的plsql语句,否则判断下一个条件表达式,如果所有条件都不成立,那么执行else后面的语句,其中else部分可以省略。
declare
v_str varchar2(20):='&动物:';
begin
case when v_str='dog' then
dbms_output.put_line('它是一只狗');
when v_str='cat' then
dbms_output.put_line('它是一只猫');
when v_str='pig' then
dbms_output.put_line('它是一头猪');
else
dbms_output.put_line('不认识');
end case;
end;
2.循环控制语句
循环控制用于重复执行一系列语句,分为三种类型:LOOP - 无条件循环;WHILE - 根据条件循环;FOR - 循环固定的次数
LOOP 循环
loop
plsql语句;
exit when 退出循环条件;
循环控制语句;
end loop;
--循环打印1到9的9个数字
declare
v_n number(10):=1;
begin
loop
dbms_output.put_line(''||v_n);
exit when v_n=9;
v_n:=v_n+1;
end loop;
end;
exit when:--退出循环关键字,如果条件成立立即退出循环
continue:--退出本次循环,不会结束循环
return:--退出程序,结束整个程序
WHILE 循环
while 循环条件 loop
循环体语句;
循环控制语句;
end loop;
--循环打印1到9
declare
v_n number(10):=1;
begin
while v_n <10 loop
dbms_output.put_line(''||v_n);
v_n:=v_n+1;
end loop;
end;
FOR 循环
for 循环变量 in [reverse] 集合|查询语句|游标变量 loop
循环体语句;
end loop;
reverse:表示循环的方向,不加表示从开始到结尾,加上表示从结尾到开头
--循环打印1 到9
begin
for i in 1..9 loop
dbms_output.put_line(''||i);
end loop;
end;
--循环打印dept表中的部门信息
begin
for v_dept in (select * from dept) loop
dbms_output.put_line(v_dept.deptno||','||v_dept.dname||','||v_dept.loc);
end loop;
end;
--select into语句(查询出的结果只能是一条数据): select 列名,列名,..,列名 into 变量1,变量2,..,变量n|record变量|rowtype变量 from 表名 where 条件; --输入一个部门编号,打印这个部门的信息 declare v_deptno number(10); v_dept dept%rowtype; begin v_deptno:=&deptno; select * into v_dept from dept where deptno=v_deptno; dbms_output.put_line(v_dept.deptno||','||v_dept.dname||','||v_dept.loc); end;
本文详细介绍了PL/SQL中的条件控制语句(包括IF、IF-ELSE、ELSIF和CASE),以及三种类型的循环控制(LOOP、WHILE和FOR),展示了如何在OracleSQL中使用这些结构进行编程。
&spm=1001.2101.3001.5002&articleId=133191283&d=1&t=3&u=b12a29e2a1314e88a72fce720047964e)
114

被折叠的 条评论
为什么被折叠?



