Oracle測試腳本分為:變量聲明和腳本兩部分惰拱。
下面以做過的實(shí)例舉例說明:(向表A:t_white_list 中批量插入數(shù)據(jù)讹堤,且表A中字段BUSINESS_ID值取另一個表B:t_comm_member中的member_id字段睁壁;表A中字段WHITE_LIST_ID為uuid隨機(jī)唯一值)
###編寫思路:
1.首先定義變量锣光,在Declare下定義(表A捏卓,字段如下:)
????(1)WHITE_LIST_ID:uuid丛忆,變量逗栽;? ? ? ?>>uuid varchar2(40);
????(2)BUSINESS_ID:表t_comm_member中的member_id字段盖袭,變量;? ?>>由于該字段值從表B中批量取值,為數(shù)組類型,我們首先要先定義一個數(shù)組類型鳄虱,再聲明變量
? ? ? ? >>?/*自定義數(shù)組類型弟塞,‘varchar(40)’是數(shù)組內(nèi)元素的類型,‘index by binary_integer’表示數(shù)組內(nèi)索引 */
? ? ? ? >> type array_type is table of varchar(40) index by binary_integer;
? ? ? ? >>?m_array array_type;? /*聲明變量 m_array?拙已,類型為上面定義的類型*/
????(3)type:0 --表示用戶决记,常量? ? ?>>tp number:= 0;
????(4)hospatal:醫(yī)院id,常量? ? ? ?>>hospatal varchar2(40) := 'abcdefg123456';
????(5)create_date:創(chuàng)建時(shí)間倍踪,默認(rèn)當(dāng)前時(shí)間系宫,格式:yyyy-MM-dd hh24:mm:dd,變量? ? ? >>currentdate date := sysdate;
2.變量定義完成后建车,開始編寫腳本
查詢表B扩借,并將結(jié)果賦值給數(shù)組(查詢表t_comm_member中member_id的值并作為數(shù)組賦值給上述聲明的m_array變量)
>>>select member_id? bulk collect? into m_array? from t_comm_member? where username like '16111%';
3.使用for循環(huán)
for i in 1 .. m_array.count loop
? ? --select查詢get_uuid函數(shù)值并賦值給上述聲明的uuid變量
? ? select get_uuid into uuid from dual;
? ? insert into t_white_list
? ? ? (WHITE_LIST_ID, BUSINESS_ID, TYPE, HOSPITAL_ID, CREATE_TIME)
? ? values
? ? ? (uuid, m_array(i), tp, hospatal, currentdate);
? end loop;
到這里腳本完成,可批量插入數(shù)據(jù)缤至。
上述實(shí)例中學(xué)習(xí)了:常量潮罪、變量、數(shù)組的定義方式凄杯,字符串错洁、整數(shù)類型定義方式,從其他表中查詢數(shù)據(jù)并作為數(shù)組賦值給變量戒突,uuid的取值屯碴,for循環(huán)等。