批量插入数据脚本
1、第一种批量插入数据脚本.
可以基本满足要求。理解上较为简单,所以这个最常用。

DECLAREmaxnumber CONSTANT INT := 5000;--插入5000条数据i INT := 1;--i的取值从1开始
BEGINFOR i IN 1 .. maxnumber loopinsert into ODS.TABLE1--表名(ID, P_ID, DECL_PORT,lastupdateddt ,NOBER)--表字段values(ODS.seq_cert_id.nextval,'11' || i || '', '2215',to_timestamp('30-01-2019 12:51:22.004610','dd-mm-yyyy hh24:mi:ss.ff'), '55');--表字段内容,ODS.seq_cert_id.nextval是id递增序列名END loop;COMMIT;
END;

NEXTVAL和CURRVAL的区别:
1、如果 sequence.CURRVAL 和 sequence.NEXTVAL 都出现在一个 SQL 语句中,则序列只增加一次。在这种情况下,每个 sequence.CURRVAL 和 sequence.NEXTVAL 表达式都返回相同的值,不管在语句中sequence.CURRVAL 和 sequence.NEXTVAL 的顺序。

DECLAREmaxnumber CONSTANT INT := 3;i INT := 1;
BEGINFOR i IN 1 .. maxnumber loopinsert into ODS.AS(ID, NSRMC, CAPXTIMESTAMP)values(SRC_SENS_SHBDCLG.SEQ_LG_FINANCE_ACCOUNT.NEXTVAL, SRC_SENS_SHBDCLG.SEQ_LG_FINANCE_ACCOUNT.CURRVAL,  '17-12月-20 03.21.24.173369 下午');END loop;COMMIT;
END;

执行脚本结果如下:

2、第二种批量插入数据脚本

DECLAREmax_count number(10);  --定义变量
beginmax_count:=0;     while(max_count < 4000000)   LOOPinsert into ODS.TABLE1(ID,COPNAME,STATUS,CREATE_TIME,update_time) values (max_count,'DHL',0,sysdate,sysdate);-- DBMS_OUTPUT.put_line(max_count);      --输出当前循环数max_count := max_count + 1;end loop;
end;

3、两个表,同时批量插入数据的脚本


DECLARE maxhead CONSTANT INT:=1;  NEXT_ID varchar(18);
BEGIN FOR i IN 1..maxhead LOOP              insert into ODS.LG_FINANCE_ACCOUNT(ID, NSRSBH,NSRMC, SSSR_HJ, CKTS, ZZ_TAX, YY_TAX, XF_TAX, QYSD_TAX, GRSD_TAX, FC_TAX, CC_TAX, YH_TAX, CSWHJS_TAX, YGZ_TAX, MARK1, MARK2, MARK3, MARK4, MARK5, MARK6, JNYF, FILE_NAME, FILE_LAST_MODIFIED_TIME, DELETE_FLAG, CREATE_TIME, CAPXTIMESTAMP)values(ODS.SEQ_LG_FINANCE_ACCOUNT.NEXTVAL, '91310115MA1H896G'||i||'', ODS.SEQ_LG_FINANCE_ACCOUNT.CURRVAL, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, '临港地区', '南汇新城镇', '新京点', '新京点', '注册型企业', '正常户', '202001', 'CZ_南汇新城镇_1月税收汇总数据.xlsx', '17-12月-20 03.24.09.000000 下午', '1', '17-12月-20 03.21.24.173369 下午', '17-12月-20 03.21.24.173369 下午');Insert into ODS.LOG_STATISTICAL_FISCAL_API(ID, FILE_PATH, FILE_NAME, FILE_TYPE, FILE_SIZE, FILE_MODIFIED_TIME, TABLE_NAME, START_TIME, END_TIME, SUCCESS_TOTAL, ERROR_TOTAL, CREATE_TIME, CAPXTIMESTAMP)Values(ODS.SEQ_LG_FINANCE_ACCOUNT.CURRVAL, null, 'CZ_南汇新城镇_1月税收汇总数据test1.xlsx', 'xlsx', 2869793, '17-12月-20 03.38.57.000000 下午', 'LG_FINANCE_ACCOUNT', '17-12月-20 03.38.59.000000 上午', '17-12月-20 03.39.02.000000 上午', 1000, 0, '17-12月-20 03.36.10.391104 下午', '17-12月-20 03.36.10.391104 下午');         commit;END LOOP;
END;

4、涉及子表时,批量插入数据脚本,

--主表、主表插入批量数据--
--1、人工指定主表、子表ID值--
--K  主表ID起始值--
--maxhead 主表ID结束值--
--maxlist 每条主表对应的子表条数--
DECLARE maxhead CONSTANT INT:=10;  maxlist CONSTANT INT:=3;  i INT :=1;j INT :=1; k INT :=1;
BEGIN FOR i IN K..maxhead LOOP insert into ODS.TABLE1(ID,COPNAME,HBBB,STATUS,CREATE_TIME,update_time) values (i,'DHL',0,i,sysdate,sysdate);    FOR j IN 1..maxlist LOOP INSERT INTO ODS.TABLE2 (ID,A_id,file_name,S_PATH,FILE_CTIME) VALUES (maxlist*(i-1)+j,i,maxlist*(i-1)+j,to_char(sysdate,'yyyy-mm-dd' || '/'),sysdate);END LOOP;COMMIT;END LOOP;
END; 
--2、自动获取主表、子表的SEQUENCE作为ID值
--maxhead 主表条数
--maxlist 每条主表对应的子表条数
DECLARE maxhead CONSTANT INT:=2;  maxlist CONSTANT INT:=3;  i INT :=1;j INT :=1;
BEGIN FOR i IN 1..maxhead LOOP insert into ODS.TABLE1(ID,A_id,STATUS,CREATE_TIME,update_time) values (ODS.seq_A_id.nextval,ODS.seq_cert_id.nextval,0,sysdate,sysdate);    FOR j IN 1..maxlist LOOP INSERT INTO ODS.TABLE2(ID,A_id,A_PATH,UPLOAD_TIME) VALUES(ODS.seq_A_id.nextval,ODS.seq_A_id.nextval,to_char(sysdate,'yyyy-mm-dd' || '/'),sysdate);END LOOP;commit;END LOOP;
END;

5、批量修改数据

DECLAREmaxnumber CONSTANT INT := 5000;i INT := 1;
BEGINFOR i IN 1 .. maxnumber loopupdate ODS.TABLE1set lastupdateddt = to_timestamp(to_char(Sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss.ff'),NOBER= '2' || i || ''where P_ID= '11' || i || '';END loop;COMMIT;
END;

时间取数方式:
一、SYSTIMESTAMP(取当前系统值)
二、SYSDATE(取当前系统值,但只精确到时,分和秒都为0)
三、固定值为:TO_TIMESTAMP (‘2019-2-12 15:24:45.703000’, ‘yyyy-mm-dd hh24:mi:ss.ff6’)

把固定的字段改为变量:
方式一:’||i||’ 例:’{“no”:“111’||i||’”}’(此方式)
方式二:concat 例:concat(concat(’{“blNo”:111"’,i),’"}’)

sql-批量插入数据脚本相关推荐

  1. sql批量插入数据mysql_MYSQL批量插入数据库实现语句性能分析

    假定我们的表结构如下: CREATE TABLE example ( example_id INT NOT NULL, name VARCHAR( 50 ) NOT NULL, value VARCH ...

  2. 动态sql批量插入数据

    核心逻辑即为mysql批量插入数据 1 动态sql批量插入单表 mapper层 集合入参 入参字段符合动态sql字段 void updateBatchRefresh(List<WccsInfoP ...

  3. MySQL高级知识(十)——批量插入数据脚本

    前言:使用脚本进行大数据量的批量插入,对特定情况下测试数据集的建立非常有用. 0.准备 #1.创建tb_dept_bigdata(部门表). create table tb_dept_bigdata( ...

  4. postgresql批量插入数据脚本_每日踩坑 2020-11-04 PostgreSQL 批量插入数据

    一看居然两三个月没写博文了.凑.最近去考了个试,老天保佑吧. 今天有个同事跑来问我,我之前写的数据同步工具支不支持 PostgreSQL. 然后跟我讲了他的需求.感觉我随手写的小东西开始变成整个部门的 ...

  5. sql 批量插入数据到Sqlserver中 效率较高的方法

    使用SqlBulk #region 方式二 static void InsertTwo() { Console.WriteLine("使用Bulk插入的实现方式"); Stopwa ...

  6. mongodb批量插入数据脚本

    目录 基础 输出语句 随机数 递增的数 示例1:添加1000条数据到文档test 补充 学习mongodb新技能总数需要一些基础数据,有了基础数据才可以练习下增删改查.聚合.索引优化等问题.这里就分享 ...

  7. sql批量插入防止重复插入_使用SQL批量插入锁定配置

    sql批量插入防止重复插入 One challenge we may face when using SQL bulk insert is whether we want to allow acces ...

  8. 【JDBC】PreparedStatement实现批量插入数据

    题目:[JDBC]PreparedStatement实现批量插入数据 前言: PreparedStatement除了解决Statement的拼串.sql注入问题之外,还可以实现以下操作 Prepare ...

  9. oracle insert汉字出错,Oracle数据库之Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名...

    本文主要向大家介绍了Oracle数据库之Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. Oracle数据库,用 ...

最新文章

  1. JavaScript 闭包解析
  2. 使用pytorch构建2D和3D人脸比对库(使用face-alignment)
  3. 截取视图某一段另存为部分视图(Partial View)
  4. docker 端口被占用问题解决
  5. 快速双边滤波在High-Dynamic Range(HDR)图像显示中的应用。
  6. 咖友:X零蛋丨只靠“威尔逊算法”,知乎危险了?
  7. 假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料???
  8. 每日一个linux 命令-修改linux文件权限命令:chmod
  9. 一招搞定css页面布局
  10. 优秀技术人才需具备能力
  11. stm32 ucosii消息队列 串口_STM32F1的UART4串口配置
  12. (转) POJO和javabean的异同
  13. Web应用功能测试测试点
  14. 特斯拉将国产Model 3后轮驱动版售价上调1.5万元
  15. automake生成静态库文件_基于CocoaPods的组件化原理及私有库实践
  16. 没解决:eclipse的JDK Compliance的Use compliance from execution无法选中
  17. 程序员简单实用的桌面壁纸
  18. Mysql 最最最基本语句(大全)
  19. python判断excel某单元格是否为空
  20. Matlab 仿真——直流电机速度控制(1)直流电机建模

热门文章

  1. Redhat6更改yum源
  2. 论《三国演义》里那些细节
  3. CC150 OOD Parking Lot
  4. 巧用Superset大数据分析平台搞定各类图表
  5. 入门渗透:SMB入侵——Dancing
  6. 关于python语言下列说法错误的是_在Python中下列说法错误的是()
  7. 巴西光伏产业站在发展的“风口”上
  8. google谷歌云盘_Google 12岁生日快乐
  9. cuisineroyale服务器所在位置,cuisine royale配置要求是什么?最低配置要求介绍
  10. 华东之旅--西塘第一天