1 WHILE 语法: WHILE 条件 LOOP ... END LOOP ;
例如: declare --定义初始值 v_num number:=# begin --编写循环结构和定义循环条件 while v_num<10 loop dbms_output.put_line('第'||v_num||'次输出'); --改变循环条件 v_num:=v_num+1; end loop; end; /
DO - WHILE 循环语法:
LOOP
...
EXIT
...
WHEN 条件
...
END LOOP ;
例如:
set serverout on
declare
v_num number:=#
begin
loop
v_num:=v_num+1;
dbms_output.put_line('第'||v_num||'次!');
exit when v_num>10;
end loop ;
end;
/
FOR 循环语法:
FOR 循环范围 LOOP
...
END LOOP
例如:
复制代码
--循环输出10次
set serverout on
begin
for i in 0..10 loop
dbms_output.put_line('第'||i||'次!');
end loop;
end;
/
------------------------------------------
第0次!
第0次!
第1次!
第2次!
第3次!
第4次!
第5次!
第6次!
第7次!
第8次!
第9次!
第10次!
1.31.1. CASE 语法:
CASE 测试变量
WHEN 目标1 THEN
...
WHEN 目标2 THEN
...
END CASE ;
例如:
set serverout on
declare
v_name varchar2(20):='&name';
begin
case v_name
when 'a' then
dbms_output.put_line('输入的是a');
when 'b' then
dbms_output.put_line('输入的是b');
end case;
end;
/
1.32 IF 语法
IF 表达式 THEN
...
END IF;
例如:
复制代码
set serverout on
declare
v_name varchar2(20):='&name';
begin
if v_name='kiki' then
dbms_output.put_line('登录成功');
end if;
end;
/
--------执行内容结果如下-------
输入 name 的值: kiki
原值 2: v_name varchar2(20):='&name';
新值 2: v_name varchar2(20):='kiki';
登录成功
复制代码
2. IF .. ELSE 语法:
IF 条件表达式 THEN
...
ELSE
...
END IF;
例如:
复制代码
set serverout on
declare
v_name student.sname%type:='&name';
begin
if v_name='kiki' then
dbms_output.put_line('登录成功!');
else
dbms_output.put_line('登录失败');
end if;
end;
/
--------执行内容结果如下-------
输入 name 的值: kiki
原值 2: v_name student.sname%type:='&name';
新值 2: v_name student.sname%type:='kiki';
登录失败
复制代码
3. IF ... ELSIF ... ELSE 嵌套结构
复制代码
IF 条件表达式 THEN
...
ELSIF 条件表达式 THEN
...
ELSE
...
END IF ;
复制代码
例如:
复制代码
--1.if-else结构
set serverput on --打开oracle自带的输出方法dbms_output
declare --声明
v_name varchar2(20):='&name'; --定义需要手动输入的变量
v_password number(10):='&password';
begin --开始
if v_name='kikiwen' and v_password=123 then --条件判断
dbms_output.put_line('登录成功');--输出语句
elsif v_name='kiki' and v_password=123 then
dbms_output.put_line('登录' || v_name || '账号成功');
else
dbms_output.put_line('登录失败!'|| v_name || '账号或者密码不正确');
end if;
end;--结束
/