`
jeelee
  • 浏览: 637657 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle学习笔记(第十十四章:批量绑定)

阅读更多
-- 使用批量绑定来执行 DELETE
DECLARE
TYPE NumList IS VARRAY(20) OF char(5) ;-- varray
v_emp_no NumList := NumList('00001', '00002', '00003'); -- department numbers
BEGIN
FOR i IN v_emp_no.FIRST..v_emp_no.LAST loop
      DELETE FROM emp_d
        WHERE emp_no  = v_emp_no(i);
   END LOOP;      
END;
--
DECLARE
TYPE NumList IS VARRAY(20) OF VARCHAR2(20);-- varray
v_emp_no NumList := NumList('DNS', 'SAL', 'BOM'); -- department numbers
BEGIN
FOR i IN v_emp_no.FIRST..v_emp_no.LAST loop
      DELETE FROM DEPT
        WHERE dept_name  = v_emp_no(i);
   END LOOP;      
END;
-- 使用批量绑定来执行 insert
DECLARE
  TYPE v_type_1 IS TABLE OF test.col_1%TYPE INDEX BY BINARY_INTEGER;
  TYPE v_type_2 IS TABLE OF test.col_2%TYPE INDEX BY BINARY_INTEGER;
  v_tab_1 v_type_1;
  v_tab_2 v_type_2;
BEGIN
  FOR i IN 1..1000 LOOP—- 不使用批量绑定
     v_tab_1(i) :=lpad(to_char(i),4,'0');
     v_tab_2(i) :=dbms_random.string('l',5);
  END LOOP;
  FORALL i IN 1..1000-- 使用批量绑定
     INSERT INTO test VALUES(v_tab_1(i),v_tab_2(i));
END;
-- 使用批量绑定的查询 select
DECLARE
  TYPE v_type_1 IS TABLE OF test.col_1%TYPE INDEX BY BINARY_INTEGER;
  TYPE v_type_2 IS TABLE OF test.col_2%TYPE INDEX BY BINARY_INTEGER;
  v_tab_1 v_type_1;
  v_tab_2 v_type_2;
BEGIN
  SELECT col_1,col_2 BULK COLLECT INTO v_tab_1,v_tab_2 FROM test;
  FOR i IN 1..v_tab_1.count LOOP
     dbms_output.put_line(v_tab_1(i)||'--'||v_tab_2(i));
  END LOOP;
END;
-- 使用批量绑定与 Cursor
DECLARE
  TYPE v_type_1 IS TABLE OF test.col_1%TYPE INDEX BY BINARY_INTEGER;
  TYPE v_type_2 IS TABLE OF test.col_2%TYPE INDEX BY BINARY_INTEGER;
  v_tab_1 v_type_1;
  v_tab_2 v_type_2;
  CURSOR cur IS SELECT col_1,col_2 FROM test;
BEGIN
  OPEN cur;
  FETCH cur BULK COLLECT INTO v_tab_1,v_tab_2;
  FOR i IN 1..v_tab_1.count LOOP
    dbms_output.put_line(v_tab_1(i));
  END LOOP;
END;
-- 使用批量绑定到 记录数组  version 9i
DECLARE
  TYPE v_rec_tab IS TABLE OF styletype%ROWTYPE ;
  --TYPE v_rec IS RECORD(col_1 CHAR(4),col_2 CHAR(5));
  --TYPE v_rec_tab IS TABLE OF v_rec INDEX BY BINARY_INTEGER;
  v_rectab v_rec_tab;
  CURSOR cur IS SELECT fact_no, styletype_no, styletype_nm ,hkstyletype_no, hkstyletype_nm  FROM styletype;
BEGIN
  OPEN cur;
  FETCH cur BULK COLLECT INTO v_rectab;
END ;
-- 限制返回的行数
DECLARE
  TYPE v_type_1 IS TABLE OF test.col_1%TYPE INDEX BY BINARY_INTEGER;
  TYPE v_type_2 IS TABLE OF test.col_2%TYPE INDEX BY BINARY_INTEGER;
  v_tab_1 v_type_1;
  v_tab_2 v_type_2;
  CURSOR cur IS SELECT col_1,col_2 FROM test;
  n NUMBER:=100;
BEGIN
  OPEN cur;
  FETCH cur BULK COLLECT INTO v_tab_1,v_tab_2 LIMIT n;
  FOR i IN 1..v_tab_1.count LOOP
    dbms_output.put_line(v_tab_1(i));
  END LOOP;
END;
-- INSERT, UPDATE, or DELETE 的批量绑定 returning
DECLARE
  TYPE v_type_1 IS TABLE OF test.col_1%TYPE INDEX BY BINARY_INTEGER;
  TYPE v_type_2 IS TABLE OF test.col_2%TYPE INDEX BY BINARY_INTEGER;
  v_tab_1 v_type_1;
  v_tab_2 v_type_2;
  CURSOR cur IS SELECT col_1,col_2 FROM test;
BEGIN
  DELETE FROM test RETURNING col_1 BULK COLLECT INTO v_tab_1;
  FOR i IN 1..v_tab_1.count LOOP
     dbms_output.put_line(v_tab_1(i));
  END LOOP;
END ;


分享到:
评论

相关推荐

    Oracle学习笔记 PDF

    ### Oracle学习笔记知识点详解 #### 一、Oracle简介 Oracle是一家知名的软件公司,以其数据库管理系统闻名全球。该公司成立于1977年,总部位于美国加利福尼亚州。Oracle不仅提供数据库解决方案,还涉及中间件、...

    Oracle学习笔记

    Oracle学习笔记 Oracle学习笔记是李兴华老师编写的Oracle从入门到精通的学习笔记,涵盖了 Oracle 的多表查询、连接、组函数和分组统计等知识点。在本篇笔记中,李兴华老师详细介绍了多表查询的基本语法、左右连接...

    Oracle学习笔记精华版

    Oracle学习笔记精华版是针对数据库管理系统Oracle的一份重要学习资源,涵盖了从基础概念到高级特性的全面知识。Oracle,作为全球广泛使用的大型企业级数据库系统,对于IT专业人员尤其是数据库管理员(DBA)来说,是...

    Oracle学习笔记.pdf

    以下是对Oracle学习笔记中提到的一些关键知识点的详细解释: 1. **SQL执行顺序**: SQL语句的执行顺序是:`FROM` -> `WHERE` -> `SELECT` -> `GROUP BY` -> `HAVING` -> `ORDER BY`。首先从`FROM`子句开始,确定...

    Oracle学习笔记.doc

    Oracle学习笔记 以下是我这一周学习oracle整理的笔记,包括课堂的内容和自己看额外看的视频补充的一些内容,基本上囊括了所有oracle的基本知识。主要的形式是例子代码加代码解释加运行结果,我个人认为对于没有学习...

    Oracle学习笔记-日常应用、深入管理、性能优化

    资源名称:Oracle学习笔记-日常应用、深入管理、性能优化内容简介:Oracle学习笔记-日常应用、深入管理、性能优化Oracle 11g是最具代表性的高端关系型数据库管理系统,它在世界各地的大型商务数据库应用系统中被广泛...

    oracle dba学习笔记

    Oracle DBA 学习笔记 标题:Oracle DBA 学习笔记 描述:学习使用维护 Oracle 数据库数年,对认为值得记录的 Oracle 维护脚本进行记录总结,存起来,虽然今后开源是方向,但不可否认 Oracle 仍然非常有水平的,在...

    ORACLE学习笔记:日常应用、深入管理、性能优化.part1/2

    ORACLE学习笔记:日常应用、深入管理、性能优化.part1

    oracle学习笔记(从入门到精通)

    压缩包主要包括15个文档,主要是本人学习oracle过程中的笔记,希望对你有帮助:主要文档如下: 01-常用命令.txt 02-表空间建表.txt 03-基本查询语句学习笔记.txt 04-高级查询语句学习笔记.txt 05-锁和表分区学习...

    成功之路:Oracle11g学习笔记.pdf

    《成功之路:Oracle 11g学习笔记》共24章,主要介绍了Oracle安装、干净卸载Oracle、数据库启动关闭、Oracle网络配置等相关内容。在介绍Oracle系统管理的知识以后,将介绍与开发相关的内容(如PL/SQL基础知识、存储过程...

    Oracle学习笔记——日常应用、深入管理、性能优化 示例代码

    Oracle 11g是最具代表性的高端关系型数据库管理系统,它在世界各地的大型商务数据库应用系统中被广泛应用。本书设计了大量的应用情景,介绍了数据库管理员和开发人员常用的管理、维护和优化Oracle 11g数据库的技术和...

    oracle学习笔记.txt

    超详细Oracle学习笔记,详细记录了oracle的学习过程中遇到的各种问题及基础知识,适合初中级oracle使用人员学习参考。

    ORACLE数据库体系架构视频教程详细完整版

    第十四章:数据装载 SqlLoader 第十五章:Oracle 网络 第三部分:管理Oracle数据库 第十六章:Oracle ASM 管理 第十七章:逻辑备份与恢复 第十八章:物化视图。 由于文件过大,只提供百度网盘下载地址和提取码,请...

    Oracle10g学习笔记

    Oracle10g学习笔记,Oracle10g学习笔记Oracle10g学习笔记Oracle10g学习笔记Oracle10g学习笔记Oracle10g学习笔记

    oracle 学习笔记

    oracle 学习笔记oracle 学习笔记oracle 学习笔记oracle 学习笔记oracle 学习笔记oracle 学习笔记oracle 学习笔记oracle 学习笔记oracle 学习笔记oracle 学习笔记oracle 学习笔记oracle 学习笔记

    Oracle 10g 学习笔记

    这个笔记是学习oracle数据库过程中整理出来的,比较详细,适合于初学者。 │ oracle与tomcat端口冲突.txt │ Oracle学习笔记.pdf │ Oracle学习笔记.wps │ 安装Oracle后myEclipse不能正常使用.txt │ 手工配置...

Global site tag (gtag.js) - Google Analytics