Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Oracle 10g DBMS_SCHEDULERµÄÖжȽâÎö

ÕâÆªÂÛ̳ÎÄÕ£¨ÈüµÏÍø¼¼ÊõÉçÇø£©Õë¶ÔDBMS_SCHEDULERµÄʹÓ÷½·¨½øÐÐÁËÏ꾡µÄ½éÉÜ£¬¸ü¶àÄÚÈÝÇë²Î¿¼ÏÂÎÄ£º



DBMS_SCHEDULERÊÇOracle 10GÖÐÐÂÔöµÄÒ»¸ö°ü£¬ÓëÀϰ汾µÄdbms_job°üÏà±È£¬dbms_schedulerÓкܶàÐÂÌØÐÔ£¬ÎÒ½«Í¨¹ýһϵÁеÄÎÄÕÂÀ´½éÉÜÒ»ÏÂÈçºÎʹÓÃÕâ¸ö°ü.



1. ´´½¨job


jobÊÇÊ²Ã´ÄØ? ¼òµ¥µÄ˵¾ÍÊǼƻ®(schedule)¼ÓÉÏÈÎÎñ˵Ã÷. ÁíÍ⻹ÓÐһЩ±ØÐëµÄ²ÎÊý.


ÕâÀïÌáµ½µÄ"ÈÎÎñ"¿ÉÒÔÊÇÊý¾Ý¿âÄÚ²¿µÄ´æ´¢¹ý³Ì,ÄäÃûµÄPL/SQL¿é,Ò²¿ÉÒÔÊDzÙ×÷ϵͳ¼¶±ðµÄ½Å±¾.




¿ÉÒÔÓÐÁ½ÖÖ·½Ê½À´¶¨Òå"¼Æ»®":

1) ʹÓÃDBMS_SCHDULER.CREATE_SCHEDULE ¶¨ÒåÒ»¸ö¼Æ»®;

2) µ÷ÓÃDBMS_SCHDULER.CREATE_JOB¹ý³ÌÖ±½ÓÖ¸¶¨ (ÏÂÃæ»áÏêϸ˵Ã÷)


ÔÚ´´½¨Ò»¸ö¼Æ»®Ê±£¬ÄãÖÁÉÙÐèÒªÖ¸¶¨ÏÂÃæµÄÊôÐÔ£¬ËüÃÇÊÇjobÔËÐÐËù±ØÐëµÄ:


¿ªÊ¼Ê±¼ä (start_time);



ÖØ¸´ÆµÂÊ (repeat_interval);


½áÊøÊ±¼ä (end_time)



ÁíÍ⣬¶ÔÓÚÒ»¸öjob¶øÑÔ£¬»¹ÓкܶàµÄ¸½¼Ó²ÎÊý:


job_class


job_priority

auto_drop

restartable
max_runs

max_failures

schedule_limit

logging_level



ÏÂÃæ£¬ÎÒÒÔÎÊ´ðµÄÐÎʽÀ´¾ßÌå½âÊÍ.

http://www.mscto.com


Q1:Ôõô´ÓÊý¾Ý¿âÖвéѯjobµÄÊôÐÔ ?


A1: ÓÐÁ½ÖÖ·½·¨:




1) ²éѯ(DBA|ALL|USER)_SCHEDULER_JOBS ÊÓͼ



(Ìáʾ: ¸ù¾ÝÓû§È¨Ï޵IJ»Í¬£¬Ñ¡ÔñÐԵIJéѯ DBA|ALL|USERÊÓͼ)




2) µ÷ÓÃDBMS_SCHEDULER°üÖеÄGET_ATTRIBUTE ¹ý³Ì Èí¼þ¿ª·¢Íø


Q2: ÔõôÉèÖÃÕâЩÊôÐÔÄØ?


A2: Ò²ÊÇÓÐÁ½ÖÖ·½·¨



1) ÔÚ´´½¨jobʱֱ½ÓÖ¸¶¨


2) µ÷ÓÃDBMS_SCHEDULER°üÖеÄSET_ATTRIBUTE ¹ý³Ì


Q3: "ÎÒÐèҪʲôȨÏÞ²ÅÄÜ´´½¨job" ?


Ëü¿ÉÒÔ´´½¨ÊôÖ÷ΪÈκÎÓû§(SYSÓû§³ýÍâ)µÄjob.


ȱʡÇé¿öÏÂ,job»á±»´´½¨ÔÚµ±Ç°µÄschemaÏ£¬²¢ÇÒÊÇûÓ줻îµÄ; Èç¹ûҪʹjobÒ»´´½¨

http://www.mscto.com


¾Í×Ô¶¯¼¤»î£¬ÐèÒªÏÔʽµÄÉèÖÃenabled ÊôÐÔΪtrue, À´¿´Ò»¸öÀý×Ó:

http://www.mscto.com



begin


dbms_scheduler.create_job


Ïà¹ØÎĵµ£º

¹ØÓÚOracle to_char()º¯ÊýÖеÄIW,WW ÖܱðÏÔʾ

1£©wwµÄË㷨ΪÿÄê1ÔÂ1ÈÕΪµÚÒ»ÖÜ¿ªÊ¼£¬date+6ΪÿһÖܽáβ
¡¡¡¡ÀýÈç20050101ΪµÚÒ»ÖܵĵÚÒ»Ì죬¶øµÚÒ»ÖܵÄ×îºóÒ»ÌìΪ20050101+6=20050107
¡¡¡¡¹«Ê½ ÿÖܵÚÒ»Ìì £ºdate + ÖÜ * 7 - 7
¡¡¡¡Ã¿ÖÜ×îºóÒ»Ì죺date + ÖÜ * 7 - 1
2£©iwµÄË㷨ΪÐÇÆÚÒ»ÖÁÐÇÆÚÈÕËãÒ»ÖÜ£¬ÇÒÿÄêµÄµÚÒ»¸öÐÇÆÚһΪµÚÒ»ÖÜ£¬
¡¡¡¡ ÀýÈç20050101Î ......

oracleÈÕÆÚº¯Êý¼¯½õ

Ò»¡¢ ³£ÓÃÈÕÆÚÊý¾Ý¸ñʽ
1.Y»òYY»òYYY ÄêµÄ×îºóһ룬Á½Î»»òÈýλ
SQL> Select to_char(sysdate,'Y') from dual;
TO_CHAR(SYSDATE,'Y')
--------------------
7
SQL> Select to_char(sysdate,'YY') from dual;
TO_CHAR(SYSDATE,'YY')
---------------------
07
SQL> Select to_char(sysdate,'YYY') from d ......

oracle´¥·¢Æ÷

´¥·¢Æ÷ÊÇÒ»ÖÖÌØÊâµÄ´æ´¢¹ý³Ì£¬ËüÔÚ²åÈ룬ɾ³ý»òÐÞ¸ÄÌØ¶¨±íÖеÄÊý¾Ýʱ´¥·¢Ö´ÐУ¬Ëü±ÈÊý¾Ý¿â±¾Éí±ê×¼µÄ¹¦ÄÜÓиü¾«Ï¸ºÍ¸ü¸´ÔÓµÄÊý¾Ý¿ØÖÆÄÜÁ¦¡£Êý¾Ý¿â´¥·¢Æ÷ÓÐÒÔϵÄ×÷Óãº
¡¡¡¡* °²È«ÐÔ¡£¿ÉÒÔ»ùÓÚÊý¾Ý¿âµÄֵʹÓû§¾ßÓвÙ×÷Êý¾Ý¿âµÄijÖÖȨÀû¡£
¡¡¡¡# ¿ÉÒÔ»ùÓÚʱ¼äÏÞÖÆÓû§µÄ²Ù×÷£¬ÀýÈç²»ÔÊÐíϰàºóºÍ½Ú¼ÙÈÕÐÞ¸ÄÊý¾Ý¿âÊý¾Ý¡£ ......

Ëæ»úÑ¡ÔñÐеÄSQLÓï¾ä? ORACLE SQLSERVER ECT.

MySQL:
SELECT column from table
ORDER BY RAND()
LIMIT 1
PostgreSQL:
SELECT column from table
ORDER BY RANDOM()
LIMIT 1
Microsoft SQL Server:
SELECT TOP 1 column from table
ORDER BY NEWID()
IBM DB2
SELECT column, RAND() as IDX
from table
ORDER BY IDX FETCH FIRST 1 ROWS ONLY
Thanks Ti ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ