PL/SQL 数据生成器
1. 功能介绍
数据生成器允许你创建演示和测试数据。对于测试应用程序和查看它们怎样执行大量的数据,这可能是有帮助的。你可以在工具菜单的下面找到数据生成器。 基本上,定义由一个或多个表、你要生成的记录数量和字段数据定义构成。左上部的按钮允许你打开和保存定义。
上面这个演示是为 dept 和 emp 表创建数据,这两个表之间有主从关系,比较有代表性。在这一页中,你将发现下列项目:
- 表 – 表的名称。
- 记录数 – 你要生成的记录数。这可以是数字,也可以是像 10..100 这样的范围。
- 名称 – 字段名称。
- 类型 – 字段的数据类型。
- 大小 – 字段大小(在适当时)。对于数字字段,这将是数值范围、精度。
- 数据 – 字段数据的定义(见下面)。
- 主列 – 如果这个表是另一个表的明细,你可以设置主列。对于每个已产生的记录,指定数量的明细记录将被生成。
可以使用“添加现有表”按钮来添加一个现有的表,还可以从对像浏览器中拖放一个表。
2. 数据定义
数据定义决定如何生成数据。如果你要创建简单的字符,你可以在两个方括号之间输入字符定义: [数据 ]数据可以是下列预先确定的集的混合体:
- 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 (所有数字)
[Aaa00 ] 生成字符串如: Gxe21,Liy05 等。 你还可以在两个单引号之间添加文字文本。 例如: [AA '-' 1000 ] 生成字符串如:CX-4903 ,SY-1044 等。 在定义中空格字符是被忽略的,除非它们在引号中。 如果你要一个字符重复许多次,你可以在字符的后面两个括号之间添加次数(n)。你还可以添加一个随机数(最小..最大)。 例如: [Aa(5..15) ' ' Aa(8..20) ] 的结果就像这样:"Masfae Qwwecdsadif" 定义中的文字文本不必写到括号中。比如, ['hello' ] 和 'hello' 是等效的。不带引号的文本被认为是函数。 有几个特定的函数是可用的:
- 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(字体)参数可以是 LorumIpsum(默认)、英语、德语或日语。它还可以是像[aA] 这样的字符集,在这种情况下,词汇从指定的字符集中产生。 MaxCharacters 决定了生成的文本的最大大小,WordsPerLine 和LinesPerParagraph
- File(path, path, ...) 从特定的路径(path)中随机地选择一个文件,并插入内容。允许你输入二进制数据(像图片这样的)到数据库中。路径可以使用通配符,像 d:\images\*.bmp 这样的。
- Uppercase()
- LowerCase()
- InitCaps()
InitCaps( List(select ename from emp) ) 还有几个预先定义的数据集可用于生成或多或少的真实数据。你可以使用下列定义:
- Firstname – 一般列表中的名
- Lastname – 一般列表中的姓
- Company – 公司名(现有公司的随机列表)
- Address1 – 地址行 1
- Address2 – 地址行 2
- ZIP – 邮政编码
- City – 城市
- State – 省
- Country – 国家
- Email (被关联到 Firstname ,Lastname 和 Country)
还有一些可用的实例自定义数据集:
- Components.Code – 一般商品项目:商品代码
- Components.Description – 商品描述(计算机部分)
- Components.Price – 商品价格
- Elements.Name – 化学元素(名称)
- Elements.Symbol – 化学元素(符号)
这些数据集可以在 DataGenerator\UserData 目录中找到,文件名为elements.txt 和 components.txt 。如果需要,你可以添加自己的集。添加一个逗号分隔的文件很简单,在文件中第一行两个方括号之间保存着描述。你可以通过指定“文件名.描述”来使用你的文件中的数据,就像两个例子那样。 上面提及的所有函数和数据都可以添加到一起,例如:Random(10..99) + '-' +[A(4)]
3. 选项
选项标签页允许你设置一些首选项,特别是数据生成器的定义。你可以指定一个日期的格式(与 Random 函数使用的例子一样)。你还可以指定在多少条记录之后需要提交( 0 表示一完成就提交)。延迟首选项仅仅用于一些实时测试,在这中你需要数据以指定的速度被插入。
自定义部分允许你定义或越过被用于 [数据
] 定义的字符集。项目总是单个字符,值是一个或多个空格分隔的字符范围,就像这样:A..Z a..z 0..9 #200..#220 。例如,要定义一个十六进制的字符集,你可以指定 H 为项目,0..9 A..F 为值。 “初始化脚本”部分允许你指定在数据被插入到数据库中前应该被执行的 SQL 语句。在典型的情况下,这将是创建表或截短表、选择回滚段等的语句。多个语句需要用分号来分隔。 通过按左边首选项按钮,在默认的情况下,对于所有数据生成器的一般选项可以被定义。
4. 生成数据
在左下方有三个按钮可用于生成实际的数据:
- 开始测试运行 – 这将在结果标签页上的表格中生成数据和显示结果。通过右键单击表格,你可以以不同的格式导出这些结果。
- 创建数据为 SQL – 生成数据为 SQL 脚本。这仅仅工作于你不用文件功能添加来自文件的数据的情况下。
- 在数据库中创建数据 – 生成数据到 Oracle 数据库中。