Oracle產生隨機數

2021-07-16 10:07:45 字數 1259 閱讀 9213

oracle的pl/sql提供了生成隨機數和隨機字串的多種方式,羅列如下:

1、小數( 0 ~ 1)

select dbms_random.value from dual

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

isguid 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;

oracle 產生隨機數

產生乙個任意大小的隨機數 select dbms random.random from dual 產生乙個100以內的隨機數 select abs mod dbms random.random,100 from dual 產生乙個100 1000之間的隨機數 select trunc 100 dbm...

oracle如何產生隨機數

oracle 如何產生乙個隨機數 dbms random 1 小數 0 1 select dbms random.value from dual 2 指定範圍內的小數 0 100 select dbms random.value 0,100 from dual 3 指定範圍內的整數 0 100 se...

oracle如何產生隨機數?

oracle 如何產生乙個隨機數 dbms random 1 小數 0 1 select dbms random.value from dual 2 指定範圍內的小數 0 100 select dbms random.value 0,100 from dual 3 指定範圍內的整數 0 100 se...