使用数据库时,有时需要使用大量的数据,可以用PLSQL Developer提供的Data Generator工具,

这里记录一下工具的介绍及几个使用注意事项

1、工具介绍

功能入口位于 工具 菜单下,汉化版名字为 数据生成器,英文版称为 Data Generator。

这个工具可以很方便的生成大量数据。

界面布局很简洁,看到界面就差不多知道后续要怎么做了。鼠标悬停在按钮上方时,会有对功能的简单描述,还是很方便的。

如果对界面不熟悉,可以看看其他文章,网上还挺多的。

2、数据定义(Data Definition)基本字符集合

选中需要处理的表格后,会自动加载表的字段信息(Name,Type,Size), 位于后方的 Data 列用于定义生成的数据。

先说一下预定义的字符集(characters):

标识符 代表字符集合
a abcdefghijklmnopqrstuvwxyz
A ABCDEFGHIJKLMNOPQRSTUVWXYZ
@ A..Z a..z(省略中间的)
# A..Z a..z 0..9
0 0..9(和9一样)
9 0..9(和0一样)
1 1..9
* 所有的ASCII字符

举例来说:

[Aaa00] 会生成类似 Gxe21,Liy05这样的字符串

[AA '-' 10000] 会生成 CX-4903,SY-1044这样的数据,定义中 单引号 包裹的内容会直接输出,定义中 没有在单引号内的空格 会被忽略。

[Aa(5..15)' 'Aa(8..20)] 会生成 Masfae Qwwecdsadif 样子的数据,定义中小括号内的数据定义了随机生成的字符数量的界限。

3、数据定义时可用的函数

下面这段引用了(转)PL/SQL Developer Data Generator的使用 - 失乐园 - BlogJava 的内容:

  • Signal(Min, Max, Delta, Noise) 返回技术测定数据(象温度这样的)。

    Min(最小)和 Max(最大)决定范围, Delta(△)为最大更改量,还可以添加一些 Noise(噪声)。例如:Signal(-10, 20, 0.1, 0.1)。

  • 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可以是是象 [aA] 这样的字符集,在这种情况下,词汇从指定的字符集中产生。

    MaxCharacters 决定了生成的文本的最大大小,

    WordsPerLine 和 LinesPerParagraph 决定了行和段落的大小。

    指定的大小可以是指定的数字或范围(最小..最大)。

  • File(path, path, ...) 从特定的路径(path)中随机地选择一个文件,并插入内容。

    允许输入二进制数据(象图片这样的)到数据库中。路径可以使用通配符,象 d:"images"*.bmp 这样的。

可以通过使用下列函数更改前面函数的文本结果:

​ •Uppercase()

​ •LowerCase()

​ •InitCaps()

例如:InitCaps( List(select ename from emp) )

3、使用注意事项

  • 未经测试,直接生成大量数据至数据库引发的无限弹窗报错

    生成数据至数据库时,并不会遇到报错就停止,而是会继续向下执行,如果配置数据时存在错误,plsql会为每一个错误弹出一个窗口,如果一开始就生成了几万条数据,就会有几万个窗口等着你点击,这种时候只能关掉plsql的进程重新开始。

    最佳的操作应该是在定义数据后,修改生成数据的数量,比如10,然后生成对应的sql,单独执行确认配置无误后再执行大数据量的插入。

  • 生成的VARCHAR类型的数据,没有被单引号包裹

    varchar2,nvarchar2等类型的字段插入数据时需要由单引号包裹,该工具生成的数据不包含单引号,插入时会出现 标识符过长,标识符无效等问题。

    可以借用 List 函数解决该问题。如定义:List(select '''' from dual) + [A(4)] + List(select '''' from dual)可以生成类似 'HYSF' 的数据,因为在 oracle中,单引号( ' ) 还会被视为转义符,即 ’‘ 代表 ’

  • 切换到其他需要生成数据的表时,可以保留上一张表对数据的定义

plsql中数据生成工具data generator的使用的更多相关文章

  1. Web 开发人员必备的随机 JSON 数据生成工具

    在 Web 开发中,经常会需要一些测试数据来测试接口或者功能时候正确.JSON Generator 就是这样一款生成随机 JSON 数据的在线工具,Web 开发人员必备,记得收藏和分享啊. 您可能感兴 ...

  2. Charted – 自动化的可视化数据生成工具

    Charted 是一个让数据自动生成可视化图表的工具.只需要提供一个数据文件的链接,它就能返回一个美丽的,可共享的图表.Charted 不会存储任何数据.它只是获取和让链接提供的数据可视化. 在线演示 ...

  3. PMK数据生成工具airolib-ng

    PMK数据生成工具airolib-ng   PMK(Pairwise Master Key)是根据ESSID和无线密钥生成的哈希值,用于WPA/WPA2身份认证.在WPA/WPA2暴力破解中,需要大量 ...

  4. 随机数据生成工具Mockaroo

    测试用例生成工具:https://www.mockaroo.com/ 网站描述是:Random Data Generator and API Mocking Tool | JSON / CSV / S ...

  5. python测试框架&&数据生成&&工具最全资源汇总

    xUnit frameworks 单元测试框架frameworks 框架unittest - python自带的单元测试库,开箱即用unittest2 - 加强版的单元测试框架,适用于Python 2 ...

  6. 将表中数据生成SQL语句

    在开发过程中,经常需要我们对表中的数据进行转移,如果在同台机器,可以使用SQL自带的导入数据,但是如果想让所有的数据生成可执行的SQL语句,它的移植性最强了.首先要设计一个存储过程.具体如下: CRE ...

  7. PLSQL大数据生成规则

    数据定义 数据定义决定了被生成的数据.如果要创建简单的字符,可以在两个方括号之间输入字符定义:[数据] 数据可以是下列预先确定的集的混合体:           •  a: a..z (小写字符)   ...

  8. 使用IO流将数据库中数据生成一个文件,结果使用Notepad++打开部分数据结尾出现NUL

    场景描述: 项目中通过java代码中从数据库中查询一系列数据,对数据做相应处理,然后通过字符流将数据写如一个新生成的文件中,将该项目部署在linux服务器上,最后生成的文件拿到本地使用notepad+ ...

  9. (二)一个很好用的自动生成工具——mybatis generator

    mybatis generator-自动生成代码 准备材料: 一个文件夹,一个数据库的驱动包,mybatis-generator-core-1.3.5.jar,一条生成语句 如图:(我用的是derby ...

随机推荐

  1. C++第三十九篇 -- 研究一下Windows驱动开发(二)-- 驱动程序中重要的数据结构

    数据结构是计算机程序的核心,I/O管理器定义了一些数据结构,这些数据结构是编写驱动程序时所必须掌握的.驱动程序经常要创建和维护这些数据结构的实例. 一.驱动对象(DRIVER_OBJECT) 每个驱动 ...

  2. LUSE: 无监督数据预训练短文本编码模型

    LUSE: 无监督数据预训练短文本编码模型 1 前言 本博文本应写之前立的Flag:基于加密技术编译一个自己的Python解释器,经过半个多月尝试已经成功,但考虑到安全性问题就不公开了,有兴趣的朋友私 ...

  3. jvm源码解读--05 常量池 常量项的解析JVM_CONSTANT_Utf8

    当index=18的时候JVM_CONSTANT_Utf8 case JVM_CONSTANT_Utf8 : { cfs->guarantee_more(2, CHECK); // utf8_l ...

  4. 使用JavaMailSender 发送邮件

    使用JavaMailSender 发送邮件 package com.juvenxu.mvnbook.account.email; import javax.mail.MessagingExceptio ...

  5. element UI+vue关于日期范围选择的操作,picker-options属性的使用

    一般 <el-date-picker />使用会出现起始日期和结束日期,结束日期不能早与起始日期,选择了其实日期后,结束日期大于起始日期的不可选,置灰,同理先选结束日期后再选起始日期,那么 ...

  6. 防止因提供的sql脚本有问题导致版本bvt失败技巧

    发版本时,可能会由于测试库和开发库表结构不一样而导致数据库脚本在测试那边执行时出错,导致版本BVT失败,以下技巧可解决此问题. 步骤:备份目标库,在备份库中执行将要提供的sql脚本看有无问题,若没问题 ...

  7. SpringBoot-表单验证-统一异常处理-自定义验证信息源

    1. 简介 我们都知道前台的验证只是为了满足界面的友好性.客户体验性等等.但是如果仅靠前端进行数据合法性校验,是远远不够的.因为非法用户可能会直接从客户端获取到请求地址进行非法请求,所以后台的校验是必 ...

  8. Python设计模式: 最佳的"策略"模式实践代码

    Python设计模式: 最佳的"策略"模式实践代码 今天抽空看了下流畅的python,发现里面介绍了不少python自带的库的使用实例,用起来非常的优雅. 平时用Python来写爬 ...

  9. mout -t -cifs 解析

    mount -t cifs //<azurefile_url> <linux_mountpoint(folder)> df 查看挂载 umount取消挂载 umount -l ...

  10. MySQL 创建高性能索引

    索引是存储引擎用于快速找到记录的一种数据结构.除了加速查找,索引在其他方面也有一些有用的属性.索引对于良好的性能非常关键.尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要.在数据量较小且负载较 ...