IF ,ELSIF, CASE WHEN
DECLARE
A NUMBER;
BEGIN
/* a:= 10;
dbms_output.put_line(a);*/
/* A := 0 ;
IF A < -1 THEN
--if后面要加then ,else后面就不用加,elsif(注意:没有e) 后面也要加then
DBMS_OUTPUT.PUT_LINE('对了');
ELSIF a>1 THEN
DBMS_output.put_line('哈哈');
ELSE
DBMS_OUTPUT.PUT_LINE('撸撸');
END IF;*/
A := 1;
CASE A
WHEN 1 THEN
DBMS_OUTPUT.PUT_LINE('对了');
WHEN 2 THEN
DBMS_OUTPUT.PUT_LINE('哈哈');
WHEN 3 THEN
DBMS_OUTPUT.PUT_LINE('撸撸');
END CASE;
END;
GOTO 标签 , LOOP 循环,for循环,游标的使用, NULL的含义
declare
i integer;
begin
i:= 5;
IF i=5 THEN
GOTO 啦啦; --无条件分支
ELSE
NULL;
END IF;
dbms_output.put_line('洛洛');
<< 啦啦>> --标签名
dbms_output.put_line('嘿嘿');
declare
i integer;
stus student%ROWTYPE; --表里面每一行的类型,把其看成一个对象,引用类型
CURSOR stu IS SELECT * FROM student st; --游标查询的是那个student表里面的内容
begin
i:= 5;
IF i=5 THEN
GOTO 啦啦; --无条件分支
ELSE
NULL; --什么都不执行
END IF;
dbms_output.put_line('洛洛');
<< 啦啦>> --标签名
dbms_output.put_line('嘿嘿');
LOOP
EXIT WHEN i=0; --退出循环的条件
dbms_output.put_line(i);
i:= i-1;
END LOOP;
WHILE i > 0 LOOP --while 循环
dbms_output.put_line(i);
i:= i-1;
END LOOP;
FOR ss IN 2..5 --数值型for 循环
LOOP
dbms_output.put_line(ss);
END LOOP;
--游标型for循环
FOR ss IN stu --跟迭代器的效果相类似
LOOP
dbms_output.put_line(ss.name); --把student表里面的名字打印出来,并且只能单条信息的查询
END LOOP;
--另一种方法用for循环的方式来遍历游标
在游标里面的属性:
FOUND NOTFOUND ROWCOUNT ISOPEN
OPEN stu; --打开游标
LOOP
FETCH stu INTO stus; --把游标放在引用类型里面
EXIT WHEN stu%NOTFOUND; --当里面没有内容的时候退出for循环
dbms_output.put_line(stus.name);
END LOOP;
CLOSE stu; --关闭游标
END ;