隨機函式DBMS_RANDOM.STRING

hurp_oracle發表於2016-05-06
本文介紹一下有關Oracle隨機字串的生成方法及具體應用一例。

  Oracle生成隨機字串的方法是透過dbms_random.string實現的。

1.dbms_random.string用法
Oracle官方文件參考連結:http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_random.htm#i996825

用法是DBMS_RANDOM.STRING(選項, 返回字串長度)

選項有如下幾種可供選擇:
1)'u', 'U' - returning string in uppercase alpha characters
2)'l', 'L' - returning string in lowercase alpha characters
3)'a', 'A' - returning string in mixed case alpha characters
4)'x', 'X' - returning string in uppercase alpha-numeric characters
5)'p', 'P' - returning string in any printable characters.
6)Otherwise the returning string is in uppercase alpha characters.

2.以隨機生成8位密碼這個簡單需求為例演示一下各個選項的用法
1)生成由大寫字母組成的8位密碼
sys@ora10g> select dbms_random.string('u',8) "u_8_password" from dual;

u_8_password
------------------------------------------------------------------
HXGBMNCF

sys@ora10g> select dbms_random.string('U',8) "U_8_password" from dual;

U_8_password
------------------------------------------------------------------
JEZLDJXK

2)生成由小寫字母組成的8位密碼
sys@ora10g> select dbms_random.string('l',8) "l_8_password" from dual;

l_8_password
------------------------------------------------------------------
ilxpvvmy

sys@ora10g> select dbms_random.string('L',8) "L_8_password" from dual;

L_8_password
------------------------------------------------------------------
pzvjvpji

3)生成由大小寫字母混合出現的8位密碼
sys@ora10g> select dbms_random.string('a',8) "a_8_password" from dual;

a_8_password
------------------------------------------------------------------
YfeaneZx

sys@ora10g> select dbms_random.string('A',8) "A_8_password" from dual;

A_8_password
------------------------------------------------------------------
IghqWAVu

4)生成由大寫字母和數字組成的8位密碼
sys@ora10g> select dbms_random.string('x',8) "x_8_password" from dual;

x_8_password
------------------------------------------------------------------
2VKQ4FSH

sys@ora10g> select dbms_random.string('X',8) "X_8_password" from dual;

X_8_password
------------------------------------------------------------------
MMYTPC40

5)生成由任何可列印字元組成的8位密碼
sys@ora10g> select dbms_random.string('p',8) "p_8_password" from dual;

p_8_password
------------------------------------------------------------------
G7`Rbe#V

sys@ora10g> select dbms_random.string('P',8) "P_8_password" from dual;

P_8_password
------------------------------------------------------------------
wPqHt*0.

6)當選項為其他字母的時候返回的內容仍將是大寫字母
選項以“8”為例,返回的8位隨機字串內容是由大寫字母組成的。
sys@ora10g> select dbms_random.string('8',8) "8_8_password" from dual;

8_8_password
------------------------------------------------------------------
PJGYPPLG

3.小結
  本文以具體例項形式演示了dbms_random.string的用法。有時候也可以混合使用。
sys@ora10g> select dbms_random.string('u',8)||dbms_random.string('l',8) "u_l_16_password" from dual;

u_l_16_password
------------------------------------------------------------------
EMVXOZLGixziwvny

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

相關文章