CHIL-ORACLE-循环 语法

1  WHILE 语法:

WHILE  条件  LOOP
    ...
END  LOOP ;
例如:
declare --定义初始值 v_num number:=&num; 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:=&num;
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;--结束
/

原文地址:https://www.cnblogs.com/ChineseIntelligentLanguage/p/6513342.html