oracle中生成大批量数据的方法-下
方法五:使用PLSQL的数据生成器
首先测试环境建立:dept表
CREATE TABLE dept(deptno NUMBER(6),dname VARCHAR2(20),loc VARCHAR2(20));
以下实验就是像dept表中插入大量的数据。
数据生成器允许创建演示和测试数据。对于测试应用程序和查看它们怎样执行大量的数据,这很有帮助的。可以在PL/SQL Developer的工具菜单的下面找到数据生成器:Data Generator。基本上,定义由一个或多个表、要生成的记录数量和字段数据定义构成。左上部的按钮允许打开和保存定义。
在上面,可以看到提供的 dept演示,这个演示是为 dept表创建数据。在这一页中,发现有下列项目:
表–表的名称
记录数-要生成的记录数。这可以是数字,也可以是象 10..100 这样的范围
名称–字段名称
类型–字段的数据类型
大小–字段大小(在适当时)。对于数字字段,这将是数值范围、精度
数据–字段数据的定义(见下面)
主列–如果这个表是另一个表的明细,可以设置主列。对于每个已产生的记录,指定数量的明细记录将被生成
我们可以使用“添加现有表”按钮来添加一个现有的表,还可以从对象浏览器中拖放一个表。
数据定义
数据定义决定了被生成的数据。如果要创建简单的字符,可以在两个方括号之间输入字符定义:[数据]
数据可以是下列预先确定的集的混合体:
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)] 。 “+”是可选的,但那中至少应该有一个空格作为分隔符。
选项
选项标签页允许设置一些首选项,特别是数据生成器的定义。可以指定一个日期的格式(与被 Random 函数使用的例子一样)。还可以指定在多少条记录之后需要提交(设为 0 是一完成就提交)。延迟首选项仅仅用于一些实时测试,这中需要数据以指定的速度被插入。
自定义部分允许定义或越过被用于 [数据] 定义的字符集。项目总是单个字符,值是一个或多个空格分隔的字符范围,就象这样:A..Z a..z 0..9 #200..#220 。例如,要定义一个十六进制的字符集,可以指定 H 为项目,0..9 A..F 为值。
“初始化脚本”部分允许指定在数据被插入到数据库中前应该被执行的 SQL 语句。在典型的情况下,这将是创建表或截短表、选择回滚段等的语句。多个语句需要用分号来分隔。通过按左边首选项按钮,在默认的情况下,对于所有数据生成器的一般选项可以被定义。如果数据生成器定义中相应的首选项也被设置了,这些首选项将被否决。
生成数据
在左下方有三个按钮可用于生成实际的数据:
开始测试运行 – 这将在结果标签页上的表格中生成数据和显示结果。通过右键单击表格,可以以不同的格式导出这些结果。
创建数据为 SQL – 生成数据为 SQL 脚本。这仅仅工作于不用文件功能添加来自文件的数据的情况下。
在数据库中创建数据 – 生成数据到 Oracle 数据库中。
oracle中生成大批量数据的方法-下的更多相关文章
- oracle 快速删除大批量数据方法(全部删除,条件删除,删除大量重复记录)
oracle 快速删除大批量数据方法(全部删除,条件删除,删除大量重复记录) 分类: ORACLE 数据库 2011-05-24 16:39 8427人阅读 评论(2) 收藏 举报 oracledel ...
- Oracle中生成uuid的方法
Oracle中生成uuid的方法 下载LOFTER客户端 在Oracle SQL 提供了一个生成uuid的函数sys_guid: http://download.oracle.com/docs/cd/ ...
- Oracle中对列加密的方法
Oracle中对列加密的方法 2011-12-22 17:21:13 分类: Linux Oracle支持多种列加密方式: 1,透明数据加密(TDE):create table encrypt_col ...
- 清空SQL Server数据库中所有表数据的方法(转)
清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入 ...
- Oracle中的 UPDATE FROM 解决方法
转:http://www.cnblogs.com/JasonLiao/archive/2009/12/23/1630895.html Oracle中的 UPDATE FROM 解决方法 在表的更新操作 ...
- 【转】 Linux内核中读写文件数据的方法--不错
原文网址:http://blog.csdn.net/tommy_wxie/article/details/8193954 Linux内核中读写文件数据的方法 有时候需要在Linuxkernel--大 ...
- 清空SQL Server数据库中所有表数据的方法
原文:清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可 ...
- pytorch:EDSR 生成训练数据的方法
Pytorch:EDSR 生成训练数据的方法 引言 Winter is coming 正文 pytorch提供的DataLoader 是用来包装你的数据的工具. 所以你要将自己的 (numpy arr ...
- oracle中imp导入数据中文乱码问题(转)
(转自 http://blog.chinaunix.net/uid-186064-id-2823338.html) oracle中imp导入数据中文乱码问题 用imp命令向oracle中导入数据后, ...
随机推荐
- Gas Station leetcode java
题目: There are N gas stations along a circular route, where the amount of gas at station i is gas[i]. ...
- 领扣-1/167 两数之和 Two Sum MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- CSS框架BluePrint
做惯了后台程序的我们,是否对前端编程有兴趣么,通过CSS框架,使我们很容易的开发出基于Div+CSS布局的页面来,今天让我们了解下大名鼎鼎的blueprint CSS框架吧! 它的官方网站:http: ...
- html5各种页面切换效果和模态对话框
页面动画:data-transition 属性可以定义页面切换是的动画效果.例如:<a href="index.html" data-transition="pop ...
- How to Sign in as a Different User in SharePoint 2013
SharePoint used to have a menu option called "Sign in as Different User" in the top-right ...
- [Jade] Piped text
Another way to add plain text to templates is to prefix a line with a pipe character (|). This metho ...
- C语言常见问题 如何用Visual Studio编写C语言程序测试
新建Win32控制台应用程序 勾选控制台空项目 右击源文件,添加cpp文件 输入范例代码,可以正常运行#include <stdio.h> int main(void) { i ...
- ArcGIS 10.4的0x80040228许可错误
今天,再次遇到这个问题,再忙得把它记录下来! AO/AE程序的许可方式 不管是开发环境是基于ArcObject还是基于ArcEngine,不管运行环境是Desktop还是Runtime(早已改名了为A ...
- spring boot使用slf4j输出日志
spring boot使用slf4j输出日志 https://blog.csdn.net/qq442270636/article/details/79406346 Spring Boot SLF4J日 ...
- Web安全 之 X-Frame-Options响应头配置
最近项目处于测试阶段,在安全报告中存在" X-Frame-Options 响应头缺失 "问题,显示可能会造成跨帧脚本编制攻击,如下图: X-Frame-Options: 值有三个: ...