日期:2014-05-16 浏览次数:20646 次
11.1、块结构
[DECLARE
declaration_statements
]
BEGIN
executable_statements
[EXCEPTION
exception_handing _statements
]
END;
/
每一条语句都由';'结尾,PL/SQL块由‘/’结尾。 SET SERVEROUTPUT ON命令打开服务器输出。
还可以用%TYPE关键字来定义变量类型,它告诉PL/SQL使用与表中列相同的类型。
11.3、在PL/SQL中,IF、THEN、 ELSE、ELSEIF、ENDIF等关键字来执行条件逻辑,还可以嵌套使用。
11.4、循环。
简单循环、while循环、for循环。
11.4.1、简单循环:直到显式结束循环之前一直运行。
LOOP
ststement
END LOOP; 要结束可以使用exit或exit when语句。
如:v_count :=0; loop v_count := v_count+1;
exit when v_count= 5; end loop;
在Oracle 11g中也可以使用CONTINUE 或CONTINUE WHEN 语句结束当前迭代;
如:v_count :=0; loop v_count := v_count+1;
if v_count = 3 then continue; end if ;
或者将此行换为:CIONTINUE WHEN v_count = 3;
exit when v_count= 5; end loop;
11.4.2、WHILE 循环:在某个条件出现之前一直运行。
如:v_count := 0; WHILE v_count<6
LOOP v_count := v_count+1; END LOOP;
11.4.3、FOR循环:预先确定次数。
如:FOR c IN [ REVERSE ] 1..5
LOOP
dbms_output.put_line(c);
END LOOP;
11.5、游标:可以使用游标(cursor)获取查询返回的记录。
步骤如下:1、声明一些变量,用于保存记录的列值。(注意使用%TYPE,类型要兼容)
2、声明游标并指定查询。(放在声明中:CURSOR cursor_name IS select_statement;)
3、打开游标。(在执行中:OPEN cursor_name)
4、每次从游标中获取一条记录,并将列值存储在第一步声明的变量中,然后对这些变量执行操作
FETCH cursor_name INTO variable[, variable···];
游标可能包含很多条记录,因此要使用循环,为确定循环是否结束,可以使用布尔变量coursor_name%NOTFOUND.
5、关闭游标。CLOSE cursor_name;
例如:SET SERVEROUTPUT ON
DECLARE
v_product_id products.product_id%TYPE;
v_name products.product_name%TYPE;
v_price products.product.price%TYPE;
CURSOR v_product_cursor IS