ITPub博客

首页 > Linux操作系统 > Linux操作系统 > (转)Oracle的随机数、随机日期和时间、随机字符串及造数据匿名过程

(转)Oracle的随机数、随机日期和时间、随机字符串及造数据匿名过程

原创 Linux操作系统 作者:mahanso 时间:2011-02-15 14:47:46 0 删除 编辑
1. 随机数包 
SELECT DBMS_RANDOM.VALUE 
FROM DUAL. 

2. 在[0..100]范围内取随机数 
SELECT TRUNC (DBMS_RANDOM.VALUE (0, 100)) 
FROM DUAL. 

3. 大于字符‘A’的10个字符随机字符串 
SELECT DBMS_RANDOM.STRING (’A’, 10) 
FROM DUAL. 

4. 单个小写随机字符 
SELECT CHR (ROUND (DBMS_RANDOM.VALUE (97, 122))) 
FROM DUAL. 

5. 在过去10天内取随机日期 
SELECT TO_DATE (TRUNC (DBMS_RANDOM.VALUE (TO_NUMBER (TO_CHAR (SYSDATE - 10, 
’J’ 

), 
TO_NUMBER (TO_CHAR (SYSDATE, ’J’)) 

), 
’J’ 

FROM DUAL. 

6. 在过去30分钟内取随机时间 
SELECT (SYSDATE - 1 / 24 / 60 * 30)+DBMS_RANDOM.VALUE (1, 1800) / 3600 / 24 
FROM DUAL

---匿名过程
declare
     i number := 1;
     j number := 1;
     --count number := 1002275000; 
     v_pay_order_base_id number;
     v_notify_times varchar2(20);
     v_notify_type varchar2(20);
     time timestamp(6);
begin
     for i in 1..100000
     loop
 for j in 1..5000
   loop
   select TRUNC(DBMS_RANDOM.VALUE (0, 1000)) into v_pay_order_base_id from dual;
   select TRUNC(DBMS_RANDOM.VALUE (0, 9)) into v_notify_times from dual;
   select '0'||TRUNC(DBMS_RANDOM.VALUE (1, 4)) into v_notify_type from dual;
   SELECT (SYSDATE - 1)+DBMS_RANDOM.VALUE (1, 1800) / 3600 / 24 into time FROM DUAL;
   
    -- count := count +1;
       insert into ET_PAY_ORDER_NOTIFY_mahanso values(mahanso.nextval,v_pay_order_base_id,v_notify_times,v_notify_type,time,time,'http://mahanso');
     end loop;
   commit;
     end loop;
end;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12272958/viewspace-687260/,如需转载,请注明出处,否则将追究法律责任。

下一篇: rman备份脚本
请登录后发表评论 登录
全部评论

注册时间:2010-10-18

  • 博文量
    160
  • 访问量
    604440