使用格式 :
DECLARE
--声明变量
BEGIN
--开始处理事务
EXCEPTION
--对异常的处理
END;
声明变量格式:
1、常用型:val_name datatype;
如 pnum number(10);
2、记录型变量:val_name table_name%rowtype;
3、 引用型变量: val_name table_name.col_name%type;
IF结构的语句:
1、IF condition1 THEN result1;
result2;
END IF;
2、IF condition1 THEN result1;
ELSIF result2;
END IF;
3、IF condition1 THEN result1;
ELSIF condition2 THEN result2;
ELSE result3;
END IF;
循环语句:
1、WHILE condition_keep_loop LOOP
action1;
....
END LOOP;
2、 LOOP
EXIT WHEN condition_stop_loop;
action1;
....
END LOOP;
3 、 FOR val_number IN num_start..num_end LOOP
action1;
...
END LOOP;
光标 也叫游标 ,
有4个属性 :
%FOUND 找到返回true、
%NOTFOUND 没有找到返回true、
%ISOPEN 光标打开返回true、
%rowcount 返回光标影响的行数,即操作了多少行的记录。
光标的使用个数有限制,登录系统管理员身份
查看光标的个数:SHOW PARAMETER CURSOR
修改光标的使用个数:ALTER SYSTEM OPEN_CURSORS = num SCOPE = BOTH;
scope 有三个值 both、memory、spfile;表示更改的作用域 memory表示只更改当前实例,spfile表示只更改系统参数文件,实例要想生效需要重启数据库
声明 CURSOR cur_name ;
设置游标 :cur_name IS SELECT * FROM table_name;
一般使用格式 :
OPEN cur_name;
LOOP
FETCH cur_name into val1,...;
EXIT WHEN cur_name%notfound;
action1;
....
END LOOP;
CLOSE cur_name;
出现异常分两类,一类是系统已有设定的异常,另一类是自己设置的异常
系统已有的异常包括NO_DATA_FOUND、TOO_MANY_ROWS等