Oracle %ROWTYPE 用法

 

Oracle 中 %ROWTYPE:

 

   %ROWTYPE:表示该类型为行数据类型,存储的时候为一行数据,一行有很多列,相当于表中的一行数据,也可以的游标中的一行数据。

 

   用到%ROWTYPE作用是:当查询整行的时候(SELECT * FROM EMP;),那么效率比每一个字段对应快。

 

    例如: v_info emp%ROWTYPE; //该类型为emp表中的一行数据类型

               v_cinfo c_emp%ROWTYPE //该类型为游标c_emp中的一行数据类型 

下面是一个例子:

Oracle代码:

  • 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.ename);      
  •   END LOOP;   
  •   CLOSE c_emp;   
  • END;  

     

    文章出处:

    http://advance0683.iteye.com/blog/1055226

     

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle的FORALL语句用于在单个数据库操作一次性插入、更新或删除多行数据,从而提高了数据操作的效率。其语法如下: ``` FORALL index IN lower_bound..upper_bound DML_statement; ``` 其,`index`是循环变量,`lower_bound`和`upper_bound`是循环变量的上下限。`DML_statement`是要执行的DML语句,可以是INSERT、UPDATE或DELETE语句。 FORALL语句的执行过程是将所有数据绑定到数组,然后将数组作为一个整体提交给数据库进行操作。因此,FORALL语句需要与数组一起使用。 例如,下面的代码使用FORALL语句在表EMP批量插入多行数据: ``` DECLARE TYPE EmpArray IS TABLE OF emp%ROWTYPE; emp_tab EmpArray := EmpArray(); BEGIN emp_tab.extend(3); emp_tab(1).empno := 1001; emp_tab(1).ename := 'John'; emp_tab(1).job := 'Manager'; emp_tab(2).empno := 1002; emp_tab(2).ename := 'Mary'; emp_tab(2).job := 'Clerk'; emp_tab(3).empno := 1003; emp_tab(3).ename := 'Bob'; emp_tab(3).job := 'Analyst'; FORALL i IN 1..3 INSERT INTO emp VALUES emp_tab(i); END; ``` 在这个例子,首先定义了一个类型为EmpArray的数组类型,然后创建了一个EmpArray类型的数组emp_tab,并对其进行赋值。最后,使用FORALL语句将数组数据一次性插入到表EMP。 需要注意的是,FORALL语句只能用于执行批量操作,不能用于查询数据。此外,FORALL语句执行的DML语句必须是单条语句,不能包含子查询、函数或存储过程调用等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值