hgc-ghc
          Good Good Study!!! Day Day Up!!!
          posts - 40,comments - 3,trackbacks - 0

          Oracle大數(shù)據(jù)量數(shù)據(jù)生成器Data Generator的使用

          首先測(cè)試環(huán)境建立:dept表

          CREATETABLE dept

                ( deptno   NUMBER(6),

                  dname    VARCHAR2(20),

                  loc       VARCHAR2(20));

              以下實(shí)驗(yàn)就是像dept表中插入大量的數(shù)據(jù)。

          數(shù)據(jù)生成器允許創(chuàng)建演示和測(cè)試數(shù)據(jù)。對(duì)于測(cè)試應(yīng)用程序和查看它們?cè)鯓訄?zhí)行大量的數(shù)據(jù),這很有幫助的。可以在PL/SQL Developer的工具菜單的下面找到數(shù)據(jù)生成器:Data Generator。 

          基本上,定義由一個(gè)或多個(gè)表、要生成的記錄數(shù)量和字段數(shù)據(jù)定義構(gòu)成。左上部的按鈕允許打開(kāi)和保存定義。

           

          在上面,可以看到提供的 dept演示,這個(gè)演示是為 dept表創(chuàng)建數(shù)據(jù)。在這一頁(yè)中,發(fā)現(xiàn)有下列項(xiàng)目: 

                    •表 表的名稱(chēng)。 

                    •記錄數(shù) 要生成的記錄數(shù)。這可以是數(shù)字,也可以是象 10..100 這樣的范圍。 

                    •名稱(chēng) 字段名稱(chēng)。 

                    •類(lèi)型 字段的數(shù)據(jù)類(lèi)型。 

                    •大小 字段大小(在適當(dāng)時(shí))。對(duì)于數(shù)字字段,這將是數(shù)值范圍、精度。 

                    •數(shù)據(jù) 字段數(shù)據(jù)的定義(見(jiàn)下面)。 

                    •主列 如果這個(gè)表是另一個(gè)表的明細(xì),可以設(shè)置主列。對(duì)于每個(gè)已產(chǎn)生的記錄,指定數(shù)量的明細(xì)記錄將被生成。 

          我們可以使用添加現(xiàn)有表按鈕來(lái)添加一個(gè)現(xiàn)有的表,還可以從對(duì)象瀏覽器中拖放一個(gè)表。 

          數(shù)據(jù)定義 

          數(shù)據(jù)定義決定了被生成的數(shù)據(jù)。如果要?jiǎng)?chuàng)建簡(jiǎn)單的字符,可以在兩個(gè)方括號(hào)之間輸入字符定義:[數(shù)據(jù)]

          數(shù)據(jù)可以是下列預(yù)先確定的集的混合體: 

                    •  a: a..z (小寫(xiě)字符) 

                    •  A: A..Z (大寫(xiě)字符) 

                    •  @: A..Z 和 a..z (所有字符) 

                    •  #: A..Z 和 a..z 和 0..9 (所有字符和數(shù)字) 

                    •  *: #33..#126 (所有 ASCII 字符) 

                    •  0: 0..9 (所有數(shù)字) 

                    •  1: 1..9 (所有除了 0 之外的數(shù)字) 

                    •  9: 0..9 (所有數(shù)字) 

           

          例如: 

          [Aaa00] 生成字符串如: Gxe21,Liy05 等。 

          還可以在兩個(gè)單引號(hào)之間添加文字文本。 

          例如: 

          [AA '-' 1000] 生成字符串如:CX-4903 ,SY-1044 等。 

          在定義中空格字符是被忽略的,除非它們?cè)谝?hào)中。 

          如果要一個(gè)字符重復(fù)許多次,可以在字符的后面兩個(gè)括號(hào)之間添加次數(shù)(n)。還可以添加一個(gè)隨機(jī)數(shù)(最小..最大)。 

          例如: 

          [Aa(5..15) ' ' Aa(8..20)] 的結(jié)果就象這樣:"Masfae Qwwecdsadif" 

          定義中的文字文本不必被裝入到括號(hào)中。換句話說(shuō),['hello'] 和 'hello' 是等效的。不帶引號(hào)被輸入的文本被認(rèn)為是函數(shù)。 

          有幾個(gè)特定的函數(shù)是可用的: 

                    •Signal(Min, Max, Delta, Noise) 返回技術(shù)測(cè)定數(shù)據(jù)(象溫度這樣的)。Min(最小)和 Max(最大)決定了范圍, Delta(△)為最大更改量,還可以添加一些 Noise(噪聲)。例如:Signal(-10, 20, 0.1, 0.1)。 

                    •Random([Min], Max) 返回Min(最小)和 Max(最大)之間的隨機(jī)數(shù)。如果只指定了 Max ,那么 Min 就被設(shè)為 0 。對(duì)于日期字段,可以輸入Min(最小)和 Max(最大)的日期。 

                    •Sequence(Start, [Inc], [WithinParent]) 返回序號(hào)。Start 為開(kāi)始值,Inc 為增量(默認(rèn)為 1)。對(duì)于明細(xì)表,可以再指定 WithinParent 關(guān)鍵詞來(lái)指出序列應(yīng)該為每個(gè)父記錄進(jìn)行重新安排。 

                    •List('item'(weight), 'item'(weight), ...) 隨機(jī)地返回指定項(xiàng)目(item)之一。加權(quán)數(shù)(weight)可以被添加到兩個(gè)括號(hào)之間,允許特定項(xiàng)目比其他項(xiàng)目出現(xiàn)的幾率更大。 例如:List('CLERK'(50), 'SALESMAN'(30), 'MANAGER'(10)) 

          •List(select statement) 象前面的 List 函數(shù),但項(xiàng)目是通過(guò) SQL select statement(select 語(yǔ)句)返回的。 

          • Text([Style], MaxCharacters, [WordsPerLine, LinesPerParagraph]) 這個(gè)函數(shù)返回文本。可選擇的 Style(字體)參數(shù)可以是 LorumIpsum(默認(rèn))(懷疑是荷蘭語(yǔ)。——譯者姜華東注)、英語(yǔ)、德語(yǔ)或日語(yǔ)。它還可以是象 [aA] 這樣的字符集,在這種情況下,詞匯從指定的字符集中產(chǎn)生。 MaxCharacters 決定了生成的文本的最大大小,WordsPerLine 和 LinesPerParagraph 決定了行和段落的大小。指定的大小可以是指定的數(shù)字或范圍(最小..最大)。 

           File(path, path, ...) 從特定的路徑(path)中隨機(jī)地選擇一個(gè)文件,并插入內(nèi)容。允許輸入二進(jìn)制數(shù)據(jù)(象圖片這樣的)到數(shù)據(jù)庫(kù)中。路徑可以使用通配符,象 d:\images\*.bmp 這樣的。 

          可以通過(guò)使用下列函數(shù)更改前面函數(shù)的文本結(jié)果: 

                    •Uppercase() 

                    •LowerCase() 

                    •InitCaps() 

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

          還有幾個(gè)預(yù)先定義的數(shù)據(jù)集可用于生成或多或少的真實(shí)數(shù)據(jù)。可以使用下列定義: 

                    •Firstname 一般列表中的名 

                    •Lastname 一般列表中的姓 

                    •Company 公司名(現(xiàn)有公司的隨機(jī)列表) 

                    •Address1 地址行 1 

                    •Address2 地址行 2 

                    •ZIP 郵政編碼 

                    •City 城市 

                    •State 省 

                    •Country 國(guó)家 

                    •Email (被關(guān)聯(lián)到 Firstname ,Lastname 和 Country) 

          還有一些可用的實(shí)例自定義數(shù)據(jù)集: 

                    •Components.Code 一般商品項(xiàng)目:商品代碼 

                    •Components.Description 商品描述(計(jì)算機(jī)部分) 

                    •Components.Price 商品價(jià)格 

                    •Elements.Name 化學(xué)元素(名稱(chēng)) 

                    •Elements.Symbol 化學(xué)元素(符號(hào)) 

          這些數(shù)據(jù)集可以在 DataGenerator\UserData 目錄中被找到,文件名為elements.txt 和 components.txt 。如果需要,可以添加自己的集。添加一個(gè)逗號(hào)分隔的文件很簡(jiǎn)單,在文件中第一行兩個(gè)方括號(hào)之間保存著描述。可以通過(guò)指定文件名.描述來(lái)使用的文件中的數(shù)據(jù),就象兩個(gè)例子那樣。

          上面提及的所有函數(shù)和數(shù)據(jù)都可以添加到一起,例如:Random(10..99) + '-' + [A(4)] 。 +是可選的,但那中至少應(yīng)該有一個(gè)空格作為分隔符。 

           

          選項(xiàng) 

          選項(xiàng)標(biāo)簽頁(yè)允許設(shè)置一些首選項(xiàng),特別是數(shù)據(jù)生成器的定義。可以指定一個(gè)日期的格式(與被 Random 函數(shù)使用的例子一樣)。還可以指定在多少條記錄之后需要提交(設(shè)為 0 是一完成就提交)。延遲首選項(xiàng)僅僅用于一些實(shí)時(shí)測(cè)試,這中需要數(shù)據(jù)以指定的速度被插入。

           

          自定義部分允許定義或越過(guò)被用于 [數(shù)據(jù)] 定義的字符集。項(xiàng)目總是單個(gè)字符,值是一個(gè)或多個(gè)空格分隔的字符范圍,就象這樣:A..Z a..z 0..9 #200..#220 。例如,要定義一個(gè)十六進(jìn)制的字符集,可以指定 H 為項(xiàng)目,0..9 A..F 為值。 

          初始化腳本部分允許指定在數(shù)據(jù)被插入到數(shù)據(jù)庫(kù)中前應(yīng)該被執(zhí)行的 SQL 語(yǔ)句。在典型的情況下,這將是創(chuàng)建表或截短表、選擇回滾段等的語(yǔ)句。多個(gè)語(yǔ)句需要用分號(hào)來(lái)分隔。 

          通過(guò)按左邊首選項(xiàng)按鈕,在默認(rèn)的情況下,對(duì)于所有數(shù)據(jù)生成器的一般選項(xiàng)可以被定義。如果數(shù)據(jù)生成器定義中相應(yīng)的首選項(xiàng)也被設(shè)置了,這些首選項(xiàng)將被否決。 

           

          生成數(shù)據(jù) 

          在左下方有三個(gè)按鈕可用于生成實(shí)際的數(shù)據(jù): 

                    •開(kāi)始測(cè)試運(yùn)行 這將在結(jié)果標(biāo)簽頁(yè)上的表格中生成數(shù)據(jù)和顯示結(jié)果。通過(guò)右鍵單擊表格,可以以不同的格式導(dǎo)出這些結(jié)果。 

                    •創(chuàng)建數(shù)據(jù)為 SQL 生成數(shù)據(jù)為 SQL 腳本。這僅僅工作于不用文件功能添加來(lái)自文件的數(shù)據(jù)的情況下。 

          •在數(shù)據(jù)庫(kù)中創(chuàng)建數(shù)據(jù) 生成數(shù)據(jù)到 Oracle 數(shù)據(jù)庫(kù)中。
          ===================================================================================================================

          注:該文并非完全原創(chuàng),主要來(lái)源

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

          Tools/Data Generator/

          界面

          數(shù)據(jù)定義

          數(shù)據(jù)定義決定了被生成的數(shù)據(jù)。如果要?jiǎng)?chuàng)建簡(jiǎn)單的字符,可以在兩個(gè)方括號(hào)之間輸入字符定義:[數(shù)據(jù)]

          數(shù)據(jù)可以是下列預(yù)先確定的集的混合體:

                      a: a..z (小寫(xiě)字符)

                      A: A..Z (大寫(xiě)字符)

                      @: A..Z  a..z (所有字符)

                      #: A..Z  a..z  0..9 (所有字符和數(shù)字)

                      *: #33..#126 (所有 ASCII 字符)

                      0: 0..9 (所有數(shù)字)

                      1: 1..9 (所有除了 0 之外的數(shù)字)

                      9: 0..9 (所有數(shù)字)

           例如:

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

          還可以在兩個(gè)單引號(hào)之間添加文字文本。

          例如:

          [AA '-' 1000] 生成字符串如:CX-4903 SY-1044 等。

          在定義中空格字符是被忽略的,除非它們?cè)谝?hào)中。

          如果要一個(gè)字符重復(fù)許多次,可以在字符的后面兩個(gè)括號(hào)之間添加次數(shù)(n)。還可以添加一個(gè)隨機(jī)數(shù)(最小..最大)

          例如:

          [Aa(5..15) ' ' Aa(8..20)] 的結(jié)果就象這樣:"Masfae Qwwecdsadif"

          定義中的文字文本不必被裝入到括號(hào)中。換句話說(shuō),['hello']  'hello' 是等效的。不帶引號(hào)被輸入的文本被認(rèn)為是函數(shù)。

          有幾個(gè)特定的函數(shù)是可用的:

                    Signal(Min, Max, Delta, Noise) 返回技術(shù)測(cè)定數(shù)據(jù)(象溫度這樣的)。Min(最小)和 Max(最大)決定了范圍, Delta(△)為最大更改量,還可以添加一些 Noise(噪聲)。例如:Signal(-10, 20, 0.1, 0.1)

                    Random([Min], Max) 返回Min(最小)和 Max(最大)之間的隨機(jī)數(shù)。如果只指定了 Max ,那么 Min 就被設(shè)為 0 。對(duì)于日期字段,可以輸入Min(最小)和 Max(最大)的日期。

                    Sequence(Start, [Inc], [WithinParent]) 返回序號(hào)。Start 為開(kāi)始值,Inc 為增量(默認(rèn)為 1)。對(duì)于明細(xì)表,可以再指定WithinParent 關(guān)鍵詞來(lái)指出序列應(yīng)該為每個(gè)父記錄進(jìn)行重新安排。

                    List('item'(weight), 'item'(weight), ...) 隨機(jī)地返回指定項(xiàng)目(item)之一。加權(quán)數(shù)(weight)可以被添加到兩個(gè)括號(hào)之間,允許特定項(xiàng)目比其他項(xiàng)目出現(xiàn)的幾率更大。 例如:List('CLERK'(50), 'SALESMAN'(30), 'MANAGER'(10))

          List(select statement) 象前面的 List 函數(shù),但項(xiàng)目是通過(guò) SQL select statementselect 語(yǔ)句)返回的。

           Text([Style], MaxCharacters, [WordsPerLine, LinesPerParagraph]) 這個(gè)函數(shù)返回文本。可選擇的 Style(字體)參數(shù)可以是LorumIpsum(默認(rèn))(懷疑是荷蘭語(yǔ)。——譯者姜華東注)、英語(yǔ)、德語(yǔ)或日語(yǔ)。它還可以是象 [aA] 這樣的字符集,在這種情況下,詞匯從指定的字符集中產(chǎn)生。 MaxCharacters 決定了生成的文本的最大大小,WordsPerLine  LinesPerParagraph 決定了行和段落的大小。指定的大小可以是指定的數(shù)字或范圍(最小..最大)。

           File(path, path, ...) 從特定的路徑(path)中隨機(jī)地選擇一個(gè)文件,并插入內(nèi)容。允許輸入二進(jìn)制數(shù)據(jù)(象圖片這樣的)到數(shù)據(jù)庫(kù)中。路徑可以使用通配符像 d:\images\*.bmp 這樣的。

          可以通過(guò)使用下列函數(shù)更改前面函數(shù)的文本結(jié)果:

                    Uppercase()

                    LowerCase()

                    InitCaps()

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

          還有幾個(gè)預(yù)先定義的數(shù)據(jù)集可用于生成或多或少的真實(shí)數(shù)據(jù)。可以使用下列定義:

                    Firstname 一般列表中的名

                    Lastname 一般列表中的姓

                    Company 公司名(現(xiàn)有公司的隨機(jī)列表)

                    Address1 地址行 1

                    Address2 地址行 2

                    ZIP 郵政編碼

                    City 城市

                    State 

                    Country 國(guó)家

                    Email (被關(guān)聯(lián)到 Firstname Lastname  Country

          還有一些可用的實(shí)例自定義數(shù)據(jù)集:

                    Components.Code 一般商品項(xiàng)目:商品代碼

                    Components.Description 商品描述(計(jì)算機(jī)部分)

                    Components.Price 商品價(jià)格

                    Elements.Name 化學(xué)元素(名稱(chēng))

                    Elements.Symbol 化學(xué)元素(符號(hào))

          這些數(shù)據(jù)集可以在 DataGenerator\UserData 目錄中被找到,文件名為elements.txt  components.txt 。如果需要,可以添加自己的集。添加一個(gè)逗號(hào)分隔的文件很簡(jiǎn)單,在文件中第一行兩個(gè)方括號(hào)之間保存著描述。可以通過(guò)指定文件名.描述來(lái)使用的文件中的數(shù)據(jù),就象兩個(gè)例子那樣。

          上面提及的所有函數(shù)和數(shù)據(jù)都可以添加到一起,例如:Random(10..99) + '-' + [A(4)]  +是可選的,但那中至少應(yīng)該有一個(gè)空格作為分隔符。

           

          自定義部分允許定義或越過(guò)被用于 [數(shù)據(jù)定義的字符集。項(xiàng)目總是單個(gè)字符,值是一個(gè)或多個(gè)空格分隔的字符范圍,就象這樣:A..Z a..z 0..9 #200..#220 。例如,要定義一個(gè)十六進(jìn)制的字符集,可以指定 H 為項(xiàng)目,0..9 A..F 為值。

          初始化腳本部分允許指定在數(shù)據(jù)被插入到數(shù)據(jù)庫(kù)中前應(yīng)該被執(zhí)行的 SQL 語(yǔ)句。在典型的情況下,這將是創(chuàng)建表或截短表、選擇回滾段等的語(yǔ)句。多個(gè)語(yǔ)句需要用分號(hào)來(lái)分隔。

          通過(guò)按左邊首選項(xiàng)按鈕,在默認(rèn)的情況下,對(duì)于所有數(shù)據(jù)生成器的一般選項(xiàng)可以被定義。如果數(shù)據(jù)生成器定義中相應(yīng)的首選項(xiàng)也被設(shè)置了,這些首選項(xiàng)將被否決。

           

          生成數(shù)據(jù)

          在左下方有三個(gè)按鈕可用于生成實(shí)際的數(shù)據(jù):

                    •開(kāi)始測(cè)試運(yùn)行 這將在結(jié)果標(biāo)簽頁(yè)上的表格中生成數(shù)據(jù)和顯示結(jié)果。通過(guò)右鍵單擊表格,可以以不同的格式導(dǎo)出這些結(jié)果。

                    •創(chuàng)建數(shù)據(jù)為 SQL 生成數(shù)據(jù)為 SQL 腳本。這僅僅工作于不用文件功能添加來(lái)自文件的數(shù)據(jù)的情況下。

          •在數(shù)據(jù)庫(kù)中創(chuàng)建數(shù)據(jù) 生成數(shù)據(jù)到 Oracle 數(shù)據(jù)庫(kù)中。

          選項(xiàng)

          選項(xiàng)標(biāo)簽頁(yè)允許設(shè)置一些首選項(xiàng),特別是數(shù)據(jù)生成器的定義。可以指定一個(gè)日期的格式(與被 Random 函數(shù)使用的例子一樣)。還可以指定在多少條記錄之后需要提交(設(shè)為 0 是一完成就提交)。延遲首選項(xiàng)僅僅用于一些實(shí)時(shí)測(cè)試,這中需要數(shù)據(jù)以指定的速度被插入。有時(shí)候反復(fù)的設(shè)置還是挺麻煩的保存一下

          重點(diǎn):生成date類(lèi)型

          Date類(lèi)型是這里的特例難以生成,如果生成固定格式可以拼接起來(lái)。如:Sequence(2011,0,1)'-'Sequence(03,0,1)'-'Sequence(01,0,1),插入指定的日期。Data Generator插入的日期格式會(huì)自動(dòng)轉(zhuǎn)換成默認(rèn)dd-mm-yyyy格式。

          可以事先設(shè)置時(shí)間生成格式

          近似隨機(jī)日期生成:

          Signal(1990, 2013,23, 0) '/' Signal(1, 12,12, 0) '/' Signal(1, 31,31, 0) ' 'Signal(00, 23,23, 0) ':' Signal(00, 59,59, 0) ':' Signal(00, 59,59, 0)勉強(qiáng)可以模擬隨機(jī)形成 yyyy-mm-dd HH:MI:SS”類(lèi)型的的字符串(還有缺陷就是每個(gè)月都有31號(hào),比如會(huì)形成1998/2/31,這樣生成的sql語(yǔ)句有可能不會(huì)自動(dòng)轉(zhuǎn)換為時(shí)間類(lèi)型)

          Random(Min, Max)方法無(wú)法拼接,每個(gè)返回值會(huì)先強(qiáng)制轉(zhuǎn)換成date類(lèi)型再拼接。

          posted on 2013-04-24 14:04 宏才 閱讀(1064) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 數(shù)據(jù)庫(kù)相關(guān)
          主站蜘蛛池模板: 大冶市| 桐城市| 五华县| 如皋市| 枣强县| 陆河县| 定兴县| 宽城| 济源市| 泽普县| 绥中县| 漳州市| 营山县| 郁南县| 察雅县| 镇原县| 淮南市| 容城县| 扎赉特旗| 南岸区| 中江县| 保康县| 汶上县| 馆陶县| 明星| 延安市| 邵东县| 阜阳市| 贺兰县| 宜城市| 襄汾县| 疏附县| 克东县| 乡城县| 龙胜| 伊金霍洛旗| 库尔勒市| 邹平县| 丰原市| 开化县| 乌兰县|