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 ;