在oracle中自動大批量產生測試資料

來源:互聯網
上載者:User

方法1:
SQL> create table b as select 1 id from dual connect by
level<=100;

方法2:

SQL> create table a (id int);

Table created.

SQL> insert into a select 1 from dual connect by level<=100;  

100 rows created.

方法三:

create table test_big as select * from all_objects;
insert into test_big as select * from test_big ;
insert into test_big as select * from test_big ;
insert into test_big as select * from test_big ;
insert into test_big as select * from test_big ;

方法四:

create table big_table(a int,b char(3));
declare
i int;
begin
for i in 1..10000 loop
insert /*+ append */ into big_table nologging values(i,'sex');
if mod(i,1000)=0 then
commit;
end if;
end loop;
end;

 

PLSQL Develope手冊上的說明,供參考,可以去下本手冊來看看

資料產生器
資料產生器允許你建立示範和測試資料。對於測試應用程式和查看它們怎樣執行大量的資料,這可能是有協助的。你可以在工具菜單的下面找到資料產生器。
基本上,定義由一個或多個表、你要產生的記錄數量和欄位資料定義構成。左上部的按鈕允許你開啟和儲存定義。
在上面,你可以看到被提供的 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 資料庫裡。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.