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. 测试工具之Jmeter(创建一个简单测试用例)

    前面介绍了如何使用badboy录制jmeter脚本,以及如何导入脚本并进行测试 这里介绍下手动创建测试用例,主要步骤如下: 1.创建线程组 第一次打开Jmeter只有一个测试计划,右键“测试计划”选择 ...

  2. Ubuntu下安装程序的三种方法(转)

    引言 在Ubuntu当中,安装应用程序我所知道的有三种方法,分别是apt-get,dpkg安装deb和make install安装源码包三种.下面针对每一种方法各举例来说明. 一.apt-get方法 ...

  3. 关于iscroll插件的使用

    本次项目有一个需要多信息展示,需要左右滑动的效果,查资料了解到iscroll,就拿来用,如下调用: var myscroll = new IScroll("#wrapper", { ...

  4. Eclipse 工程目录下的.classpath、.project文件和.settings文件作用

    1..classpath 定义了你这个项目在编译时所使用的$CLASSPATH (注: 每次在更新jar的版本或者增加jar之后,请在SVN提交.classpath文件,否则工程的build path ...

  5. Ajax经典交互讲解

    资料: XMLHttpRequest 对象 XMLHttpRequest 对象提供了对 HTTP 协议的完全的访问,包括做出 POST 和 HEAD 请求以及普通的 GET 请求的能力.XMLHttp ...

  6. await和async在一般处理程序中的使用

    写在前面 有个小项目,前端使用的html页面,那服务端的业务处理就采用最简单的一般处理程序了,之前一直在用,觉得一直用一种方式,确实挺蛋疼的,之前也有了解过async和await的内容.就想着自己折腾 ...

  7. SQL优化原则(转)

    一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统 ...

  8. Spring之Bean的注入

    Bean的配置中介绍的是Bean声明问题,在哪声明怎么声明的问题.Bean的注入是怎么实例化,怎么注入的问题.Bean注入的方式有两种,一种是在XML中配置,另一种则是使用注解的方式注入. 一.XML ...

  9. Spring JDBCTemplate连接SQL Server之初体验

    前言 在没有任何框架的帮助下我们操作数据库都是用jdbc,耗时耗力,那么有了Spring,我们则不用重复造轮子了,先来试试Spring JDBC增删改查,其中关键就是构造JdbcTemplate类. ...

  10. 多继承之MRO

    一,python2和python3的区别 在python2中存在两种类:一个叫经典类,在python2.2之前,一直用的是经典类,经典类如果在基类的根什么都不写,那么它就是根:还有一个叫新式类,在py ...