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;   
/
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐