1.需求简介

最近开发人员需要进行一批数据进行生产上SQL语句耗时过长问题的验证与优化。所以在性能测试库中批量建造数据,由于交易本身业务逻辑过于复杂以及需要各种授权,最后决定采用插表的方式完成。

2.所用工具

DbVisualizer 10.0.14(已破解)(并不需要本地存在DB2客户端,DbVisualizer本身通过JDBC驱动,所以本地要有Java环境,最好是Java1.8)

3.详细过程

本身并不复杂,但是现在基本上已MySQL以及Oracle为主,所以还是踩了几个坑。

(1)由于不是在DB2客户端命令行运行脚本的方式运行,在DbVisualizer中运行需要对存储过程进行定义,否则会报 CODE -104错误。

(2)由于造数的多张表主键大部分为流水号或者日期等(例:20180905204132),所以在存储过程中定义循环 变量的时候,会报错,应该是支撑不了这么大长度的变量定义。

在网上有解决办法,但是是对本地DB2环境变量进行配置,故本次造数过程采用 变量拼接的方式进行数据库主键的插入。

存储过程:(由于涉及数据敏感,故对INSERT语句进行了修改,请按照本身需求更改)

--/       -----此处对存储过程进行声明
begin atomic
declare i integer;
set i=14000021;
while i<=14000080 do
INSERT
INTO
OMS_BANK_TRANFLOW_INFO
(
OBI_TRANFLOWNO,
OBI_BIE,
OBI_BME,
OBI_IE,
)
VALUES
(
'私房菜',
'CNY',
'0.01',
''||trim(char(i)),
'',
);
set i=i+1;
end while;
END
/ -----此处对存储过程进行声明,与开头对应

说明:'201809'||trim(char(i))  是对主键的拼接,上述代码主键插入的值为20180914000021~20180914000080,共计60条数据。

通过DbVisualizer 工具运行DB2存储过程实现INSERT语句主键自增造数的更多相关文章

  1. mybatis使用注解往postgresql数据库表insert数据[主键自增]的写法

    建表SQL: DROP TABLE IF EXISTS person; CREATE TABLE person( person_id serial PRIMARY KEY NOT NULL, pers ...

  2. Mybatis insert 获取主键自增id

    Mybatis insert 返回自增主键 mysql 准备一张带有自增主键的表users 字段:id,name,phone sql <!--插入记录并获取刚插入记录的主键--> < ...

  3. MyBatis insert返回主键(sqlserver2008)

    mybatis insert返回主键(sqlserver2008)   MyBatisXML配置,下面两种方式都行 方式1: <insert id="insert" para ...

  4. postgresql + mybatis insert主键自增方法

    postgresql + mybatis插入记录时设置自增主键方法: 一.数据库设置主键自增 1.数据库中id字段选择serial4类型后,会在默认值中生成 nextval('app_id_seq': ...

  5. Mybatis批量insert 返回主键值和foreach标签详解

    Mybatis批量insert 返回主键 Mybatis从3.3.1版本开始,支持批量插入后返回主键ID.首先对于支持自增主键的数据库使用useGenerateKeys和keyProperty,对于不 ...

  6. Mybatis里Mapper映射sql文件里insert的主键返回selectKey使用

    有时候新增一条数据,知道新增成功即可,但是有时候,需要这条新增数据的主键,以便逻辑使用,再将其查询出来明显不符合要求,效率也变低了. 这时候,通过一些设置,mybatis可以将insert的数据的主键 ...

  7. 【mybatis】mybatis中insert 主键自增和不自增的插入情况【mysql】

    主键不自增:返回值是插入的条数 <insert id="add" parameterType="EStudent"> insert into TSt ...

  8. mybatis添加数据时返回主键 insert 返回主键值

    insert 返回主键值 useGeneratedKeys=“true” parameterType=“USer” keyProperty=“id”, <insert id="inse ...

  9. SQL 创建存储过程,让主键自增

    1.  首先创建存储过程: 2.  然后分别创建序列,生成基金公司编号.基金代码.活期账号.理财账号.基金账户.合同号.要求如下: 基金公司编号,字母K+5位数字. 基金代码,字母V+6位数字. 活期 ...

随机推荐

  1. Python函数——列表推导式、生成器与迭代器

    列表推导式 产生背景 现在有个需求,看列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求你把列表里的每个值加1,你怎么实现? 第一种方法: a = [1,3,4,6,7,7,8,9 ...

  2. webServlet("/") 和 webServlet("/*") 的区别

    “/” 默认放行了jsp,也就是jsp文件不执行下面的service方法,其他都执行 “/*”  全部执行

  3. python虚拟环境 | virtualenv 的简单使用 (图文)

    一.创建virtualenv虚拟环境 mkvirtualenv -p 版本号 虚拟名 mkvirtualenv -p python3 env_1 python3:版本号 env_1: 虚拟环境名称 创 ...

  4. vue-02-安装-指令

    1, vue安装 1), 安装vue-cli npm install -g cnpm --registry=https://registry.npm.taobao.org 之后可以用 淘宝的npm镜像 ...

  5. 【PyTorch深度学习60分钟快速入门 】Part5:数据并行化

      在本节中,我们将学习如何利用DataParallel使用多个GPU. 在PyTorch中使用多个GPU非常容易,你可以使用下面代码将模型放在GPU上: model.gpu() 然后,你可以将所有张 ...

  6. python的Web框架,类视图

    类视图 范式 from django.views import View # 继承View class IndexView(View): def get(self, request): #写法和函数视 ...

  7. js a标签 + ajax 多参数穿参

    <span onclick="return haoping('{$row['jv_id']}','1')"> function haoping(id,type){ $. ...

  8. csv文件格式说明

    csv文件应用很广泛,历史也很悠久.有很多种类型的csv格式,常用的是rfc 4180定义的格式. csv文件包含一行或多行记录,每行记录中包含一个或多个字段.记录与记录之间使用换行符分隔,最后一个记 ...

  9. vue-cli脚手架搭建项目简单入门一

    搭建系统: Windows系统 简单了解Node.js.npm,安装Node.js,下载网址:http://nodejs.cn/download/ 查看node,npm安装成功与否.打开cmd命令行, ...

  10. Java基础——Oracle(八)

    一.流程控制语句 1) 循环语句 == loop ..  end loop 简单的循环,至少被执行一次 create table userinfo (id number, name varchar2( ...