oracle隨機數 — dbms_random

guyuanli發表於2010-01-11

oracle隨機數 — dbms_random

ORACLE的PL/SQL提供了生成隨機數和隨機字串的多種方式,羅列如下:

1、小數( 0 ~ 1)

select dbms_random.value from dual

[@more@]2、指定範圍內的小數 ( 0 ~ 100 )
select dbms_random.value(0,100) from dual


3、指定範圍內的整數 ( 0 ~ 100 )

select trunc(dbms_random.value(0,100)) from dual

4、長度為20的隨機數字串

select substr(cast(dbms_random.value as varchar2(38)),3,20) from dual

5、正態分佈的隨機數

select dbms_random.normal from dual

6、隨機字串

select dbms_random.string(opt, length) from dual

opt可取值如下:
'u','U' : 大寫字母
'l','L' : 小寫字母
'a','A' : 大、小寫字母
'x','X' : 數字、大寫字母
'p','P' : 可列印字元

7、隨機日期

select to_date(2454084+TRUNC(DBMS_RANDOM.VALUE(0,365)),'J') from dual

透過下面的語句獲得指定日期的基數

select to_char(sysdate,'J') from dual

8、生成GUID

select sys_guid() from dual

--生成帶分隔符(-)的GUID的自定義函式
create or replace function my_guid
return varchar2
is
guid varchar(36);
temp varchar(32);
begin
temp:=sys_guid();
guid:= substr(temp,1,8) || '-'
||substr(temp,9,4) || '-'
||substr(temp,13,4)|| '-'
||substr(temp,17,4)|| '-'
||substr(temp,21,12);
return guid;
end;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7490392/viewspace-1030468/,如需轉載,請註明出處,否則將追究法律責任。

相關文章