Oracle测试脚本分为:变量声明和脚本两部分。
下面以做过的实例举例说明:(向表A:t_white_list 中批量插入数据,且表A中字段BUSINESS_ID值取另一个表B:t_comm_member中的member_id字段;表A中字段WHITE_LIST_ID为uuid随机唯一值)
###编写思路:
1.首先定义变量,在Declare下定义(表A,字段如下:)
(1)WHITE_LIST_ID:uuid,变量; >>uuid varchar2(40);
(2)BUSINESS_ID:表t_comm_member中的member_id字段,变量; >>由于该字段值从表B中批量取值,为数组类型,我们首先要先定义一个数组类型,再声明变量
>> /*自定义数组类型,‘varchar(40)’是数组内元素的类型,‘index by binary_integer’表示数组内索引 */
>> 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:医院id,常量 >>hospatal varchar2(40) := 'abcdefg123456';
(5)create_date:创建时间,默认当前时间,格式:yyyy-MM-dd hh24:mm:dd,变量 >>currentdate date := sysdate;
2.变量定义完成后,开始编写脚本
查询表B,并将结果赋值给数组(查询表t_comm_member中member_id的值并作为数组赋值给上述声明的m_array变量)
>>>select member_id bulk collect into m_array from t_comm_member where username like '16111%';
3.使用for循环
for i in 1 .. m_array.count loop
--select查询get_uuid函数值并赋值给上述声明的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;
到这里脚本完成,可批量插入数据。
上述实例中学习了:常量、变量、数组的定义方式,字符串、整数类型定义方式,从其他表中查询数据并作为数组赋值给变量,uuid的取值,for循环等。
网友评论