PLSQL操作

游标

SQL> set serveroutput on
SQL> DECLARE
  2    --定义游标,因为该游标中的数据需要更新,所以使用for update
  3    CURSOR cur_test1 IS
  4      SELECT *
  5        FROM test1
  6         FOR UPDATE;
  7    --定义记录类型,使用锚定。这样表test1变化时,不需要修改程序
  8    rec_test1 test1%ROWTYPE;
  9  BEGIN
 10    OPEN cur_test1;
 11    LOOP
 12      FETCH cur_test1 INTO rec_test1;
 13      EXIT WHEN cur_test1%NOTFOUND;
 14      --更新游标指针目前指向的test1的数据,使用current of cur_test1
 15      UPDATE test1
 16         SET a = a + 10
 17       WHERE CURRENT OF cur_test1;
 18    END LOOP;
 19    CLOSE cur_test1;
 20    COMMIT;
 21
 22    --我们使用隐式游标再打开一次,把结果显示出来看看
 23    FOR rec_test1_2 IN ( SELECT * FROM test1 ) LOOP
 24      dbms_output.put_line(rec_test1_2.a);
 25    END LOOP;
 26  END;

2 rowid

pl/sql的主要功能是处理表中的数据,效率的提高主要是在数据的查询上。我们已经知道索引可以提高查询效率。那么,索引的原理是什么呢?

例如,创建表employee(first_name varchar2, last_name varchar2),并在employee.last_name上创建索引ind_e1。我们可以把索引ind_e1看做是另外一张表,它包含2列(last_name, rowid)。

我们发出的sql:update employee set first_name=‘h‘ where last_name=‘g‘;先从索引ind_e1上查询到该行的rowid,然后再根据rowid直接定位到该行数据所在的数据块和行。

那么很明显,我们直接使用rowid作为查询条件,会比使用索引有更高的执行效率,因为这样会跳过从索引中查询rowid的步骤。下面是一个图示:

时间: 2024-12-26 01:07:35

PLSQL操作的相关文章

PLSQL操作excel

一.plsql数据库操作: 删除数据前备份一张表: create table plat_counter_def_bf as select * from plat_monitor_counter_def  //备份 delete from plat_monitor_counter_def                              //删除数据 Excel更新数据之前要删除数据 delete from plat_monitor_counter_group 解锁 select * fr

PLSQL操作Oracle创建用户和表

http://blog.csdn.net/doudou_demo/article/details/47666751 1.打开PLSQL,填写用户名和密码(初始有两个用户sys和system,密码是自己安装Oracle数据库时定的),Database选择ORCL(默认数据库,oracle中创建的用户就像是MySQL中建的数据库,两者有异曲同工之妙)  2.登陆成功后在界面的头部可以看到一下信息,最上面的[email protected]就表示是用户system在登录状态,其中菜单栏的session

PLSQL Developer连接oracle数据库安装及配置

一.下载安装PLSQL Developer(plsql安装百度也有步骤) 1.网上自己下载适合自己电脑的安装包(32或64),并解压. 2.打开解压的文件夹,得到以下三个文件(分别是汉化工具,PLSQL安装包.激活码),双击安装,如下图: 3.安装界面,点击next,进入下一步,如图: 4.安装协议界面,此处必须选择“I accept the terms in the license agreement”,进入下一步,如下图: 5.在安装路径选择界面,选择你需要安装的目录,比如我选择:C:\Pr

Oracle EBS OM RMA销售退货异常处理(Datafix)

系统版本: RDBMS : 9.2.0.6.0 Oracle 应用产品 : 11.5.10.2 问题症状:       1.通过物料事务处理查看销售订单行退货记录显示已经入库为40: 2.销售退货订单行已经接收入库.但是,订单行状态仍然是"等待退货",发运数量为空: 3.销售退货仍然能做RMA接收40数量.但是,查看接收事务处理记录显示已经接收入库了: 4.AR接口行和AR事务处理没有找到对应销售退货订单行的记录: 5.销售退货订单行工作流报错: EBS群下的朋友说要Datafix.但

上班第一天的总结

1.在笔记本上装个Oracle数据库客户端,通过PLSQL操作数据库: 2.在Oracle中写存储过程,如果要实现查询功能就必须通过游标来获得,即 open cur for select * from Table; 3.VSS和SVN一样,是代码管理工具,跟SVN上传和下载不同,它叫签入和签出,而且一旦有人签出,你就不能操作此文件: 4.后缀是.svc的文件是WCF文件,实现TextBox绑定通过DTO(Data Transfer Object)来完成. 上班第一天的总结

Oracle数据处理

DML语言 &:地址符:(PrepareStament) 批处理:插入--------一次将10号部门的员工插入新的表中: 其不必书写values语句:子查询中的值列表应与insert中子句中的列名对应: delete与truncate的区别:1:delete逐条删除,而truncate先摧毁表,然后在新建表: 2:主要区别是两种不同的语言: 3:delete不会释放空间,而truncate可以: 4:delete删除时会产生碎片,而truncate不会产生: 5:delete可以闪回,而tru

ORACLE的安装与网页版创建表空间的简单操作以及PLsql的简单操作

1.oracle的安装: 安装简单易学,在这里不做解释.下载看装包后耐心等待,注意安装目录不要有中文字符,尽量按照指定目录进行安装.安装完成后会占用有大约5g的内存. 如果要卸载oracle,需要用其自带的卸载工具进行卸载[universal installer],然后删除注册表项,删除环境变量,删除目录并且重新启动计算机. 2.在网页版进行创建表空间: 进入网页版: 在电脑的服务中我们可以看到一共有7个oracle的服务项目,其中只有三个是正在启动中.这三项中,只有当OracleDBConso

PLSQL数据库操作(excel)

一.plsql数据库操作: 删除数据前备份一张表: create table plat_counter_def_bf as select * from plat_monitor_counter_def  //备份 delete from plat_monitor_counter_def                              //删除数据 Excel更新数据之前要删除数据 delete from plat_monitor_counter_group 解锁 select * fr

一脸懵逼学习oracle(图形化界面操作---》PLSQL图形化界面)

1:经过几天的折腾,终于将oracle安装成功,创建用户,授权等等操作,接下来就安安心心学习oracle: 安装好PLSQL图形化界面和汉化以后(过程自己百度吧,百度more and more),登录图形化界面的时候就是这个B样: 2:登录成功以后就是这个B样: 左侧有三栏,自己根据需要自己拉查看信息就可以了,比如这样: 3:新建一个数据表: 点击新建然后就是这个样子的:起好数据表名称 新建数据表的列是这样子的: 4:插入数据是这样子的: 插入数据是这个样子的,点对号保存数据,点提交进行事务提交