`

循环插入数据

 
阅读更多

create or replace procedure xjxxgl_syncZp(p_jwxhs IN TYPE_JWXH_VARCHAR2,
                                          p_path  IN VARCHAR2,
                                          p_count out NUMBER) is

  /**
  *  学生照片批量插入
  *  2015年9月7日
 
  p_jwxhs 学生学号字符串数组集
  p_path  照片存放的文件夹路径
  p_count 统计插入照片条数
  */
  TYPE XSCUR IS REF CURSOR; --定义类型变量
  CUR_XS XSCUR; --引用游标的数据类型
  --这种变量通常用于存储过程和函数返回结果集时使用,
  --因为PL/SQL不允许存储过程或函数直接返回结果集,但可以返回类型变量,
  --于是引用游标的类型变量作为输出参数或返回值

  XSTEMP_XH VARCHAR2(30);
  count_start number;  --记录批量插入前数量
  count_end   number;  --记录批量插入后数量

BEGIN
  select count(*) into count_start from xsxxgl_xsjbxx WHERE zppath is not null;
  FOR I in p_jwxhs.first .. p_jwxhs.last LOOP
 
    OPEN CUR_XS FOR
      SELECT xs.jwxh
        FROM xsxxgl_xsjbxx xs
       WHERE xs.jwxh = p_jwxhs(I)
         and xs.zppath is null;
    FETCH CUR_XS
      INTO XSTEMP_XH;
 
    --判断学生照片是否为空,如果为空插入新的照片路径,不为空则不操作
    IF CUR_XS% FOUND THEN
      --如果学生照片为空则插入
      --用户信息表
      UPDATE xsxxgl_xsjbxx YH
         SET YH.Zppath = '/imageservlet?path='||p_path||'/'||p_jwxhs(I)||'.jpg'
       WHERE YH.Jwxh = p_jwxhs(I);
    END IF;
 
    CLOSE CUR_XS;
  END LOOP;
  --统计插入数量
  select count(*) into count_end from xsxxgl_xsjbxx WHERE zppath is not null;
  p_count := count_end - count_start;

exception
  when others then
    raise;
    rollback;
END xjxxgl_syncZp;

分享到:
评论

相关推荐

    存储过程(循环插入数据)

    本文将深入探讨如何利用存储过程中的循环结构——FOR LOOP,来批量插入数据,并讨论在不同环境中执行存储过程时可能遇到的问题。 在Oracle中,存储过程可以通过PL/SQL(Procedural Language extensions to SQL)...

    循环插入n条数据.sql

    循环插入n条数据sql语句

    sql循环插入测试数据

    oracle 动态执行sql 循环 if判断 取余函数

    Sqlserver大数据量插入速度慢或丢失数据的解决方法

    1. **并发控制不当**:多线程或多个进程同时插入数据时,如果没有适当的并发控制机制,可能会导致数据丢失。 2. **事务管理问题**:如果在事务未提交的情况下就发生异常或者中断,则可能导致部分数据未能成功写入...

    MSSQL 循环插入语句

    本文档介绍了一种利用存储过程实现循环插入数据的方法,并且通过两个自定义函数`Get_StrArrayStrOfIndex`和`Get_StrArrayLength`来支持这一功能。此方法适用于需要根据动态生成的数据列表进行批量插入的场景。 ####...

    百万数据批量插入存储过程

    mysql 数据库已存储过程插入一千万条测试数据!利用项目即将上限需要,可以完全系统的测试项目性能!里面又完整的文档和各项说明:打开文档就可以实际操作。

    mysql循环添加数据(存储详细)

    接下来,我们将为每个表创建一个对应的存储过程,用于实现循环插入数据的功能。 #### 1. 存储过程 - MyISAM ```sql DELIMITER @ CREATE PROCEDURE insert_isam(IN item INTEGER) BEGIN DECLARE counter INT; SET...

    用c++编写程序实现循环队列插入

    数据结构,用c++编写程序实现循环队列插入。

    批量插入数据库

    批量插入数据库

    C# 批量插入和更新数据

    6. **循环插入数据**:通过循环生成随机数据并将其添加到`DataSet`中,每300条数据执行一次`Update`操作以提交到数据库,并清空`DataSet`中的数据,以便继续下一轮的数据插入。 #### 三、批量更新数据 针对批量更新...

    循环向数据库添加数据

    以下是一个典型的PL/SQL循环插入数据的示例: ```sql DECLARE l_id NUMBER := 0; BEGIN WHILE (l_id ) LOOP INSERT INTO test (id, name) VALUES (seq_test.NEXTVAL, '天使'); l_id := l_id + 1; END LOOP; ...

    sqlserver 循环临时表插入数据到另一张表

    sqlserver 循环临时表插入数据到另一张表 -- 声明变量 DECLARE @SupCode as varchar(100), @ProdCode as varchar(50), @PackLayer as varchar(50), @CodeStatus as varchar(50), @ProductId as varchar(50), @...

    往mysql循环插入几千万条数据

    做测试时,到mysql数据库循环插入千万条数据的java代码

    python中将字典形式的数据循环插入Excel

    1.我们看到字典形式的数据如下所示 list=[[2891-1, D],[2892-1, D],[2896-1, B],[2913-1, 0],[2913-2, 1],[2913-3, 1]] 此list是在数据库中存在的 2.我们把这些样式的字点数据做一次数据转换 把list转换成字典的...

    C#实现Oracle数据批量导入

    C#实现Oracle数据批量导入 在本文中,我们将讨论如何使用C#语言实现对Oracle数据库的批量数据导入功能。本文的主要内容包括如何使用Oracle.DataAccess.Client命名空间来实现批量导入功能,以及如何使用SqlBulkCopy...

    MySQL循环插入千万级数据

    1、创建测试表 CREATE TABLE `mysql_genarate` ( `id` int(11) NOT NULL AUTO_...2、创建一个循环插入的存储过程 CREATE DEFINER=`root`@`localhost` PROCEDURE `test_two1`( ) BEGIN DECLARE i INT DEFAU

    用SQL批量插入数据的存储过程

    循环插入: 代码如下: DECLARE @MyCounter INT SET @MyCounter = 0 /*设置变量*/ WHILE (@MyCounter < 2) /*设置循环次数*/ BEGIN WAITFOR DELAY ‘000:00:10’ /*延迟时间10秒*/ INSERT INTO time_by_day (time_...

    ThinkPHP写数组插入与获取最新插入数据ID实例

    本实例将探讨如何在ThinkPHP中实现数组插入数据库以及获取最新插入数据的ID,这对于处理用户注册或其他数据录入场景非常有用。 首先,我们要了解在ThinkPHP中插入数据的基本流程。通常,我们会创建一个Model类来...

    java使用poi操作.doc word模板替换,循环插入表格

    本篇文章将深入探讨如何利用POI库在Word文档中进行模板替换以及循环插入表格的操作。 首先,我们需要理解Apache POI的工作原理。POI提供了HWPFOI(用于处理老版的.doc文件)和XWPF(用于处理新版的.docx文件)两个...

    mysql 批量插入测试数据

    mysql 批量插入测试数据 ,可判断条件插入数据,随心所遇插入,do where 循环

Global site tag (gtag.js) - Google Analytics