Oracle PL/SQL 大数据量数据生成器

 本内容是临时本人自己操作出来总结,如有疑问或者不足,请指出,毕竟我也是新手,不可能没有错。


在开发测试中,可能对数据库表里需要增加多条数据,而传统insert语句批量可能达不到你想要的效果,于是就可以利用本文讲到的PL/SQL的数据生成器,位置如图。


Oracle PL/SQL 大数据量数据生成器


Oracle PL/SQL 大数据量数据生成器


表的位置选择你要生成大量数据的表名,而记录数10..20意思是随机生成10-20中间一个数的SQL量,比如我选择100..200,那就他就会生成一个X,X是大约100小于200的数,最后就会生成X条SQL。


输入相关的表后,就需要设置数据列的格式,根据你的表要求不同,设置的属性不同,比如时间,长度等等。


常用的格式有以下几种:

  • a: a..z (小写字符)
  • A: A..Z (大写字符)
  • @: A..Z 和 a..z (所有字符)
  • #: A..Z 和 a..z 和 0..9 (所有字符和数字)
  • *: #33..#126 (所有 ASCII 字符)
  • 0: 0..9 (所有数字)
  • 1: 1..9 (所有除了 0 之外的数字)
  • 9: 0..9 (所有数字)
比如我想插入一个例如9999这种四位数数学,千位不能为0的话,我就可以这样写[1999],他就会生成例如9999,1000等四位数。

比如[Aaa00] 生成字符串如: Gxe21Liy05 等。


关于常量是以['0']这种格式要求,比如我一个大小指定插入数据都为25的话,那么格式为['25'];

关于日期来说,是用随机函数Random,例如Random(2017/5/11 00:00:00,2017/5/11 23:59:59) ,同时需要去选项里面设置日期格式yyyy/MM/dd hh:mm:ss,如下图

Oracle PL/SQL 大数据量数据生成器

Oracle PL/SQL 大数据量数据生成器


例外还有一些常用函数,百度都能搜到,也可以灵活使用,比如 Signal(Min, Max, Delta, Noise) 返回技术测定数据(象温度这样的)。Min(最小)和 Max(最大)决定了范围, Delta(△)为最大更改量,还可以添加一些 Noise(噪声)。例如:Signal(-10, 20, 0.1, 0.1)。我用来Signal(0, 999, 1)从0到999每次增加1为ID赋值,但我觉得不是这样用的,但实测可以的。


还有

•Random([Min], Max) 返回Min(最小)和 Max(最大)之间的随机数。如果只指定了 Max ,那么 Min 就被设为 0 。对于日期字段,可以输入Min(最小)和 Max(最大)的日期。

•Sequence(Start, [Inc], [WithinParent]) 返回序号。Start 为开始值,Inc 为增量(默认为 1)。对于明细表,可以再指定WithinParent 关键词来指出序列应该为每个父记录进行重新安排。

•List('item'(weight), 'item'(weight), ...) 随机地返回指定项目(item)之一。加权数(weight)可以被添加到两个括号之间,允许特定项目比其他项目出现的几率更大。 例如:List('CLERK'(50), 'SALESMAN'(30), 'MANAGER'(10))

•List(select statement) 象前面的 List 函数,但项目是通过 SQL select statement(select 语句)返回的。

• Text([Style], MaxCharacters, [WordsPerLine, LinesPerParagraph]) 这个函数返回文本。可选择的 Style(字体)参数可以是LorumIpsum(默认)(怀疑是荷兰语。——译者姜华东注)、英语、德语或日语。它还可以是象 [aA] 这样的字符集,在这种情况下,词汇从指定的字符集中产生。 MaxCharacters 决定了生成的文本的最大大小,WordsPerLine 和 LinesPerParagraph 决定了行和段落的大小。指定的大小可以是指定的数字或范围(最小..最大)。


当你设置完后,就需要生成数据,如果不放心就能先测试。如图

Oracle PL/SQL 大数据量数据生成器


红色框框就是测试,测试会以很直观的样子给你显示出来,然后你看看你设置的数据是否符合。剩下就是插数据,插数据有两种,第一种可以生成SQL,然后生成的SQL运行插入进去(上图红框下面的按钮)。第二种是直接运行生成(上图红色按钮下面的第二个按钮)