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语句
oracle 动态执行sql 循环 if判断 取余函数
1. **并发控制不当**:多线程或多个进程同时插入数据时,如果没有适当的并发控制机制,可能会导致数据丢失。 2. **事务管理问题**:如果在事务未提交的情况下就发生异常或者中断,则可能导致部分数据未能成功写入...
本文档介绍了一种利用存储过程实现循环插入数据的方法,并且通过两个自定义函数`Get_StrArrayStrOfIndex`和`Get_StrArrayLength`来支持这一功能。此方法适用于需要根据动态生成的数据列表进行批量插入的场景。 ####...
mysql 数据库已存储过程插入一千万条测试数据!利用项目即将上限需要,可以完全系统的测试项目性能!里面又完整的文档和各项说明:打开文档就可以实际操作。
接下来,我们将为每个表创建一个对应的存储过程,用于实现循环插入数据的功能。 #### 1. 存储过程 - MyISAM ```sql DELIMITER @ CREATE PROCEDURE insert_isam(IN item INTEGER) BEGIN DECLARE counter INT; SET...
数据结构,用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 循环临时表插入数据到另一张表 -- 声明变量 DECLARE @SupCode as varchar(100), @ProdCode as varchar(50), @PackLayer as varchar(50), @CodeStatus as varchar(50), @ProductId as varchar(50), @...
做测试时,到mysql数据库循环插入千万条数据的java代码
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数据库的批量数据导入功能。本文的主要内容包括如何使用Oracle.DataAccess.Client命名空间来实现批量导入功能,以及如何使用SqlBulkCopy...
1、创建测试表 CREATE TABLE `mysql_genarate` ( `id` int(11) NOT NULL AUTO_...2、创建一个循环插入的存储过程 CREATE DEFINER=`root`@`localhost` PROCEDURE `test_two1`( ) BEGIN DECLARE i INT DEFAU
循环插入: 代码如下: 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中插入数据的基本流程。通常,我们会创建一个Model类来...
本篇文章将深入探讨如何利用POI库在Word文档中进行模板替换以及循环插入表格的操作。 首先,我们需要理解Apache POI的工作原理。POI提供了HWPFOI(用于处理老版的.doc文件)和XWPF(用于处理新版的.docx文件)两个...
mysql 批量插入测试数据 ,可判断条件插入数据,随心所遇插入,do where 循环