Oracle²ð·Ö×Ö·û´®º¯Êý
--¶¨ÒåÀàÐÍ
CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2(4000);
--´´½¨º¯Êý
CREATE OR REPLACE FUNCTION f_stringsplit (p_str IN VARCHAR2, p_delimiter IN VARCHAR2)
RETURN ty_str_split PIPELINED
/*****
****×Ö·û´®²ð·Ö,Ï൱ÓÚjava.lang.StringÀàµÄsplit·½·¨
****×¢Òâ:ÐÂÔötypes:CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2 (100);
****´´½¨Õߣº
****ʱ¼ä£º
****ÕªÈ¡ÍøÂç×ÊÔ´
***/
IS
j INT := 0;
i INT := 1;
len INT := 0;
len1 INT := 0;
str VARCHAR2 (100);
BEGIN
len := LENGTH (p_str);
len1 := LENGTH (p_delimiter);
WHILE j < len
LOOP
j := INSTR (p_str, p_delimiter, i);
IF j = 0
THEN
j := len;
str := SUBSTR (p_str, i);
PIPE ROW (str);
IF i >= len
THEN
EXIT;
END IF;
ELSE
str := SUBSTR (p_str, i, j - i);
i := j + len1;
PIPE ROW (str);
END IF;
END LOOP;
RETURN;
END f_stringsplit;
--µ÷ÓÃ
select¡¡*¡¡from¡¡t
Ïà¹ØÎĵµ£º
¡¡ ¹ØÓÚOracleµÄÐÔÄܵ÷Õû£¬Ò»°ã°üÀ¨Á½¸ö·½Ã棬һÊÇÖ¸OracleÊý¾Ý¿â±¾ÉíµÄµ÷Õû£¬±ÈÈçSGA¡¢PGAµÄÓÅ»¯ÉèÖ㬶þÊÇÁ¬½ÓOracleµÄÓ¦ÓóÌÐòÒÔ¼°SQLÓï¾äµÄÓÅ»¯¡£×öºÃÕâÁ½¸ö·½ÃæµÄÓÅ»¯£¬¾Í¿ÉÒÔʹһÌ×ÍêÕûµÄOracleÓ¦ÓÃϵͳ´¦ÓÚÁ¼ºÃµÄÔËÐÐ״̬¡£
¡¡¡¡ ±¾ÎÄÖ÷ÒªÊǰÑһЩOracle TuningµÄÎÄÕÂ×÷ÁËÒ»¸ö¼òµ¥µÄ×ܽᣬ ......
ÔÚ×öÏîÄ¿¾³£Óöµ½·Ö¿ÆÊÒ¡¢ÈËÔ±½øÐлã×ܵÄÎÊÌ⣬ÔÚORACLEÖжԴËÀàÎÊÌâµÄ´¦ÀíÏ൱·½±ã£¡ÏÂÃæÒÔÏîÄ¿ÖÐÓöµ½µÄʵÀý½øÐÐ˵Ã÷£º
²éѯÓï¾äÈçÏ£º
select f_sys_getsectnamebysectid(a.sectionid) as sectname,
--a.sectionid,
f_sys_employin ......
ÔÚWeb¿ª·¢ÖУ¬´ÓÒ³Ãæ×¢ÈëµÄʱ¼äÒ»°ãΪStringÀàÐÍ£¬ÔõôȥºÍOracleÖеÄʱ¼ä½øÐбȽÏ
·½·¨£º
String Time£»
.......// Ò»¶Î´úÂë
¼ÙÉèTimeÎªÒ³Ãæ×¢ÈëStringÀàÐÍÊý¾Ý£¬Îª"2010-10-10 12:02:01"¡£
ÔÚдSQLÓ ......
ÍæOracleÒ²ÓÐ2ÄêµÄʱ¼äÁË£¬ ÁãÁãɢɢµÄÒ²ÕûÀíһЩ×ÊÁÏ¡£ ¶«Î÷Ò»¶àÁË£¬¾ÍÀí²»Çå³þ¡£ ËùÒÔ½áºÏÕÅÏþÃ÷µÄ¡¶´ó»°Oracle RAC¡·µÄһЩÄÚÈÝ£¬ºÍ×Ô¼ºÕûÀíµÄһЩ±Ê¼Ç£¬¶ÔOracle µÄ±¸·ÝºÍ»Ö¸´×öÁËÒ»¸öϵͳµÄÕûÀí¡£ Ò²ÊÇ×Ô¼º¶Ô֪ʶµÄÒ»¸ö¹®¹Ì°É¡£
Ò»£® ×¼±¸ÖªÊ¶
ÏÈÀ´¿´Ò»Ð©×¼±¸ÖªÊ¶£¬Á˽â ......
Õý³£À´Ëµ£¬ÔÚÍê³ÉSelectÓï¾ä¡¢create indexµÈһЩʹÓÃTEMP±í¿Õ¼äµÄÅÅÐò²Ù×÷ºó£¬OracleÊÇ»á×Ô¶¯ÊͷŵôÁÙʱ¶ÎaµÄ¡£µ«ÓÐЩÓкîÎÒÃÇÔò»áÓöµ½ÁÙʱ¶ÎûÓб»ÊÍ·Å£¬TEMP±í¿Õ¼ä¼¸ºõÂúµÄ×´¿ö£¬ÉõÖÁÊÇÎÒÃÇÖØÆôÁËÊý¾Ý¿âÈÔûÓнâ¾öÎÊÌâ¡£Õâ¸öÎÊÌâÔÚÂÛ̳ÖÐÒ²³£±»ÍøÓÑÎʵ½£¬ÏÂÃæÎÒ×ܽáһϣ¬¸ø³ö¼¸ÖÖ´¦Àí·½·¨¡£
......