精华内容
下载资源
问答
  • oracle 查询本周数据生成下周数据 第一步:查询指定区间数据 第二步:改变查询结果的值  查询日期字段+7 第三步:将查询结果插入到表中 INSERT INTO CONSULT_SCHEDULE (ORG_ID, DEPENT_ID, DEPEN....
     

    CreateTime--2018年1月4日16:38:01

    Author:Marydon

    oracle 查询本周数据生成下周数据

    第一步:查询指定区间数据

    第二步:改变查询结果的值

      查询日期字段+7

    第三步:将查询结果插入到表中

    INSERT INTO CONSULT_SCHEDULE
      (ORG_ID,
       DEPENT_ID,
       DEPENT_NAME,
       DOCTOR_ID,
       DOCTOR_NAME,
       DOCTOR_PHONE,
       SCHEDULE_DATE,
       WEEK_TXT,
       WB_TYPE,
       CLOSE_TZ,
       REPLACE_TZ)
      (SELECT T2.ORG_ID,
              T2.DEPENT_ID,
              T2.DEPENT_NAME,
              T2.DOCTOR_ID,
              T2.DOCTOR_NAME, 
              T2.DOCTOR_PHONE,
              (T2.SCHEDULE_DATE + 7) SCHEDULE_DATE,
              T2.WEEK_TXT,
              T2.WB_TYPE,
              T2.CLOSE_TZ,
              T2.REPLACE_TZ
         FROM CONSULT_SCHEDULE T2
        WHERE T2.SCHEDULE_DATE BETWEEN TO_DATE('2017-12-18', 'yyyy-MM-dd') AND
              TO_DATE('2017-12-24', 'yyyy-MM-dd'));

    效果展示:

     

     
    展开全文
  • Oracle plsql数据生成

    千次阅读 2014-05-06 10:17:40
    数据生成数据生成器允许你创建演示和测试数据。对于测试应用程序和查看它们怎样执行大量的数据,这可能是有帮助的。你可以在工具菜单的下面找到数据生成器。 基本上,定义由一个或多个表、你要生成的记录数量和...

    下载资源:http://download.csdn.net/detail/pioayang/7301557

    数据生成器

    数据生成器允许你创建演示和测试数据。对于测试应用程序和查看它们怎样执行大量的数据,这可能是有帮助的。你可以在工具菜单的下面找到数据生成器。
    基本上,定义由一个或多个表、你要生成的记录数量和字段数据定义构成。左上部的按钮允许你打开和保存定义。
    在上面,你可以看到被提供的 deptemp 演示,这个演示是为 deptdemo 和 empdemo 表创建数据,这类似于大家都知道的 dept 和 emp 表。在这一页里,你将发现下列项目: 
    • 表 - 表的名称。 
    • 记录数 - 你要生成的记录数。这可以是数字,也可以是象 10..100 这样的范围。 
    • 名称 - 字段名称。 
    • 类型 - 字段的数据类型。 
    • 大小 - 字段大小(在适当的时候)。对于数字字段,这将是数值范围、精度。 
    • 数据 - 字段数据的定义(见下面)。 
    • 主列 - 如果这个表是另一个表的明细,你可以设置主列。对于每一个已产生的记录,指定数量的明细记录将被生成。 


    你可以使用“添加现有表”按钮来添加一个现有的表,你还可以从对象浏览器里拖放一个表。 
    数据定义
    数据定义决定了被生成的数据。如果你要创建简单的字符,你可以在两个方括号之间输入字符定义:[数据] 166 PL/SQL Developer 7.0 用户指南 
    数据可以是下列预先确定的集的混合体: 
    • 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)) 
    PL/SQL Developer 7.0 用户指南 167 


    • 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 。如果需要,你可以添加自己的集。添加一个逗号分隔的文件很简单,在文件里第一行两个方括号之间保存着描述。你可以通过指定“文件名.描述”来使用你的文件里的数据,就象两个例子那样。 168 PL/SQL Developer 7.0 用户指南 
    上面提及的所有函数和数据都可以添加到一起,例如:Random(10..99) + '-' + [A(4)] 。 “+”是可选的,但那里至少应该有一个空格作为分隔符。 
    选项
    选项标签页允许你设置一些首选项,特别是数据生成器的定义。你可以指定一个日期的格式(与被 Random 函数使用的例子一样)。你还可以指定在多少条记录之后需要提交(设为 0 是一完成就提交)。延迟首选项仅仅用于一些实时测试,在这里你需要数据以指定的速度被插入。 
    自定义部分允许你定义或越过被用于 [数据] 定义的字符集。项目总是单个字符,值是一个或多个空格分隔的字符范围,就象这样:A..Z a..z 0..9 #200..#220 。例如,要定义一个十六进制的字符集,你可以指定 H 为项目,0..9 A..F 为值。 
    “初始化脚本”部分允许你指定在数据被插入到数据库里前应该被执行的 SQL 语句。在典型的情况下,这将是创建表或截短表、选择回滚段等等的语句。多个语句需要用分号来分隔。 
    通过按左边首选项按钮,在默认的情况下,对于所有数据生成器的一般选项可以被定义。要了解更多详细资料,请看第 16.23 章。如果数据生成器定义里相应的首选项也被设置了,这些首选项将被否决。 
    生成数据 
    在左下方有三个按钮可用于生成实际的数据: 
    • 开始测试运行 - 这将在结果标签页上的表格里生成数据和显示结果。通过右击表格,你可以以不同的格式导出这些结果。 
    • 创建数据为 SQL - 生成数据为 SQL 脚本。这仅仅工作于你不用文件功能添加来自文件的数据的情况下。 
    PL/SQL Developer 7.0 用户指南 169 


    • 在数据库里创建数据 - 生成数据到 Oracle 数据库里。


    展开全文
  • 如果是txt文件的数据导入oracle中,数据量大的话用pl/sql会卡死,那么就要用到sqlload命令。 前两天在做一个不算任务的任务,用shell脚本将数据库中的数据导出到文件,在万能的百度上找了一些资料,自己亲手实践了...

    如果是txt文件的数据导入oracle中,数据量大的话用pl/sql会卡死,那么就要用到sqlload命令。

    前两天在做一个不算任务的任务,用shell脚本将数据库中的数据导出到文件,在万能的百度上找了一些资料,自己亲手实践了一番,脚本语言又有长进。从数据库导出数据到TXT文件,完全OK,那么从TXT文本导入到数据库又怎样操作呢?于是又上万能的度娘,又亲手实践了一上午,发现网上的不少例子很好,但是不尽详细,还是要靠自己理解,因此将学习的经验和结果记录如下。

    1.Oracle导出到TXT文本

    从Oracle导出数据到TXT文本,是很容易的,这里用到spool,通过spool 命令,可以将select 数据库的内容写到文件中,通过在sqlplus设置一些参数,使得按指定方式写到文件中。

    常规使用spool方法,将set的一些命令和spool,select等放入.sql脚本中,然后再sqlplus中运行该脚本。

    例如以下设置就是常用的模式,只要将文件名和SQL替换成你自己的就可以正常使用。

    set line 1000         --设置行的长度
    set pagesize 0        --输出不换页
    set feedback off      --默认的当一条sql发出的时候,oracle会给一个反馈,比如说创建表的时候,如果成功命令行会返回类似:Table created的反馈,off后不显示反馈
    set heading off       --不显示表头信息
    set trimspool on      --如果trimspool设置为on,将移除spool文件中的尾部空
    set trims on          --去掉空字符
    set echo off;       --显示start启动的脚本中的每个sql命令,缺省为on
    set colsep ','         --设置分隔符
    --set termout off        --不在屏幕上显示结果
    spool db1.txt          --记录数据到db1.txt
    select * from UCR_PARAM.STUDENT2_TEMP;  --导出数据语句
    spool off              --收集完毕
    exit

    使用表student2来做测试,student2的表结构如下:

    SQL> desc student2;
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     SID                                       NOT NULL NUMBER(10)
     SNAME                                     NOT NULL VARCHAR2(20)
     SAGE                                      NOT NULL NUMBER
     SSEX                                      NOT NULL CHAR(2)
     SADDRESS                                  NOT NULL VARCHAR2(20)
     SBIRTH                                             DATE
     REMARK                                             VARCHAR2(200)
     GRADUATION_DATE                                    DATE

    表内的数据:REMARK和GRADUATION_DATE字段为null

    下面将使用标准shell脚本连接数据库并将数据导出到TXT,通常的步骤是:

    1.在shell脚本设置好对应的TXT文件路径及文件名,SQL语句,log路径等。

    2.sqlplus连接数据库,这里使用-s简单模式,连接上以后不输出任何内容,这样可以直接使用spool导出结果到文件

    3.设置导出的格式,字段,空格等

    注意,以下脚本set部分虽然有去空格,但是空格任然存在,最好在结束使用命令将所有空白字符去除

    #去除文件开头的空格及中间的空白字符

    #去除文件开头的空格及中间的空白字符
    sed -i 's/ //g' ${work_path}/stu_${file_date}.txt

    完整的 dbout.sh,前面为注释和举例,核心功能从 sqlplus开始

    #!/usr/bin/bash
    
    #多行注释
    :<<BLOCK
    set line 1000         --设置行的长度
    set pagesize 0        --输出不换页
    set feedback off      --默认的当一条sql发出的时候,oracle会给一个反馈,比如说创建表的时候,如果成功命令行会返回类似:Table created的反馈,off后不显示反馈
    set heading off       --不显示表头信息
    set trimspool on      --如果trimspool设置为on,将移除spool文件中的尾部空
    set trims on          --去掉空字符
    set echo off;       --显示start启动的脚本中的每个sql命令,缺省为on
    set colsep '|'         --设置分隔符
    --set termout off        --不在屏幕上显示结果
    spool $filename          --记录数据到db1.txt
    $sqlinfo2;  --导出数据语句
    spool off              --收集完毕
    exit
    BLOCK
    #可以在这里拼接语句,用|或;,但是逗号,拼接','不行
    #逗号拼接可以在后面的sqlplus中设置列分隔符:set colsep ','
    sqlinfo="select  B.ORDER_ID||';'||
                    B.PEER_ORDER_ID||';'||
                    B.BUSI_CODE||';'||
                    B.ACCOUNT_CODE||';'||
                    A.TRADE_FEE||';'||
                    A.RECEIPT_FEE||';'||
                    A.RATE_FEE||';'||
                    A.BUSI_CODE||';'||
                    A.PAY_STATUS||';'||
                    to_char(A.CHECK_DATE, 'yyyy-mm-dd') 
                    from ucr_cen.UPG_ORDER_PAY_DETAIL A,
                    ucr_cen.I_UPG_ORDER_TMP B
              WHERE B.MERCHANT_ID = '510915'
                    AND B.PEER_ORDER_ID != '-1'
                    AND A.CHECK_STATUS IN ('0','2','3')
                    AND A.STATE = 'U'
                    AND A.PAY_STATUS = '1'
                    AND A.CHECK_DATE BETWEEN TRUNC(SYSDATE-1) AND TRUNC(SYSDATE)-1/86400 
                    AND A.ORDER_ID = B.ORDER_ID;"
    
    
    #以上为举例和注释,核心功能从这里开始
    sqlinfo2="select SID,SNAME,SAGE,to_char(GRADUATION_DATE,'yyyy-mm-dd'),SSEX,SADDRESS,REMARK,to_char(SBIRTH,'yyyy-mm-dd') from UCR_PARAM.STUDENT2;" 
    #sqlinfo2="select SID,SNAME,SAGE,to_char(GRADUATION_DATE,'yyyy-mm-dd'),SSEX,SADDRESS,to_char(SBIRTH,'yyyy-mm-dd'),REMARK from UCR_PARAM.STUDENT2;"
    #不设置拼接时,使用逗号分隔符 set colsep ',' ,当该列为空时会返回占位的空白字符,一般此种情况用于后续将TXT文本直接导入数据库方便
    start_time=`date +%Y%m%d%H%M%S`
    work_path=/home/billing/user/zhf/test
    DbCon=用户名/密码@所属组
    file_date=`date +%Y%m%d`
    filename=${work_path}/stu_${file_date}.txt;
    
    echo "----------------  start to exec job   $start_time "
    echo "----------------  sqlinfo = $sqlinfo2 "
    #echo "----------------  start to exec job   $start_time ">>${work_path}/$start_time.log
    #echo "----------------  sqlinfo = $sqlinfo2 ">>${work_path}/$start_time.log
    echo "----------------  connect to $DbCon and try to exec sql..."
    #echo "----------------  connect to $DbCon and try to exec sql...">>${work_path}/$start_time.log
    
    
    sqlplus -S $DbCon<< EndSql
    set line 1000
    set pagesize 0
    set feedback off
    set heading off
    set trimspool on
    set trims on
    set echo off
    set colsep ','
    --set termout off
    spool $filename
    $sqlinfo2
    spool off
    exit
    EndSql
    #去除文件开头的空格及中间的空白字符
    sed -i 's/ //g' ${work_path}/stu_${file_date}.txt
    end_time=`date +%Y%m%d%H%M%S`
    echo "----------------  cmd end , please check te result $end_time"
    #echo "----------------  cmd end , please check te result $end_time">>${work_path}/$start_time.log

    导出的结果,注意,两个逗号,,分隔的字段没有内容即为null值 ,此处该两个null字段在中间,不在结尾,后面将看另一种情况:即null字段在结尾的情况下

    生成文件暂命名为:stu_20190810.txt

    1,lily,24,,M,Shanxi,,1993-01-14
    2,kity,17,,WM,Shanxi,,2001-01-14
    3,bobo,27,,WM,Shanxi,,1991-01-14
    4,anna,29,,WM,Shanxi,,1989-01-14

    2.从TXT文本导入Oracle数据表

    从TXT文本文件导入数据库其实也简单,格式依然是固定sqlldr的控制文件

    我们先新建一张表student3

    create table UCR_PARAM.STUDENT3 as select * from UCR_PARAM.STUDENT2 where 1=2;

    --将字段GRADUATION_DATE修改为varchar类型,因为该字段为null,在插入时,date转换不接受null,因此用varchar来接收

    alter table UCR_PARAM.STUDENT3 modify GRADUATION_DATE varchar2(14);

    student3表结构如下:

    打开一个.ctl文件,插入以下内容

    vi tb_sqlldr.ctl

    load data                 
    infile 'stu_20190810.txt' --数据来源文本 
    APPEND into table ucr_param.STUDENT3-- 原先的表有数据 就加在后面
    --INSERT into table ucr_param.STUDENT3-- 装载空表 如果原先的表有数据 sqlloader会停止 默认值
    --REPLACE into table ucr_param.STUDENT3-- 原先的表有数据 原先的数据会全部删除
    --TRUNCATE into table ucr_param.STUDENT3-- 指定的内容和replace的相同 会用truncate语句删除现存数据 
    fields terminated by "," --4、字段终止于X'09',是一个制表符(tab) (id,name) --定义对应的字段名称,注意顺序
    TRAILING NULLCOLS --如要导入源文件此列内容为空,在导入到数据库表中,此列内容就是null
    --读取的TXT字段对应数据库中的字段,注意顺序要与TXT字段顺序一直
    (SID	"to_number(:SID)" ,
    SNAME 	,
    SAGE	"to_number(:SAGE)" ,
    GRADUATION_DATE "NVL(:GRADUATION_DATE, '未知')",--"NVL(to_date(:GRADUATION_DATE, 'yyyy-mm-dd'),'NULL')", date为null时插入行不通,date函数不接受null值,因此修改表结构
    SSEX	,
    --NULLIF (expr1, expr2),若expr1和expr2相等,返回NULL;不相等,等返回expr1
    SADDRESS "NULLIF(:SADDRESS,'NULL')",
    --NVL(expr1,expr2),若expr1为null, 返回expr2; 不为null,返回expr1。  注意:两者类型要一致
    REMARK "NVL(:REMARK,'NULL')",
    SBIRTH	date"yyyy-mm-dd" ) -- coulmun

    注意,此处GRADUATION_DATE和REMARK字段为null,那么这一句就很重要 ,否则sql loader 读取到null值,插入时会报错

    TRAILING NULLCOLS --如要导入源文件此列内容为空,在导入到数据库表中,此列内容就是null

    date类型的数据插入时可以使用两种方式插入:

    SBIRTH    date"yyyy-mm-dd" 或 SBIRTH    "to_date(:SBIRTH, 'yyyy-mm-dd')"

    注意,读取的字段内容为空的,加入该字段判断:

    --NVL(expr1,expr2),若expr1为null, 返回expr2; 不为null,返回expr1。  注意:两者类型要一致
    REMARK "NVL(:REMARK,'NULL')"

    新建一个shell脚本调用该控制文件,dao.sh

    #!/bin/ksh 
    #注意,顶行是固定格式
    sqlldr userid=数据库名/密码@所属库 control=tb_sqlldr.ctl

    调用:dao.sh

    结果验证:

    另一种情况,导出的TXT文件null字段刚好在行尾

    放开dbout.sh的另一种sqlinfo2的情况

    生成的TXT文件结果:行尾有逗号

    1,lily,24,,M,Shanxi,1993-01-14,
    2,kity,17,,WM,Shanxi,2001-01-14,
    3,bobo,27,,WM,Shanxi,1991-01-14,
    4,anna,29,,WM,Shanxi,1989-01-14,

    调整ctl控制文件的字段顺序,也可以导入:

    load data                 
    infile 'stu_20190810.txt' --数据来源文本 
    APPEND into table ucr_param.STUDENT3-- 原先的表有数据 就加在后面
    --INSERT into table ucr_param.STUDENT3-- 装载空表 如果原先的表有数据 sqlloader会停止 默认值
    --REPLACE into table ucr_param.STUDENT3-- 原先的表有数据 原先的数据会全部删除
    --TRUNCATE into table ucr_param.STUDENT3-- 指定的内容和replace的相同 会用truncate语句删除现存数据 
    fields terminated by "," --4、字段终止于X'09',是一个制表符(tab) (id,name) --定义对应的字段名称,注意顺序
    TRAILING NULLCOLS --如要导入源文件此列内容为空,在导入到数据库表中,此列内容就是null
    (SID    "to_number(:SID)" ,
    SNAME   ,
    SAGE    "to_number(:SAGE)" ,
    GRADUATION_DATE "NVL(:GRADUATION_DATE, '未知')",--"NVL(to_date(:GRADUATION_DATE, 'yyyy-mm-dd'),'NULL')",
    SSEX    ,
    --NULLIF (expr1, expr2),若expr1和expr2相等,返回NULL;不相等,等返回expr1
    SADDRESS "NULLIF(:SADDRESS,'NULL')",
    SBIRTH  "to_date(:SBIRTH, 'yyyy-mm-dd')" ,
    --NVL(expr1,expr2),若expr1为null, 返回expr2; 不为null,返回expr1。  注意:两者类型要一致
    REMARK "NVL(:REMARK,'NULL')") -- coulmun

    注意,如果表字段数据类型数长字符串,大于255时,在导入的时候需要指定导入字段的最大长度,否则会因为导入字段超过255时超长失败。导入的字段指定长度如下,且要使用char定长类型

    (COLL_HOST char(32),
    WARN_INFO       char(2000),
    UPDATE_TIME     char(32)
    )

     

    展开全文
  • kettle oracle循环分页迁移数据的完整例子,生成txt后FTP上传到远程服务器
  • Oracle中如何用一条SQL快速生成10万条测试数据.txtOracle中如何用一条SQL快速生成10万条测试数据.txt
  • 可以把oracle中大量数据导出为txt格式,便于在线下载、存储等后续处理。已经测试过,可以执行。
  • Automation of software Oracle大数据量数据生成器Data Generator的使用 首先测试环境建立:dept表 CREATETABLE dept  ( deptno N

    http://www.cnblogs.com/Automation_software/archive/2011/01/27/1946366.html

    Oracle大数据量数据生成器Data Generator的使用

    首先测试环境建立:dept表

    CREATETABLE 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数据库中。

    专注于自动化、性能研究,博客为原创,转载请注明文章来源于:http://www.cnblogs.com/Automation_software/ 只求在IT界有一个清闲的世界让我静心的去专研,不求功名利禄,只为心中的那份成就感及自我成长、自我实现的快感。

    展开全文
  • Oracle数据导出TXT文本

    千次阅读 2012-06-26 19:47:37
    对于SPOOL数据的SQL,最好要自己定义格式,以方便程序直接导入,SQL语句如: select taskindex||'|'||commonindex||'|'||tasktype||'|'||to_number(to_char(sysdate,'YYYYMMDD')) from ssrv_sendsms_t
  • Oracle数据库:10.251.11.1:1521/orcl,用户名/密码-scott/tiger; 应用服务器是另一台服务器,可以正常和10.251.11.1:1521通讯。...在应用服务器上编写一个Shell脚本,连接Oracle数据库并导出数据生成数据文件。
  • ociuldr oracle导出数据txt

    千次阅读 2013-10-09 15:22:38
    将ociuldr.exe复制到H:\oracle\product\10.2.0\db_1\BIN下, 或者path中的某个文件夹中 用法: C:\Documents and Settings\tgm>ociuldr Usage: ociuldr user=... query=... field=... record=... file=... (@) ...
  • 以下主要介绍的是如何正确的把Oracle数据导出成Txt 的格式,Oracle数据导出成Txt 在实际应用中的比例还是比较常见的,以下的文章主要是对实际操作方案的描述,以下就是正文的主要内容的描述。 Oracle数据库提供的SQL...
  • 用我写的软件可以自动生成用户下的所有表的数据字典,并且可以生成创建语句,具体操作如下:1.打开生成文档窗口.2.选择类型为表,选择对象,如果对象不选的默认为所有的表,也可以生成部分表的数据字典.3.选择要导出的...
  • 如何把ORACLE查询结果输出成TXT文件.docx
  • Spool,是Oracle快速导出数据的工具,是sqlplus的指令,不是sql语法里的东西; 特殊场景,只有select表数据的权限,想要导出所有查询结果,使用sqlplus操作sql如下: set trimspool on; #去除重定向(spool)输出...
  • Oracle Trace文件生成及查看

    千次阅读 2018-12-12 11:03:48
    Oracle Trace文件生成及查看 Oracle查看trace文件步骤 Oracle-trace文件分析 Trace 文件具体解析 转载https://blog.csdn.net/weiwenhp/article/details/6932835 Oracle Trace文件生成及查看 1.Trace file简介:...
  • ORACLE AWR报告生成步骤

    千次阅读 2018-12-06 09:20:08
    PLSQL AWR报告生成步骤 1.sqlplus或plsql的commod窗口(命令窗口)运行...--然后在弹出的对话框中输入选择的导出格式html或者txt,一般用html,生成的报告用浏览器查看比较方便。   2.在弹出的对话框中输入数字...
  • oracle中自动大批量生成测试数据

    万次阅读 2010-06-12 11:15:00
    用quest benkmark或者powerdesginer,pl/sql developer的数据生成器都可以做,当然自己写sql也可以
  • #首先声明存储生成txt文件的目录,注意oracle要有写权限,其权限不能由自己赋给自己,必须由sysbas赋给   create directory DIR_DUMP as '/home/oracle/';   conn / as sysdba   grant read,write on direct
  • Oracle - Spool导出数据TXT文件

    千次阅读 2018-02-22 19:09:18
    spool的作用可以用一句话来描述:在sqlplus中用来保存或打印查询结果。即,可以将sql查询的结果保存问文件。 spool常用的设置 set colsep','; //域(列)输出分隔符 set echo off; //不显示start启动的脚本中...
  • oracle索引 & 快速生成大量测试数据

    千次阅读 2017-04-11 20:36:15
    快速生成2000000条数据: create table index_test_rz1135 as select rownum as id, to_char(sysdate + rownum/24/3600, 'yyyy-mm-dd hh24:mi:ss') as itime, trunc(dbms_random.value(1,100000)) as random...
  • 通过XML串生成游标返回功能的过程演示,此过程有局限性,XML太长处理不了。 处理的逻辑是解析XML构造SQL语句,然后执行这个语句,但此语句是一个变量保存的,变量的长度有限制。抱歉暂时没有好的解决办法。如果有...
  • Oracle Trace文件生成及TKPROF格式化查看 实例
  • ORACLE数据库数据类型

    千次阅读 2019-11-28 17:51:42
    1.2 Oracle数据类型 1.2.1 预定义数据类型 Oracle的数据类型分为标量(Scalar)类型、复合(Composite)类型、引用(Reference)类型和LOB(Large Object)类型4种类型 。标量类型没有内部组件又分为四类:数字...
  • 我自己是使用的spool工具导出,但是效率太低,而且还总是出现TNS问题, ... 希望能找到一个高效导入数据的方法,由于数据最终是要导入到linux进行MapReduce运算,所以有直接导入到Linux下的方法也行,谢谢!
  • oracle查询语句大全

    千次阅读 2014-10-04 10:59:43
    oracle查询语句大全 oracle 基本命令大全一  1.create user username identified by password;//建用户名和密码oracle ,oracle   2.grant connect,resource,dba to username;//授权 grant connect,...
  • oracle 生成awr报告

    千次阅读 2017-07-28 10:19:16
    awrrpt报告 awrrpt报告定义 awrrpt报告是awr报告是oracle 10g下提供的一种性能收集和分析工具,它能提供一个时间段内整个oracle...awrrpt 生成步骤 1:登录数据库服务器192.168.1.172 , 用户名:oracle, 密码:****** 2
  • Oracle AWR报告生成与查看

    千次阅读 2011-04-08 12:31:00
    <br />转自:http://blog.sina.com.cn/s/blog_6d6e54f70100nnje.html<br />  可以通过dba_hist_wr_control查看当前的配置情况,当前awr为每1小时做一次数据快照,保留时间为7天。 SYS@PENG SQL> ...
  • Oracle中导入数据   Oracle中导入数据时,使用的文件后缀是*.ctl   命令是 sqlldr   sqlldr username/password control = 'TBL_EMP,ctl'   从postgre中导出部分数据 psql saison -c 'select user_id,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,055
精华内容 9,622
关键字:

oracle查询数据生成txt