oracle插入随机数据

/************************************************************
** Table: SYS.T_PARTITION_RANGE
** Number of Records: 10000
************************************************************/

DECLARE
  t_seed NUMBER(20);
BEGIN
  -- Initialize Random Number Generator
  SELECT TO_NUMBER(TO_CHAR(SYSDATE, 'MMDDHH24MISS'))
    INTO t_seed
  FROM Dual;

  DBMS_RANDOM.INITIALIZE(t_seed);

  -- Generate Random Data
  FOR t_counter IN 1..10000 LOOP
    INSERT INTO "SYS"."T_PARTITION_RANGE" (
      "ID", "NAME"
    ) VALUES (
      DBMS_RANDOM.VALUE(0.00, 2147483647.00), DBMS_RANDOM.STRING('A', DBMS_RANDOM.VALUE(1, 50))
    );
  END LOOP;

  DBMS_RANDOM.TERMINATE;
END;
/

COMMIT;
/


大家比较常用的是使用DBMS_RANDOM.RANDOM来生成随机数,这里我们介绍一下使用DBMS_RANDOM包中的STRING函数来生成随机字符串的功能。

1.使用desc可以查看DBMS_RANDOM.STRING参数说明
sec@asd> desc DBMS_RANDOM
……省略……
FUNCTION STRING RETURNS VARCHAR2
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 OPT                            CHAR                    IN
 LEN                            NUMBER                  IN
……省略……

DBMS_RANDOM.STRING函数需要的两个参数是OPT和LEN。
OPT参数取值内容如下:
'u','U' - 大写字母
'l','L' - 小写字母
'a','A' - 大、小写字母
'x','X' - 数字、大写字母
'p','P' - 可打印字符

LEN参数指定生成字符串的长度。

2.分别演示一下生成随机字符串的例子
1)生成长度为10的由大写字母构成的字符串
sec@ora10g> col string for a15
sec@ora10g> select DBMS_RANDOM.STRING('u',10) string from dual;

STRING
---------------
DXOMOOCHAS

sec@ora10g> select DBMS_RANDOM.STRING('U',10) string from dual;

STRING
---------------
XTPMXMRLCS

2)生成长度为10的由小写字母构成的字符串
sec@ora10g> select DBMS_RANDOM.STRING('l',10) string from dual;

STRING
---------------
vrekvponue

sec@ora10g> select DBMS_RANDOM.STRING('L',10) string from dual;

STRING
---------------
rlfhmatweg

3)生成长度为10的由大写字符和小写字母共同构成的字符串
sec@ora10g> select DBMS_RANDOM.STRING('a',10) string from dual;

STRING
---------------
fWJvpnEerI

sec@ora10g> select DBMS_RANDOM.STRING('A',10) string from dual;

STRING
---------------
FgdvvzZGAS

4)生成长度为10的由数字和大写字母共同构成的字符串
sec@ora10g> select DBMS_RANDOM.STRING('x',10) string from dual;

STRING
---------------
RRQ80CSDC2

sec@ora10g> select DBMS_RANDOM.STRING('X',10) string from dual;

STRING
---------------
Q9V9MMF9ZO

5)生成长度为10的由数字和大写字母共同可打印字符构成的字符串
sec@ora10g> select DBMS_RANDOM.STRING('p',10) string from dual;

STRING
---------------
p/u}}7s`5v

sec@ora10g> select DBMS_RANDOM.STRING('P',10) string from dual;

STRING
---------------
i8(pF2FFC9

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

转载于:http://blog.itpub.net/16566331/viewspace-670114/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值