`

oracle数组游标批量插入

阅读更多
declare
  type ary is table of dept%rowtype index by pls_integer;
  dept_ary ary;
  inum     pls_integer;
begin

  for i in 1 .. 4 loop
    inum := i * 10;
    --先向数组里面填充数据 每次取一条数据填充到数组(i);
    select * into dept_ary(i) from dept where dept.deptno = inum;
    dbms_output.put_line(dept_ary(i).loc);
  end loop;

  for i in dept_ary.first .. dept_ary.last loop
    dbms_output.put_line('第' || i || '条数据:' || dept_ary(i).loc);
  end loop;

end;

     

 

-- 使用显式游标
declare
  cursor e is
    select * from dept;
  type ary is table of dept%rowtype index by pls_integer;
  myary ary;
  idx   pls_integer;
begin
  open e;
  fetch e bulk collect
    into myary;
  close e;

  idx := myary.first;
  while (idx is not null) loop
    dbms_output.put_line('record of deptno : ' || myary(idx).deptno);
    idx := myary.next(idx);
  end loop;
end;

 

 

declare
  type ary is table of dept%rowtype index by pls_integer;
  dept_ary ary;
  aryindex pls_integer;
begin
  -- 使用 bulk collect 批量插入到数组(内存)
  select dept.* bulk collect into dept_ary from dept;

  dbms_output.put_line('总记录数:' || dept_ary.count);
  aryindex := dept_ary.last;

  dbms_output.put_line('最后一条: ' || dept_ary(aryindex).dname);
  aryindex := dept_ary.first;

  while (aryindex is not null) loop
    dbms_output.put_line('第' || aryindex || '条数据:' || dept_ary(aryindex)
                         .dname);
    aryindex := dept_ary.next(aryindex);
  end loop;
end;

 

分享到:
评论

相关推荐

    oracle oci 批量插入源代码

    3. **批量插入**:在Oracle OCI中,批量插入通常涉及使用oci_bind_array_by_name函数将一组数据绑定到同一个SQL插入语句中的多个占位符。这组数据可以是二维数组或其他合适的数据结构。执行oci_execute时,数据库一...

    只能在PL/SQL中访问联合数组。

    虽然不能在SQL语句中直接使用联合数组,但可以通过PL/SQL将它们与数据库表格进行交互,例如通过游标将查询结果加载到联合数组,或者将联合数组的内容插入到数据库表格。 关于`add_months`函数,它是Oracle PL/SQL中...

    oracle 迅速查询和更新大数据

    -- 执行批量插入操作 forall i in 1..ref_bulk.count insert into emp_table_his values ref_bulk(i); commit; exit when c_bulk%notfound; end loop; close c_bulk; end; ``` 在这个例子中,`ref_bulk`变量...

    oracle的proc学习资料

    1. **数组功能**: 动态SQL可以支持数组操作,如批量插入、更新等,这对于提高性能非常有帮助。 2. **sqlca通讯区结构**: sqlca通讯区结构是用来传递Oracle与应用程序之间的状态信息,包括错误信息等。 3. **登录...

    Oracle PL/SQL语言初级教程

    6. **Oracle数据库游标使用大全** - 游标用于逐行处理查询结果,可以动态处理数据,实现循环和条件判断。 - 记录变量用于存储游标当前行的数据,便于处理和操作。 - 游标FOR循环简化了游标处理,自动遍历结果集,...

    oracle_sql_plsql课程资料.zip

    集合是PL/SQL中的数组类型,可以存储一组同类型的值,这对于批量处理数据非常有用。 6. 异常处理:PL/SQL提供了一套强大的异常处理机制,允许开发者编写健壮的代码,能够优雅地处理错误和异常情况。通过BEGIN......

    Oracle Database PLSQL Packages and Types Reference 12c

    - **改善性能**: 集合类型如表和变长数组可以批量操作数据,减少网络传输开销。 #### 实例与应用场景 - **实例1: 销售订单管理包** - **规范**: 定义了处理销售订单的接口,如添加订单(add_order)、查询订单(get_...

    oracle过程案例

    例如,一个简单的存储过程可能用于批量插入数据: ```sql CREATE OR REPLACE PROCEDURE insert_batch ( p_table_name VARCHAR2, p_data_array VARCHAR2) AS BEGIN FOR i IN 1..Array_Size(p_data_array) LOOP ...

    Oracle.PL.SQL程序设计

    8. **PL/SQL与SQL的结合**:PL/SQL可以直接嵌入SQL语句,进行数据的查询、插入、更新和删除,也可以通过bulk collect操作批量处理数据。 9. **游标表达式与集合操作**:游标表达式简化了集合与SQL语句的交互,集合...

    PROC批量导入导出ORACLE数据库表.docx

    - 使用`EXEC ORACLE OPTION`声明启用ORACA(Oracle通信区)和释放游标选项,这有助于优化数据库操作的性能。 在实际应用中,根据具体需求,可以调用这些函数来批量处理数据的导入导出,有效提高数据处理的效率。...

    PRO*C的批量读取

    其中`ARRAY_NO`表示每次批量读取的行数,而每个字符数组的大小则根据实际字段长度来确定。 #### 五、性能优化 在实际操作过程中,需要注意以下几点以进一步提高性能: 1. **减少数据库交互次数**:通过一次性读取...

    精通Oracle[1].10g.PL_SQL编程1.pdf

    - **批处理操作**:使用批量插入、更新或删除操作而非单个操作可以减少数据库I/O操作次数,提高效率。 - **避免游标滥用**:过多使用显式游标会导致性能下降,应尽量使用集合或数组来处理多行数据。 - **SQL语句优化...

    Oracle PL SQL语言基础

    DML语句包括INSERT、UPDATE、DELETE,用于对数据库中的数据进行插入、修改和删除操作。PL/SQL提供了这些操作的高级形式,如BULK COLLECT和FORALL,用于批量处理数据,提高性能。 六、游标 游标(CURSOR)是PL/SQL中...

    oracle pro c/c++资料

    在应用程序体中,开发者编写C或C++代码来实现具体业务逻辑,包括连接到Oracle数据库、执行SQL语句(插入、更新和删除)、查询数据以及处理游标。 - 连接到Oracle数据库:使用Oracle提供的API函数,如...

    oracle 官方教程 PLSQL Fundamentals

    9. **游标表达式(Cursor Expressions)和Bulk Collect**:了解如何使用游标表达式简化数据处理,以及Bulk Collect特性,用于高效地批量处理大量数据。 10. **事务管理**:学习如何在PL/SQL中控制事务,包括BEGIN、...

    PLSQL操作大全Oracle数据库

    - 数据插入:使用INSERT语句向表中添加数据,可以单行插入,也可以通过SELECT语句批量插入。 - 数据更新:UPDATE语句用于修改已存在的数据,可以结合WHERE子句指定更新条件。 - 数据删除:DELETE语句删除表中的...

    精通Oracle.10g.PLSQL编程

    访问Oracle 6.1 检索单行数据 6.2 操纵数据 6.2.1 插入数据 6.2.2 更新数据 6.2.3 删除数据 6.2.4 SQL游标 6.3 事务控制语句 6.4 习题 第7章 编写控制结构 7.1 条件分支...

    oci_-test.rar_OCI_Test_oracle_vc oci

    oci_ test 文件夹中包含的是一个使用OCI(Oracle Call Interface)技术在Visual C++(VC)环境下连接Oracle数据库并实现高效数据批量传输的示例。OCI是Oracle公司提供的C语言接口,允许开发者直接与Oracle数据库进行...

    MLDN魔乐科技JAVA培训_Oracle课堂24_嵌套表、可变数组.rar

    总的来说,理解和熟练使用Oracle的嵌套表和可变数组是提升数据库开发效率的关键,尤其是在处理复杂数据结构和批量操作时。通过MLDN魔乐科技的JAVA培训课程,学员可以深入理解这两种数据结构的原理和应用,从而在实际...

Global site tag (gtag.js) - Google Analytics