一个简单的存储过程(批量插入数据)

开发时总会需要批量插入一些测试数据,而批量又执行太慢。

CREATE OR REPLACE PROCEDURE "INSERTTESTDATA1"

AS

P_I          NUMBER;
P_NUM  NUMBER := 120160000550000;    //以此数开始每次加1,循环2000000次

BEGIN
  FOR P_I   IN 1 .. 2000000
  LOOP
   P_NUM := P_NUM +1;

INSERT INTO
     APPLY_MAIN_APPI
     (APPI_APP_ID,
      APPI_APP_TYPE,
      APPI_SEND_FLAG,
      CREATE_TIME,
      CREATE_DATE,
      UPDATE_TIME,
      UPDATE_DATE)

VALUES(
                    ‘0‘ || P_NUM,
                                ‘1‘,
                                ‘2‘,
                                ‘193604‘,
                                 TO_DATE(‘2016-11-10 17:18:34‘,‘YYYY-MM-DD HH24:MI:SS‘),
                                ‘194146‘,
                                 TO_DATE(‘2016-11-10 17:20:34‘,‘YYYY-MM-DD HH24:MI:SS‘));

END LOOP;
  COMMIT;
  DBMS_OUTPUT.PUT_LINE(‘Sample output‘);
END;

时间: 2024-08-05 11:09:00

一个简单的存储过程(批量插入数据)的相关文章

postgres 使用存储过程批量插入数据

参考资料(pl/pgsql 官方文档): http://www.postgresql.org/docs/9.3/static/plpgsql.html create or replace function creatData2() returns boolean AS $BODY$ declare ii integer; begin II:=1; FOR ii IN 1..10000000 LOOP INSERT INTO ipm_model_history_data (res_model, r

sqlserver存储过程批量插入数据

在系统中经常会遇到向数据库中批量插入数据情况,存储过程中没有数组,只有通过字符串分割循环插入,下面是一个本人研究的一个例子: create proc [dbo].[Proc_TestBatchMainDetailIns] @mainName nvarchar(50),@detailNameStr nvarchar(max),@detailAgeStr nvarchar(max), @detailRowCount int=1,@tmpFlag int=1,@newMainId int=0 as b

mysql利用存储过程批量插入数据

最近需要测试一下mysql单表数据达到1000W条以上时增删改查的性能.由于没有现成的数据,因此自己构造,本文只是实例,以及简单的介绍. 首先当然是建表: CREATE TABLE `fortest` (   `ID` INT(30) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,   `IP` VARCHAR(32) NOT NULL,   `OID` VARCHAR(15) DEFAULT NULL) 其次,构建存储过程: DELIMITER $$

简单的sqlserver批量插入数据easy batch insert data in sqlserver

DECLARE @pid INT,@name NVARCHAR(50),@level INT,@i INT,@column2 INT SET @pid=0 SET @name ='first' SET @level =5 SET @column2=0 SET @i=0 WHILE @i<30 --30为你要执行插入的次数 BEGIN INSERT INTO table_name ( pid, name,level, column2) VALUES ( @pid, @name,@level,@co

使用存储过程向数据库批量插入数据

<一> 前言 最近有个需求,需要向数据库并发批量插入数据. 最开始使用存储过程,类似这样的:  delimiter //   CREATE PROCEDURE load_part_tab()  begin      declare v int default 0;      while v < 8000000      do          insert into part_tab          values (v,'testing partitions',adddate('199

将list&lt;对象&gt;转换成DataTable,把DataTable转换成参数传入存储过程实现批量插入数据

领导让在存储过程中批量添加数据,找出效率最高的,我看到后台代码后,发现可以将list<对象>转换成DataTable,把DataTable转换成参数传入存储过程实现批量插入数据,知道还有其他的方法,不过这个方法已经实现,就写一下了: 1.创建表. CREATE TABLE [dbo].[person]( [ID] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](50) NULL, [Pwd] [nvarchar](50) NULL, [Age]

C++完成Oracle存储过程批量插入(一)

为了满足大数据量的批量插入这个需求,最近研究了一下Oracle数据库的批量插入这块儿,本篇先介绍一下这两天来所了解到的以及一次不成功的C++进行存储过程批量插入方案. 一.Oracle处理批量插入存储过程 1.Oracle处理批量插入涉及到的相关概念有:Type.bulk collect.Oracle数组等.现在对它们依次简单的介绍一下. 1)Type Type主要用于用户建立Oracle自定义类型. Type常用的自定义类型介绍: A.子类型 类似与全局定义的常量,只要改一处地方,与此常量相关

有关批量插入数据的问题

使用c#批量插入数据时,通过for循环,每次执行一条SQL语句进行数据插入,会使插入操作效率非常低下. 提高效率的方法: 1.SqlBulkCopy类. 2.表值参数. 在SqlServer存储过程中还可以 3.将For循环Insert部分放入一个Transaction中. 具体论证与实现,改日追加. 有关批量插入数据的问题,布布扣,bubuko.com

批量插入数据(基于Mybatis的实现-Oracle)

前言:做一个数据同步项目,要求:同步数据不丢失的情况下,提高插入性能. 项目DB框架:Mybatis.DataBase:Oracle. ---------------------------------------------------------------------------- 批量插入数据方式: 一.Mybatis 全局设置批处理: 二.Mybatis 局部设置批处理: 三.Mybatis foreach批量插入: ①SELECT UNION ALL: ②BEGIN INSERT I

SQL点滴28—一个简单的存储过程

原文:SQL点滴28-一个简单的存储过程 在表中写入一条数据同事要向另外一个表中写入信息,所以会使用到事务.实际使用的时候还会一次向一个表中吸入多条数据,下面的存储过程,将字符串拆分成数组然后写入到表中. /****** Object: StoredProcedure [dbo].[sp_InsertEmployee] Script Date: 09/17/2012 23:28:42 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO