OracleËæ»úº¯ÊýµÄÓ÷¨
ÈÝÒ×µÃ˵£¬¾¹ýdbms_random°üµ÷ÓÃËæ»úÊýµÄ²½Öè´óÌåÓÐ4ÖÖ£º
Ò»¡¢dbms_random.normal
Õâ¸öº¯Êý²»´ø²ÎÊý£¬»á»Øµ½normal distributionµÄÒ»¸önumberÃÅÀ֮࣬ËùÒÔ´óµÖËæ»úÊý»áÔÚ-Ò»µ½Ò»Æä¼ä¡£
¼òÂÔ²âÊÔÁËÒ»ÏÂ×Ó£¬·¢×÷100000´Î×î´óÄܵ½ÎåÉÏÏ£º
SQL> declare
¶þ i number:=Áã;
Èý j number:=Áã;
ËÄ begin
Îå for k in Ò» .. 100000 loop
Áù i:= dbms_random.normal;
Æß if i > j
°Ë then j:=i;
¾Å end if;
Ê® end loop;
11 dbms_output.put_line(j);
12 end;
13 /
5.15325081797418404136433867107468983182
PL/SQL procedure successfully completed
¶þ¡¢dbms_random.random
Õâ¸öҲûÓвÎÊý£¬»ØÀ´Ò»¸ö´Ó-power(¶þ,31)µ½power(¶þ,31)µÄÕûÊýÖµ
Èý¡¢dbms_random.value
Õâ¸öº¯Êý·Ö³ÉÁ½ÖÖ£¬Ò»ÖÖÊÇû²ÎÊý£¬ÔòÖ±½Ó»ØÀ´Áã-Ò»Æä¼äµÄ38λСÊý
SQL > column value format 9.99999999999999999999999999999999999999
SQL > select dbms_random.value from dual;
VALUE
-----------------------------------------
.58983014999643548701631750396301271752
µÚ¶þÖÖÊǼÓÉÏÁ½¸ö²ÎÊýa¡¢b£¬Ôò»ØÀ´ÖµÔÚa¡¢bÆä¼äµÄ38λСÊý
SQL > column value format 999.999999999999999999999999999999999999
SQL > select dbms_random.value(100,500) value from dual;
VALUE
-----------------------------------------
412.150194612502916808701157054098274240
×¢Ò⣺ÎÞÂÛÊÇǰ·½¼¸Î»£¬Ð¡ÊýµãÒÔºó¶¼ÊÇ38λ
ËÄ¡¢dbms_random.string
Õâ¸öº¯ÊýÎñÐ뺬ÓÐÁ½¸ö²ÎÊý£¬Ç°·½µÄ×Ö·ûÖ¸¶¨ÃÅÀ࣬ºóÍ·µÄÊýÖµÖ¸¶¨Î»Êý(×î´ó60)
²¿Àà˵Ã÷£º
'u','U' : upper case alpha characters only
'l','L' : lower case alpha characters only
'a','A' : alpha characters only (mixed case)
'x','X' : any alpha-numeric characters (upper)
'p','P' : any printable characters
SQL > column value format a30
SQL > select dbms_random.string('u',30) value from dual;
VALUE
VTQNLGISELPXEDBXKUZLXKBAJMUTIA
SQL > select dbms_random.string('l',30) value from dual;
VALUE
------------------------------
uqygsbquingfqdytpgjvdoblxeglgu
SQL > select dbms_random.string('a',30) value from dual;
 
Ïà¹ØÎĵµ£º
ËäȻѧϰJavaºÜ¾ÃÁË£¬×Ô¼ºÒ²Á¬½Ó¹ýһЩÊý¾Ý¿â£¬±ÈÈçmysqlÖ®ÀàµÄ£¬Èç½ñÄØ£¬Ò²Ñ§Ï°ÁËÒ»¶Îʱ¼äµÄOracle£¬È»¶øÄØ£¬½ñÌìÊÇÎÒµÚÒ»´ÎÁ¬½ÓOracle£¬ºÙºÙ£¬Ó¦¸Ã»¹²»ËãÌ«³Ù°É¡£
½ñÌìÄØ£¬Óе㱿׾£¬´ó¼ÒĪЦ£¡
ÎÒÕâÊÇÒ»¸ö²éѯÀý×Ó
Ê×ÏÈ£¬Ô ......
1.¾¡¿ÉÄܵØÊ¹Óð󶨱äÁ¿ ²»Óÿª¹ØCURSOR_SHARING=FORCE
Èç¹ûÄãÔ¸Ò⣬Õâ¸öÌØÐÔ»áʵÏÖÒ»¸ö×Ô¶¯°ó¶¨Æ÷£¨auto-binder£©¡£
Èç¹ûÓÐÒ»¸ö²éѯ±àдΪSELECT * from EMP WHERE EMPNO = 1234£¬×Ô¶¯°ó¶¨Æ÷»áÇÄÎÞÉùÏ¢µØ°ÑËü¸Äд³É
SELECT * from EMP WHERE EMPNO = :x¡£ÕâȷʵÄܶ¯Ì¬µØ´ó´ó¼õÉÙÓ²½âÎöÊý£¬²¢¼õÉÙÇ°ÃæÌÖÂÛµ ......
dualÊÇÒ»¸öÐéÄâ±í£¬ÓÃÀ´¹¹³ÉselectµÄÓï·¨¹æÔò£¬oracle±£Ö¤dualÀïÃæÓÀÔ¶Ö»ÓÐÒ»Ìõ¼Ç¼¡£ÎÒÃÇ¿ÉÒÔÓÃËüÀ´×öºÜ¶àÊÂÇ飬ÈçÏ£º
1¡¢²é¿´µ±Ç°Óû§£¬¿ÉÒÔÔÚ SQL PlusÖÐÖ´ÐÐÏÂÃæÓï¾ä select user from dual;
2¡¢ÓÃÀ´µ÷ÓÃϵͳº¯Êý
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;--»ñµÃµ±Ç°ÏµÍ³Ê±¼ ......
OracleÖк¯ÊýÒÔǰ½éÉܵÄ×Ö·û´®´¦Àí£¬ÈÕÆÚº¯Êý£¬Êýѧº¯Êý,ÒÔ¼°×ª»»º¯ÊýµÈµÈ£¬»¹ÓÐÒ»ÀຯÊýÊÇͨÓú¯Êý¡£Ö÷ÒªÓУºNVL,NVL2,NULLIF,COALESCE£¬Õ⼸¸öº¯ÊýÓÃÔÚ¸÷¸öÀàÐÍÉ϶¼¿ÉÒÔ¡£
ÏÂÃæ¼òµ¥½éÉÜһϼ¸¸öº¯ÊýµÄÓ÷¨¡£
ÔÚ½éÉÜÕâ¸ö֮ǰÄã±ØÐëÃ÷°×ʲôÊÇoracleÖеĿÕÖµnull
1.NVLº¯Êý
NVLº¯ÊýµÄ¸ñʽÈçÏ£ºNVL(expr1,expr2)
º¬ÒåÊ ......
°Ñ×Ô¼ºËѼ¯µÄ×ÊÁÏÌù³öÀ´£¬Ñ§Ï°¹¤×÷·½±ãÕ¼¡£
SQLÖеĵ¥¼Ç¼º¯Êý
1.ASCII
·µ»ØÓëÖ¸¶¨µÄ×Ö·û¶ÔÓ¦µÄÊ®½øÖÆÊý;
SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;
A A ZERO SPACE
--------- --------- --------- ---------
65 97 48 32
2.CHR
¸ø³öÕûÊý,·µ»Ø¶ÔÓ¦µÄ×Ö·û;
SQ ......