PLSQL中一些特殊类型定义方法
1.record(初始不存在数据)
DECLARE
--定义类型
TYPE record_type_name IS RECORD
(column_name column_type,
...
);
或
record_type_name table_name%ROWTYPE;
(这样省去了一个个定义,直接使用一组表里定义好的列)
--定义变量
v_name record_type_name;
BEGIN
END;
注意:record中的元素类型可以有很多,甚至是表类型table
2.PLSQL内存表 table/(类似数组, 可以看成record的集合,初始不存在数据)
DECLARE
TYPE table_type_name IS TABLE OF
( column_type
/type
....
)
或
table%ROWTYPE;
INDEX BY BINARY_INTEGER;(标志)
v_name table_type_name;
BEGIN
END;
3.游标的使用
游标存储类似于一个表,但可以自动便遍历每一条记录,即每次循环指向下一条记录(出初始存在数据)
DECLARE
CURSOR cursor_name IS
(SELECT column1, column2 .. FROM table WHERE/GOUP BY/ORDER BY);
BEGIN
使用-
普通:OPEN cursor_name;
FETCH cursor_name INTO v_1,v_2... ; 提取当前数据
CLOSE cursor_name;
END;
FOR UPDATE NOWAIT;(定义时使用,对某一值立刻更新)
UPDATE table_name SET column = var
WHERE CURRENT OF cursor_name ;(获取当前记录)