举例:
定义一个table类型的数组变量存储一条记录
数组变量赋值
数组变量中删除一条记录
数组变量中增加一条记录
数组变量中打印所有记录
DECLARE --定义一个记录类型 TYPE row_type IS RECORD( empno NUMBER, --项目ID ename VARCHAR2(10), --任务ID sal NUMBER); --定义一个记录类型的数组 TYPE row_arry IS TABLE OF row_type INDEX BY BINARY_INTEGER; emp_rec row_arry; i NUMBER := 0; BEGIN --存入初始数据 FOR rec IN (SELECT emp.empno, emp.ename, emp.sal FROM emp) LOOP i := i + 1; emp_rec(i).empno := rec.empno; emp_rec(i).ename := rec.ename; emp_rec(i).sal := rec.sal; END LOOP; --打印数据 dbms_output.put_line('初始数据打印'); i := emp_rec.first; WHILE i IS NOT NULL LOOP dbms_output.put_line('record of ' || i || ' is ' || to_char(emp_rec(i).empno) || '-' || emp_rec(i).ename || '-' || emp_rec(i).sal); i := emp_rec.next(i); END LOOP; dbms_output.put_line('记录总数:' || emp_rec.count); dbms_output.put_line('删除一条数据后打印'); emp_rec.delete(3); i := emp_rec.first; WHILE i IS NOT NULL LOOP dbms_output.put_line('record of ' || i || ' is ' || to_char(emp_rec(i).empno) || '-' || emp_rec(i).ename || '-' || emp_rec(i).sal); i := emp_rec.next(i); END LOOP; dbms_output.put_line('记录总数:' || emp_rec.count); dbms_output.put_line('又删除一条数据后打印'); emp_rec.delete(5); i := emp_rec.first; WHILE i IS NOT NULL LOOP dbms_output.put_line('record of ' || i || ' is ' || to_char(emp_rec(i).empno) || '-' || emp_rec(i).ename || '-' || emp_rec(i).sal); i := emp_rec.next(i); END LOOP; dbms_output.put_line('记录总数:' || emp_rec.count); dbms_output.put_line('增加一条数据后打印'); i := emp_rec.last + 1; emp_rec(i).empno := 8888; emp_rec(i).ename := 'test'; emp_rec(i).sal := 1000; i := emp_rec.first; WHILE i IS NOT NULL LOOP dbms_output.put_line('record of ' || i || ' is ' || to_char(emp_rec(i).empno) || '-' || emp_rec(i).ename || '-' || emp_rec(i).sal); i := emp_rec.next(i); END LOOP; dbms_output.put_line('记录总数:' || emp_rec.count); dbms_output.put_line('修复删除的一条数据后打印'); emp_rec(5).empno := 7654; emp_rec(5).ename := 'MARTIN'; emp_rec(5).sal := 1250.00; i := emp_rec.first; WHILE i IS NOT NULL LOOP dbms_output.put_line('record of ' || i || ' is ' || to_char(emp_rec(i).empno) || '-' || emp_rec(i).ename || '-' || emp_rec(i).sal); i := emp_rec.next(i); END LOOP; dbms_output.put_line('记录总数:' || emp_rec.count); END; |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25543703/viewspace-746659/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25543703/viewspace-746659/