cursor是c_product,
r_product c_product%rowtype;
r_product 是cursor查询出的所有字段,然后用
r_product.claimno
r_product.stu
可以使用具体的某个字段的值,当字段特别多的时候用%rowtype相当节省功夫。
%ROWTYPE
表示该类型为行数据类型,存储的时候为一行数据,一行有很多列,相当于表中的一行数据,也可以的游标中的一行数据。
用到%ROWTYPE作用是:当查询整行的时候
select * from emp;
那么效率比每一个字段对应快。
例1
v_info emp%ROWTYPE; //该类型为 表 emp中的一行数据类型
v_cinfo c_emp%ROWTYPE //该类型为游标c_emp中的一行数据类型
例2
Oracle代码:
delimiter ;
DROP TABLE IF EXISTS emp ;
CREATE TABLE emp (id VARCHAR(30), name VARCHAR(30), age INT);
INSERT INTO emp (id, name, age) VALUES('aa', 'helloworld', 10);
INSERT INTO emp (id, name, age) VALUES('bb', 'goodbye', 20);
INSERT INTO emp (id, name, age) VALUES('cc', 'goodnight', 30);
INSERT INTO emp (id, name, age) VALUES('dd', 'seeyouthen', 40);
select * from emp;
DECLARE
r_emp emp%ROWTYPE; --该类型为emp表中一行的类型
cursor c_emp is SELECT * FROM emp ;
BEGIN
OPEN c_emp;
LOOP
FETCH c_emp into r_emp; --游标中查询出来的一行into进定义的变量r_emp中
EXIT WHEN c_emp%NOTFOUND;
dbms_output.put_line('员工姓名:' || r_emp.name );
END LOOP;
CLOSE c_emp;
END;
/