ORACLE ÖÐROWNUMÓ÷¨×ܽá!
¶ÔÓÚ Oracle µÄ rownum ÎÊÌ⣬ºÜ¶à×ÊÁ϶¼Ëµ²»Ö§³Ö>,>=,=,between...and£¬Ö»ÄÜÓÃÒÔÉÏ·ûºÅ(<¡¢<=¡¢!=)£¬²¢·Ç˵ÓÃ>,>=,=,between..and ʱ»áÌáʾSQLÓï·¨´íÎ󣬶øÊǾ³£ÊDz鲻³öÒ»Ìõ¼Ç¼À´£¬»¹»á³öÏÖËÆºõÊÇĪÃûÆäÃîµÄ½á¹ûÀ´£¬ÆäʵÄúÖ»ÒªÀí½âºÃÁËÕâ¸ö rownum αÁеÄÒâÒå¾Í²»Ó¦¸Ã¸Ðµ½¾ªÆæ£¬Í¬ÑùÊÇαÁУ¬rownum Óë rowid ¿ÉÓÐЩ²»Ò»Ñù£¬ÏÂÃæÒÔÀý×Ó˵Ã÷
¼ÙÉèij¸ö±í t1(c1) ÓÐ 20 Ìõ¼Ç¼
Èç¹ûÓà select rownum,c1 from t1 where rownum < 10, Ö»ÒªÊÇÓÃСÓںţ¬²é³öÀ´µÄ½á¹ûºÜÈÝÒ×µØÓëÒ»°ãÀí½âÔÚ¸ÅÄîÉÏÄÜ´ï³ÉÒ»Ö£¬Ó¦¸Ã²»»áÓÐÈκÎÒÉÎʵġ£
¿ÉÈç¹ûÓà select rownum,c1 from t1 where rownum > 10 (Èç¹ûдÏÂÕâÑùµÄ²éѯÓï¾ä£¬ÕâʱºòÔÚÄúµÄÍ·ÄÔÖÐÓ¦¸ÃÊÇÏëµÃµ½±íÖкóÃæ10Ìõ¼Ç¼)£¬Äã¾Í»á·¢ÏÖ£¬ÏÔʾ³öÀ´µÄ½á¹ûÒªÈÃÄúʧÍûÁË£¬Ò²ÐíÄú»¹»á»³ÒÉÊDz»ËɾÁËһЩ¼Ç¼£¬È»ºó²é¿´¼Ç¼Êý£¬ÈÔÈ»ÊÇ 20 Ìõ°¡£¿ÄÇÎÊÌâÊdzöÔÚÄÄÄØ£¿
ÏȺúÃÀí½â rownum µÄÒâÒå°É¡£ROWNUMÊÇÒ»¸öÐé¼ÙµÄÁÐ,Ëü½«±»·ÖÅäΪ 1£¬2£¬3£¬4£¬...N£¬N ÊÇÐеÄÊýÁ¿¡£¼´²éµ½½á¹û¼¯Ö®ºó,ÈκÎÅÅÐòºÍ¾ÛºÏ֮ǰ,¼ÓÉÏÈ¥µÄÒ»¸öÁÐ ( ......
1. Union Ö¸ÁîµÄÄ¿µÄÊǽ«Á½¸ö SQL Óï¾äµÄ½á¹ûºÏ²¢ÆðÀ´,¿ÉÒԲ鿴ÄãÐèÒª²éѯ½á¹û.
ÀýÈç:
SELECT Date from Store_Information
UNION
SELECT Date from Internet_Sales
×¢Òâ:
unionÓ÷¨ÖÐ,Á½¸öselectÓï¾äµÄ×Ö¶ÎÀàÐÍÆ¥Åä,¶øÇÒ×ֶθöÊýÒªÏàͬ
ÈçÉÏÃæµÄÀý×Ó,ÔÚʵ¼ÊµÄÈí¼þ¿ª·¢¹ý³Ì,»áÓöµ½¸ü¸´ÔÓµÄÇé¿ö,¾ßÌåÇë¿´ÏÂÃæµÄÀý×Ó
select '1' as type,FL_ID,FL_CODE,FL_CNAME,FLDA.FL_PARENTID from FLDA
WHERE ZT_ID=2006030002
union
select '2' as type,XM_ID,XM_CODE ,XM_CNAME ,FL_ID from XMDA
where exists (select * from (select FL_ID from FLDA WHERE ZT_ID=2006030002 ) a where XMDA.fl_id=a.fl_id)
order by type,FL_PARENTID ,FL_ID
Õâ¸ö¾ä×ÓµÄÒâ˼Êǽ«Á½¸ösqlÓï¾äunion²éѯ³öÀ´,²éѯµÄÌõ¼þ¾ÍÊÇ¿´XMDA±íÖеÄFL_IDÊÇ·ñºÍÖ÷±íFLDAÀïµÄFL_IDÖµÏàÆ¥Åä,(Ò²¾ÍÊÇ´æÔÚ).
UNIONÔÚ½øÐбíÁ´½Óºó»áɸѡµôÖØ¸´µÄ¼Ç¼£¬ËùÒÔÔÚ±íÁ´½Óºó»á¶ÔËù²úÉúµÄ½á¹û¼¯½øÐÐÅÅÐòÔËË㣬ɾ³ýÖØ¸´µÄ¼Ç¼ÔÙ·µ»Ø½á¹û¡£
2. ÔÚ²éѯÖлáÓöµ½ UNION ALL,ËüµÄÓ÷¨ºÍunionÒ»Ñù,Ö»²»¹ýunionº¬ÓÐdistinctµÄ¹¦ÄÜ,Ëü»á°ÑÁ½ÕűíÁËÖØ¸´µÄ¼Ç¼ȥµô,
&nb ......
CREATE OR REPLACE Procedure PRCGETV6(
inp_UserCD IN VARCHAR2,
inp_SEIHIN IN VARCHAR2,
inp_SOKOCD IN VARCHAR2,
inp_JITUZAI IN VARCHAR2,
inp_GYOSU IN VARCHAR2,
out_KOSHINYMD OUT VARCHAR2,
out_ERR OUT VARCHAR2
) Is
CONST_OPERATION_NAME CONSTANT VARCHAR2(30):= 'PRCGETV6'; --²Ù×÷識別×Ó
-- out_KOSHINYMD VARCHAR2(14);
-- out_ERR VARCHAR2(10);
varUSERCD VARCHAR2(10);
varSEIHIN VARCHAR2(11);
varSOKOCD VARCHAR2(1);
varKOSHINHI VARCHAR2(14);
numJITUZAI NUMBER;
numKEISANZAI NUMBER;
numGYOSU NUMBER;
numSEQ NUMBER;
CURSOR CUR1 IS
Select
KBN,
JUBI,
YOBI,
MENO,
MNYUKO,
DENPYONO,
MSYUKO,
EGYCD,
ZAISU,
KBN1,
KBN ......
SVRMGR> select * from dba_jobs;
³õʼ»¯Ïà¹Ø²ÎÊýjob_queue_processes
alter system set job_queue_processes=39 scope=spfile;//×î´óÖµ²»Äܳ¬¹ý1000 ;job_queue_interval = 10 //µ÷¶È×÷ҵˢÐÂÆµÂÊÃëΪµ¥Î»
DBA_JOBS describes all jobs in the database.
USER_JOBS describes all jobs owned by the current user
1 select job,what,to_char(last_date,'yyyy-mm-dd HH24:mi:ss'),to_char(next_date,'yyyy-mm-dd HH24:m),interval from dba_jobs where job in (325,295)
2 select job,what,last_date,next_date,interval from dba_jobs where job in (1,3);
²éѯjobµÄÇé¿ö¡£
show paramter background_dump_dest.
¿´alter.log ºÍtrace
SVRMGR> select * from dba_jobs;
³õʼ»¯Ïà¹Ø²ÎÊýjob_queue_processes
alter system set job_queue_processes=39 scope=spfile;//×î´óÖµ²»Äܳ¬¹ý1000
job_queue_interval = 10 //µ÷¶È×÷ҵˢÐÂÆµÂÊÃëΪµ¥Î»
DBA_JOBS describes all jobs in the database.
USER_JOBS describes all jobs owned by the current user
1 select job,what,to_char(last_date,'yyyy-mm-dd HH24:mi:ss'),to_char(next_date,'yyyy-mm-dd HH24 ......
DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
( job => X,
what => 'ETL_RUN_D_Date;',
next_date => to_date('2009-08-26 01:00:00','yyyy-mm-dd hh24:mi:ss'),
interval => 'trunc(sysdate)+1+1/24',
no_parse => FALSE
);
SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
COMMIT;
END;
/
ÒÔÉÏÊÇÃ÷È·Ö¸¶¨Ã¿ÌìµÄ1µãÖ´ÐдËjob,Èç¹ûÖ¸¶¨ÊÇÿÌìÖÐÎç12µãÖ´ÐÐintervalÐèÒªÖ¸¶¨Îª'trunc(sysdate)+1+12/24',Èç¹û½ö½öÖ¸¶¨intervalΪһÌì,ÕâÑùµ±ÄãÊÖ¹¤ÓÃdbms_job.run(job)È¥ÔËÐÐÒ»´Îʱ,jobÿÌìµÄÖ´ÐÐʱ¼äÊÇ»á¸Ä±äµÄ,Èç¹ûÄãÏëjobÿÌìÔڹ̶¨Ê±¼äÖ´ÐÐ,¿ÉÒԲο¼ÉÏÃæµÄÀý×Ó.
³õʼ»¯Ïà¹Ø²ÎÊýjob_queue_processes
alter system set job_queue_processes=39 scope=spfile;//×î´óÖµ²»Äܳ¬¹ý1000 ;job_queue_interval = 10 //µ÷¶È×÷ҵˢÐÂÆµÂÊÃëΪµ¥Î»
job_queue_process ±íʾoracleÄܹ»²¢·¢µÄjobµÄÊýÁ¿£¬¿ÉÒÔͨ¹ýÓï¾ä¡¡¡¡
show parameter job_queue_process;
À´²é¿´oracleÖÐjob_queue_processµÄÖµ¡£µ±job_queue_processֵΪ0ʱ±íʾȫ²¿Í£Ö¹oracleµÄjob£¬¿ÉÒÔͨ¹ýÓï¾ä
ALTER SYSTEM SET job_queue_processes = 10;
À´µ÷ÕûÆô¶¯oracleµÄjob¡£
......
1¡¢Òì³£µÄÓŵã
¡¡¡¡
¡¡¡¡Èç¹ûûÓÐÒì³££¬ÔÚ³ÌÐòÖУ¬Ó¦µ±¼ì²éÿ¸öÃüÁîµÄ³É¹¦»¹ÊÇʧ°Ü£¬Èç
¡¡¡¡BEGIN
¡¡¡¡SELECT ...
¡¡¡¡-- check for ’no data found’ error
¡¡¡¡SELECT ...
¡¡¡¡-- check for ’no data found’ error
¡¡¡¡SELECT ...
¡¡¡¡-- check for ’no data found’ error
¡¡¡¡ÕâÖÖʵÏֵķ½·¨È±µãÔÚÓÚ´íÎó´¦ÀíûÓÐÓëÕý³£´¦Àí·Ö¿ª£¬¿É¶ÁÐԲʹÓÃÒì³££¬¿ÉÒÔ·½±ã´¦Àí´íÎ󣬶øÇÒÒì³£´¦Àí³ÌÐòÓëÕý³£µÄÊÂÎñÂß¼·Ö¿ª£¬Ìá¸ßÁ˿ɶÁÐÔ£¬Èç
¡¡¡¡BEGIN
¡¡¡¡SELECT ...
¡¡¡¡SELECT ...
¡¡¡¡SELECT ...
¡¡¡¡...
¡¡¡¡EXCEPTION
¡¡¡¡WHEN NO_DATA_FOUND THEN -- catches all ’no data found’ errors
¡¡¡¡
¡¡¡¡2¡¢Òì³£µÄ·ÖÀà
¡¡¡¡
¡¡¡¡ÓÐÁ½ÖÖÀàÐ͵ÄÒì³££¬Ò»ÖÖΪÄÚ²¿Òì³££¬Ò»ÖÖΪÓû§×Ô¶¨ÒåÒì³££¬ÄÚ²¿Òì³£ÊÇÖ´ÐÐÆÚ¼ä·µ»Øµ½PL/SQL¿éµÄORACLE´íÎó»òÓÉPL/SQL´úÂëµÄij²Ù×÷ÒýÆðµÄ´íÎó£¬Èç³ýÊýΪÁã»òÄÚ´æÒç³öµÄÇé¿ö¡£Óû§×Ô¶¨ÒåÒì³£ÓÉ¿ª·¢ÕßÏÔʾ¶¨Ò壬ÔÚPL/SQL¿éÖд«µÝÐÅÏ¢ÒÔ¿ØÖƶÔÓÚÓ¦ÓõĴíÎó´¦Àí¡£
¡¡¡¡
¡¡¡¡Ã¿µ±PL/SQLÎ¥±³ÁËORACLEÔÔò»ò³¬Ô½ÁËϵͳÒÀÀµµÄÔÔò¾Í»áÒþʽµÄ²úÉúÄÚ²¿Òì³£¡£ÒòΪÿ¸öORACLE´íÎó¶¼ÓÐÒ»¸öºÅÂë² ......