CREATE OR REPLACE PROCEDURE insert_loop_data (1
p_tab in varchar2,2
p_total_rows IN NUMBER -- 定义插入次数参数3
) AS4
v_start_time NUMBER; -- 记录开始时间5
v_end_time NUMBER; -- 记录结束时间6
v_elapsed_sec NUMBER(10,3); -- 耗时(秒)7
v_uuid_20 VARCHAR2(20); -- 存储 RAW 格式的 UUID8
v_uuid_32 VARCHAR2(32); -- 存储带连字符的 UUID 字符串9
BEGIN10
v_start_time := DBMS_UTILITY.GET_TIME; -- 记录开始时间11
12
-- 循环插入数据13
FOR i IN 1..p_total_rows LOOP14
-- 生成 UUID15
v_uuid_20 := SUBSTR(RAWTOHEX(SYS_GUID()),1,20);16
v_uuid_32 := RAWTOHEX(SYS_GUID());17
if p_tab = 'BANK_ORDER_OLD' then18
-- 插入操作19
insert into BANK_ORDER_OLD (ID,ORDER_ID , AMT, ORDER_STATUS, CREATED_TS)20
values (v_uuid_32, v_uuid_20, 100,1, sysdate);21
elsif p_tab = 'BANK_ORDER_NEW' then22
insert into BANK_ORDER_NEW (ID,ORDER_ID , AMT, ORDER_STATUS, CREATED_TS)23
values (v_uuid_32, v_uuid_20, 100,1, sysdate);24
else25
DBMS_OUTPUT.PUT_LINE('参数异常:[' ||p_tab||','|| p_total_rows || '] 条数
据');
26
END IF ;27
COMMIT; -- 提交事务(可根据需求调整提交频率)28
END LOOP; 29
v_end_time := DBMS_UTILITY.GET_TIME;30
31
-- 计算耗时(单位:秒)32
v_elapsed_sec := (v_end_time - v_start_time) / 100;33
34
-- 输出耗时和统计信息35
DBMS_OUTPUT.PUT_LINE('===========================');36
DBMS_OUTPUT.PUT_LINE(p_tab||':总插入行数 : ' || p_total_rows);37
DBMS_OUTPUT.PUT_LINE(p_tab||':总耗时 : ' || v_elapsed_sec || ' 秒');38
文档被以下合辑收录
相关文档
评论