ºìÁªLinuxÃÅ»§
Linux°ïÖú

oracleÃæÊÔÌâ £¨Ð£©

·¢²¼Ê±¼ä:2009-04-24 18:56:34À´Ô´:ºìÁª×÷Õß:kevin_2009
1¡¢±í£ºtable1(FId,Fclass,Fscore),ÓÃ×î¸ßЧ×î¼òµ¥µÄSQLÁгö¸÷°à³É¼¨×î¸ßµÄÁÐ±í£¬ÏÔʾ°à¼¶£¬³É¼¨Á½¸ö×ֶΡ£

select fclass,max(fscore) from table1 group by fclass,fid

2¡¢ÓÐÒ»¸ö±ítable1ÓÐÁ½¸ö×Ö¶ÎFID£¬Fno£¬×Ö¶¼·Ç¿Õ£¬Ð´Ò»¸öSQLÓï¾äÁгö¸Ã±íÖÐÒ»¸öFID¶ÔÓ¦¶à¸ö²»Í¬µÄFnoµÄ¼Í¼¡£
ÀàÈ磺
101a1001
101a1001
102a1002
102a1003
103a1004
104a1005
104a1006
105a1007
105a1007
105a1007
½á¹û£º
102a1002
102a1003
104a1005
104a1006

select t2.* from table1 t1, table1 t2 where t1.fid = t2.fid and t1.fno <> t2.fno;

3¡¢ÓÐÔ±¹¤±íempinfo
(
Fempno varchar2(10) not null pk,
Fempname varchar2(20) not null,
Fage number not null,
Fsalary number not null
);
¼ÙÈçÊý¾ÝÁ¿ºÜ´óÔ¼1000ÍòÌõ£»Ð´Ò»¸öÄãÈÏΪ×î¸ßЧµÄSQL£¬ÓÃÒ»¸öSQL¼ÆËãÒÔÏÂËÄÖÖÈË£º
fsalary>9999 and fage > 35
fsalary>9999 and fage < 35
fsalary <9999 and fage > 35
fsalary <9999 and fage < 35
ÿÖÖÔ±¹¤µÄÊýÁ¿£»
select sum(case when fsalary > 9999 and fage > 35
then 1
else 0end) as "fsalary>9999_fage>35",
sum(case when fsalary > 9999 and fage < 35
then 1
else 0
end) as "fsalary>9999_fage<35",
sum(case when fsalary < 9999 and fage > 35
then 1
else 0
end) as "fsalary<9999_fage>35",
sum(case when fsalary < 9999 and fage < 35
then 1
else 0
end) as "fsalary<9999_fage<35"
from empinfo;
4¡¢±íA×Ö¶ÎÈçÏÂ
month person income
ÔÂ·Ý ÈËÔ± ÊÕÈë
ÒªÇóÓÃÒ»¸öSQLÓï¾ä£¨×¢ÒâÊÇÒ»¸ö£©µÄ´¦ËùÓÐÈË£¨²»Çø·ÖÈËÔ±£©Ã¿¸öÔ¼°ÉÏÔºÍÏÂÔµÄ×ÜÊÕÈë
ÒªÇóÁбíÊä³öΪ
ÔÂ·Ý µ±ÔÂÊÕÈë ÉÏÔÂÊÕÈë ÏÂÔÂÊÕÈë
MONTHS PERSON INCOME
---------- ---------- ----------200807 mantisXF 5000200806 mantisXF2 3500200806 mantisXF3 3000200805 mantisXF1 2000200805 mantisXF6 2200200804 mantisXF7 1800200803 8mantisXF 4000200802 9mantisXF 4200200802 10mantisXF 3300200801 11mantisXF 4600200809 11mantisXF 6800
11 rows selected
select months, max(incomes), max(prev_months), max(next_months)
from (select months,
incomes,
decode(lag(months) over(order by months),
to_char(add_months(to_date(months, 'yyyymm'), -1), 'yyyymm'), lag(incomes) over(order by months), 0) as prev_months, decode(lead(months) over(order by months), to_char(add_months(to_date(months, 'yyyymm'), 1), 'yyyymm'), lead(incomes) over(order by months), 0) as next_months from (select months, sum(income) as incomes from a group by months) aa) aaagroup by months;

MONTHS MAX(INCOMES) MAX(PREV_MONTHS) MAX(NEXT_MONTHS)---------- ------------ ---------------- ----------------200801 4600 0 7500200802 7500 4600 4000200803 4000 7500 1800200804 1800 4000 4200200805 4200 1800 6500200806 6500 4200 5000200807 5000 6500 0200809 6800 0 0

5£¬±íB
C1 c2
2005-01-01 1
2005-01-01 3
2005-01-02 5

ÒªÇóµÄ´¦Êý¾Ý
2005-01-01 4
2005-01-02 5
ºÏ¼Æ 9
ÊÔÓÃÒ»¸öSqlÓï¾äÍê³É¡£



select nvl(to_char(t02,'yyyy-mm-dd'),'ºÏ¼Æ'),sum(t01)from test
group by rollup(t02)

6£¬Êý¾Ý¿â1£¬2£¬3 ·¶Ê½µÄ¸ÅÄîÓëÀí½â¡£

7£¬¼òÊöoracleÐд¥·¢Æ÷µÄ±ä»¯±íÏÞÖƱíµÄ¸ÅÄîºÍʹÓÃÏÞÖÆ£¬Ðд¥·¢Æ÷ÀïÃæ¶ÔÕâÁ½¸ö±íÓÐʲôÏÞÖÆ¡£

8¡¢oracleÁÙʱ±íÓм¸ÖÖ¡£
ÁÙʱ±íºÍÆÕͨ±íµÄÖ÷ÒªÇø±ðÓÐÄÄЩ£¬Ê¹ÓÃÁÙʱ±íµÄÖ÷ÒªÔ­ÒòÊÇʲô£¿

9£¬ÔõôʵÏÖ£ºÊ¹Ò»¸ö»á»°ÀïÃæÖ´ÐеĶà¸ö¹ý³Ìº¯Êý»ò´¥·¢Æ÷ÀïÃ涼¿ÉÒÔ·ÃÎʵÄÈ«¾Ö±äÁ¿µÄЧ¹û£¬²¢ÇÒҪʵÏֻỰ¼ä¸ôÀ룿

10£¬aa£¬bb±í¶¼ÓÐ20¸ö×ֶΣ¬ÇҼǼÊýÁ¿¶¼ºÜ´ó£¬aa£¬bb±íµÄX×ֶΣ¨·Ç¿Õ£©ÉÏÓÐË÷Òý£¬
ÇëÓÃSQLÁгöaa±íÀïÃæ´æÔÚµÄXÔÚbb±í²»´æÔÚµÄXµÄÖµ£¬Çëд³öÈÏΪ×î¿ìµÄÓï¾ä£¬²¢½âÒëÔ­Òò¡£

11£¬¼òÊöSGAÖ÷Òª×é³É½á¹¹ºÍÓÃ;£¿

12ʲôÊÇ·ÖÇø±í£¿¼òÊö·¶Î§·ÖÇøºÍÁбí·ÖÇøµÄÇø±ð£¬·ÖÇø±íµÄÖ÷ÒªÓÅÊÆÓÐÄÄЩ£¿

13£¬±³¾°£ºÄ³Êý¾ÝÔËÐÐÔÚarchivelog£¬ÇÒÓÃrman×÷¹ýÈ«±¸·ÝºÍÊý¾Ý¿âµÄÀ䱸·Ý£¬
ÇÒËùÓеĹ鵵ÈÕÖ¾¶¼ÓУ¬ÏÖ¿ØÖÆÎļþÈ«²¿Ë𻵣¬ÆäËûÎļþÈ«²¿ÍêºÃ£¬ÇëÎʸÃÔõô»Ö¸´¸ÃÊý¾Ý¿â£¬ËµÒ»Á½ÖÖ·½·¨¡£

14£¬ÓÃrmanдһ¸ö±¸·ÝÓï¾ä£º±¸·Ý±í¿Õ¼äTSB£¬level Ϊ2µÄÔöÁ¿±¸·Ý¡£

15£¬Óиö±ía(x number(20),y number(20))ÓÃ×î¿ìËÙ¸ßЧµÄSQLÏò¸Ã±í²åÈë´Ó1¿ªÊ¼µÄÁ¬ÐøµÄ1000Íò¼Ç¼¡£


1¡¢±í£ºtable1(FId,Fclass,Fscore),ÓÃ×î¸ßЧ×î¼òµ¥µÄSQLÁгö¸÷°à³É¼¨×î¸ßµÄÁÐ±í£¬ÏÔʾ°à¼¶£¬³É¼¨Á½¸ö×ֶΡ£

2¡¢ÓÐÒ»¸ö±ítable1ÓÐÁ½¸ö×Ö¶ÎFID£¬Fno£¬×Ö¶¼·Ç¿Õ£¬Ð´Ò»¸öSQLÓï¾äÁгö¸Ã±íÖÐÒ»¸öFID¶ÔÓ¦¶à¸ö²»Í¬µÄFnoµÄ¼Í¼¡£
ÀàÈ磺
101 a1001
101 a1001
102 a1002
102 a1003
103 a1004
104 a1005
104 a1006
105 a1007
105 a1007
105 a1007
½á¹û£º
102 a1002
102 a1003
104 a1005
104 a1006

3¡¢ÓÐÔ±¹¤±íempinfo
(
Fempno varchar2(10) not null pk,
Fempname varchar2(20) not null,
Fage number not null,
Fsalary number not null
);
¼ÙÈçÊý¾ÝÁ¿ºÜ´óÔ¼1000ÍòÌõ£»Ð´Ò»¸öÄãÈÏΪ×î¸ßЧµÄSQL£¬ÓÃÒ»¸öSQL¼ÆËãÒÔÏÂËÄÖÖÈË£º
fsalary>9999 and fage > 35
fsalary>9999 and fage < 35
fsalary<9999 and fage > 35
fsalary<9999 and fage < 35
ÿÖÖÔ±¹¤µÄÊýÁ¿£»

4¡¢±íA×Ö¶ÎÈçÏÂ
month person income
ÔÂ·Ý ÈËÔ± ÊÕÈë
ÒªÇóÓÃÒ»¸öSQLÓï¾ä£¨×¢ÒâÊÇÒ»¸ö£©µÄ´¦ËùÓÐÈË£¨²»Çø·ÖÈËÔ±£©Ã¿¸öÔ¼°ÉÏÔºÍÏÂÔµÄ×ÜÊÕÈë
ÒªÇóÁбíÊä³öΪ
ÔÂ·Ý µ±ÔÂÊÕÈë ÉÏÔÂÊÕÈë ÏÂÔÂÊÕÈë


5£¬±íB
C1 c2
2005-01-01 1
2005-01-01 3
2005-01-02 5

ÒªÇóµÄ´¦Êý¾Ý
2005-01-01 4
2005-01-02 5
ºÏ¼Æ 9
ÊÔÓÃÒ»¸öSqlÓï¾äÍê³É¡£


6£¬Êý¾Ý¿â1£¬2£¬3 ·¶Ê½µÄ¸ÅÄîÓëÀí½â¡£

7£¬¼òÊöoracleÐд¥·¢Æ÷µÄ±ä»¯±íÏÞÖƱíµÄ¸ÅÄîºÍʹÓÃÏÞÖÆ£¬Ðд¥·¢Æ÷ÀïÃæ¶ÔÕâÁ½¸ö±íÓÐʲôÏÞÖÆ¡£

8¡¢oracleÁÙʱ±íÓм¸ÖÖ¡£
ÁÙʱ±íºÍÆÕͨ±íµÄÖ÷ÒªÇø±ðÓÐÄÄЩ£¬Ê¹ÓÃÁÙʱ±íµÄÖ÷ÒªÔ­ÒòÊÇʲô£¿

9£¬ÔõôʵÏÖ£ºÊ¹Ò»¸ö»á»°ÀïÃæÖ´ÐеĶà¸ö¹ý³Ìº¯Êý»ò´¥·¢Æ÷ÀïÃ涼¿ÉÒÔ·ÃÎʵÄÈ«¾Ö±äÁ¿µÄЧ¹û£¬²¢ÇÒҪʵÏֻỰ¼ä¸ôÀ룿

10£¬aa£¬bb±í¶¼ÓÐ20¸ö×ֶΣ¬ÇҼǼÊýÁ¿¶¼ºÜ´ó£¬aa£¬bb±íµÄX×ֶΣ¨·Ç¿Õ£©ÉÏÓÐË÷Òý£¬
ÇëÓÃSQLÁгöaa±íÀïÃæ´æÔÚµÄXÔÚbb±í²»´æÔÚµÄXµÄÖµ£¬Çëд³öÈÏΪ×î¿ìµÄÓï¾ä£¬²¢½âÒëÔ­Òò¡£

11£¬¼òÊöSGAÖ÷Òª×é³É½á¹¹ºÍÓÃ;£¿

12ʲôÊÇ·ÖÇø±í£¿¼òÊö·¶Î§·ÖÇøºÍÁбí·ÖÇøµÄÇø±ð£¬·ÖÇø±íµÄÖ÷ÒªÓÅÊÆÓÐÄÄЩ£¿

13£¬±³¾°£ºÄ³Êý¾ÝÔËÐÐÔÚarchivelog£¬ÇÒÓÃrman×÷¹ýÈ«±¸·ÝºÍÊý¾Ý¿âµÄÀ䱸·Ý£¬
ÇÒËùÓеĹ鵵ÈÕÖ¾¶¼ÓУ¬ÏÖ¿ØÖÆÎļþÈ«²¿Ë𻵣¬ÆäËûÎļþÈ«²¿ÍêºÃ£¬ÇëÎʸÃÔõô»Ö¸´¸ÃÊý¾Ý¿â£¬ËµÒ»Á½ÖÖ·½·¨¡£

14£¬ÓÃrmanдһ¸ö±¸·ÝÓï¾ä£º±¸·Ý±í¿Õ¼äTSB£¬level Ϊ2µÄÔöÁ¿±¸·Ý¡£

15£¬Óиö±ía(x number(20),y number(20))ÓÃ×î¿ìËÙ¸ßЧµÄSQLÏò¸Ã±í²åÈë´Ó1¿ªÊ¼µÄÁ¬ÐøµÄ1000Íò¼Ç¼¡£


´ð°¸£º
1¡¢select Fclass,max(Fscore) from table1 group by Fclass
2¡¢select * from table1 where FID in (select FID from table1 group by FID having (count(Distinct Fno))>=2)
3¡¢select sum(case when fsalary>9999 and fage>35 then 1 else 0 end),
sum(case when fsalary>9999 and fage<35 then 1 else 0 end),
sum(case when fsalary<9999 and fage>35 then 1 else 0 end),
sum(case when fsalary<9999 and fage<35 then 1 else 0 end) from empinfo
4¡¢
Select (Select Month From Table Where Month = To_Char(Sysdate, 'mm')) Ô·Ý,
(Select Sum(Income) From Table Where Month = To_Char(Sysdate, 'mm')) µ±ÔÂÊÕÈë,
(Select Sum(Income) From Table Where To_Number(Month) = To_Number(Extract(Month From Sysdate)) - 1) ÉÏÔÂÊÕÈë,
(Select Sum(Income) From Table Where To_Number(Month) = To_Number(Extract(Month From Sysdate)) + 1) ÏÂÔÂÊÕÈë
From Dual

5¡¢select nvl(c1,'ºÏ¼Æ'),sum(c2) from B group by rollup(c1)
6.
¹ØϵÊý¾Ý¿âÉè¼Æ֮ʱÊÇÒª×ñÊØÒ»¶¨µÄ¹æÔòµÄ¡£ÓÈÆäÊÇÊý¾Ý¿âÉè¼Æ·¶Ê½
¼òµ¥½éÉÜ1NF£¨µÚÒ»·¶Ê½£©£¬2NF£¨µÚ¶þ·¶Ê½£©£¬3NF£¨µÚÈý·¶Ê½£©£¬
µÚÒ»·¶Ê½£¨1NF£©£ºÔÚ¹ØϵģʽRÖеÄÿһ¸ö¾ßÌå¹ØϵrÖУ¬Èç¹ûÿ¸öÊôÐÔÖµ ¶¼ÊDz»¿ÉÔÙ·ÖµÄ×îСÊý¾Ýµ¥Î»£¬Ôò³ÆRÊǵÚÒ»·¶Ê½µÄ¹Øϵ¡£
Àý£ºÈçÖ°¹¤ºÅ£¬ÐÕÃû£¬µç»°ºÅÂë×é³ÉÒ»¸ö±í£¨Ò»¸öÈË¿ÉÄÜÓÐÒ»¸ö°ì¹«Êҵ绰 ºÍÒ»¸ö¼ÒÀïµç»°ºÅÂ룩 ¹æ·¶³ÉΪ1NFÓÐÈýÖÖ·½·¨£º
¡¡¡¡Ò»ÊÇÖظ´´æ´¢Ö°¹¤ºÅºÍÐÕÃû¡£ÕâÑù£¬¹Ø¼ü×ÖÖ»ÄÜÊǵ绰ºÅÂë¡£
¡¡¡¡¶þÊÇÖ°¹¤ºÅΪ¹Ø¼ü×Ö£¬µç»°ºÅÂë·ÖΪµ¥Î»µç»°ºÍסլµç»°Á½¸öÊôÐÔ
¡¡¡¡ÈýÊÇÖ°¹¤ºÅΪ¹Ø¼ü×Ö£¬µ«Ç¿ÖÆÿÌõ¼Ç¼ֻÄÜÓÐÒ»¸öµç»°ºÅÂë¡£
¡¡¡¡ÒÔÉÏÈý¸ö·½·¨£¬µÚÒ»ÖÖ·½·¨×î²»¿ÉÈ¡£¬°´Êµ¼ÊÇé¿öÑ¡È¡ºóÁ½ÖÖÇé¿ö¡£
¡¡µÚ¶þ·¶Ê½£¨2NF£©£ºÈç¹û¹ØϵģʽR£¨U£¬F£©ÖеÄËùÓзÇÖ÷ÊôÐÔ¶¼ÍêÈ«ÒÀÀµÓÚÈÎÒâÒ»¸öºòÑ¡¹Ø¼ü×Ö£¬Ôò³Æ¹ØϵR ÊÇÊôÓÚµÚ¶þ·¶Ê½µÄ¡£
¡¡¡¡Àý£ºÑ¡¿Î¹Øϵ SCI£¨SNO£¬CNO£¬GRADE£¬CREDIT£©ÆäÖÐSNOΪѧºÅ£¬ CNOΪ¿Î³ÌºÅ£¬GRADEGE Ϊ³É¼¨£¬CREDIT Ϊѧ·Ö¡£ ÓÉÒÔÉÏ
Ìõ¼þ£¬¹Ø¼ü×ÖΪ×éºÏ¹Ø¼ü×Ö£¨SNO£¬CNO£©
¡¡¡¡ÔÚÓ¦ÓÃÖÐʹÓÃÒÔÉϹØϵģʽÓÐÒÔÏÂÎÊÌ⣺
¡¡¡¡a.Êý¾ÝÈßÓ࣬¼ÙÉèͬһÃÅ¿ÎÓÉ40¸öѧÉúÑ¡ÐÞ£¬Ñ§·Ö¾Í Öظ´40´Î¡£
¡¡¡¡b.¸üÐÂÒì³££¬Èôµ÷ÕûÁËij¿Î³ÌµÄѧ·Ö£¬ÏàÓ¦µÄÔª×éCREDITÖµ¶¼Òª¸üУ¬ÓпÉÄÜ»á³öÏÖͬһÃÅ¿Îѧ·Ö²»Í¬¡£
¡¡¡¡c.²åÈëÒì³££¬Èç¼Æ»®¿ªÐ¿Σ¬ÓÉÓÚûÈËÑ¡ÐÞ£¬Ã»ÓÐѧºÅ¹Ø¼ü×Ö£¬Ö»ÄܵÈÓÐÈËÑ¡ÐÞ²ÅÄܰѿγ̺Íѧ·Ö´æÈë¡£
¡¡¡¡d.ɾ³ýÒì³££¬ÈôѧÉúÒѾ­½áÒµ£¬´Óµ±Ç°Êý¾Ý¿âɾ³ýÑ¡Ð޼Ǽ¡£Ä³Ð©ÃſγÌÐÂÉúÉÐδѡÐÞ£¬Ôò´ËÃſγ̼°Ñ§·Ö¼Ç¼ÎÞ·¨±£´æ¡£
¡¡¡¡Ô­Òò£º·Ç¹Ø¼ü×ÖÊôÐÔCREDIT½öº¯ÊýÒÀÀµÓÚCNO£¬Ò²¾ÍÊÇCREDIT²¿·ÖÒÀÀµ×éºÏ¹Ø¼ü×Ö£¨SNO£¬CNO£©¶ø²»ÊÇÍêÈ«ÒÀÀµ¡£
¡¡¡¡½â¾ö·½·¨£º·Ö³ÉÁ½¸ö¹Øϵģʽ SC1£¨SNO£¬CNO£¬GRADE£©£¬C2£¨CNO£¬CREDIT£©¡£Ð¹Øϵ°üÀ¨Á½¸ö¹Øϵģʽ£¬ËüÃÇÖ®¼äͨ¹ýSCNÖÐ
µÄÍâ¹Ø¼ü×ÖCNOÏàÁªÏµ£¬ÐèҪʱÔÙ½øÐÐ×ÔÈ»Áª½Ó£¬»Ö¸´ÁËÔ­À´µÄ¹Øϵ
¡¡µÚÈý·¶Ê½£¨3NF£©£ºÈç¹û¹ØϵģʽR£¨U£¬F£©ÖеÄËùÓзÇÖ÷ÊôÐÔ¶ÔÈκκòÑ¡¹Ø¼ü×Ö¶¼²»´æÔÚ´«µÝÐÅÀµ£¬Ôò³Æ¹ØϵRÊÇÊôÓÚµÚÈý·¶Ê½µÄ¡£
¡¡¡¡Àý£ºÈçS1£¨SNO£¬SNAME£¬DNO£¬DNAME£¬LOCATION£© ¸÷ÊôÐÔ·Ö±ð´ú±íѧºÅ£¬
¡¡¡¡ÐÕÃû£¬ËùÔÚϵ£¬ÏµÃû³Æ£¬ÏµµØÖ·¡£
¡¡¡¡¹Ø¼ü×ÖSNO¾ö¶¨¸÷¸öÊôÐÔ¡£ÓÉÓÚÊǵ¥¸ö¹Ø¼ü×Ö£¬Ã»Óв¿·ÖÒÀÀµµÄÎÊÌ⣬¿Ï¶¨ÊÇ2NF¡£µ«Õâ¹Øϵ¿Ï¶¨ÓдóÁ¿µÄÈßÓ࣬ÓйØѧÉúËùÔڵļ¸¸ö
ÊôÐÔDNO£¬DNAME£¬LOCATION½«Öظ´´æ´¢£¬²åÈ룬ɾ³ýºÍÐÞ¸ÄʱҲ½«²úÉúÀàËÆÒÔÉÏÀýµÄÇé¿ö¡£
¡¡¡¡Ô­Òò£º¹ØϵÖдæÔÚ´«µÝÒÀÀµÔì³ÉµÄ¡£¼´SNO -> DNO¡£ ¶øDNO -> SNOÈ´²»´æÔÚ£¬DNO -> LOCATION, Òò´Ë¹Ø¼üÁÉ SNO ¶Ô LOCATIO
N º¯Êý¾ö¶¨ÊÇͨ¹ý´«µÝÒÀÀµ SNO -> LOCATION ʵÏֵġ£Ò²¾ÍÊÇ˵£¬SNO²»Ö±½Ó¾ö¶¨·ÇÖ÷ÊôÐÔLOCATION¡£
¡¡¡¡½â¾öÄ¿µØ£ºÃ¿¸ö¹ØϵģʽÖв»ÄÜÁôÓд«µÝÒÀÀµ¡£
¡¡¡¡½â¾ö·½·¨£º·ÖΪÁ½¸ö¹Øϵ S£¨SNO£¬SNAME£¬DNO£©£¬D£¨DNO£¬DNAME£¬LOCATION£©
¡¡¡¡×¢Ò⣺¹ØϵSÖв»ÄÜûÓÐÍâ¹Ø¼ü×ÖDNO¡£·ñÔòÁ½¸ö¹Øϵ֮¼äʧȥÁªÏµ¡£

7.
±ä»¯±ímutating table
±»DMLÓï¾äÕýÔÚÐ޸ĵıí
ÐèÒª×÷ΪDELETE CASCADE²Î¿¼ÍêÕûÐÔÏÞÖƵĽá¹û½øÐиüеıíÒ²ÊDZ仯µÄ

ÏÞÖÆ:¶ÔÓÚSession±¾Éí£¬²»ÄܶÁÈ¡ÕýÔڱ仯µÄ±í

ÏÞÖƱíconstraining table
ÐèÒª¶Ô²Î¿¼ÍêÕûÐÔÏÞÖÆÖ´ÐжÁ²Ù×÷µÄ±í

ÏÞÖÆ:Èç¹ûÏÞÖÆÁÐÕýÔÚ±»¸Ä±ä£¬ÄÇô¶ÁÈ¡»òÐ޸Ļᴥ·¢´íÎ󣬵«ÊÇÐÞ¸ÄÆäËüÁÐÊÇÔÊÐíµÄ¡£

8.
ÔÚOracleÖУ¬¿ÉÒÔ´´½¨ÒÔÏÂÁ½ÖÖÁÙʱ±í£º
a¡£»á»°ÌØÓеÄÁÙʱ±í
CREATE GLOBAL TEMPORARY ( )
ON COMMIT PRESERVE ROWS£»

b¡£ÊÂÎñÌØÓеÄÁÙʱ±í
CREATE GLOBAL TEMPORARY ( )
ON COMMIT DELETE ROWS£»
CREATE GLOBAL TEMPORARY TABLE MyTempTable
Ëù½¨µÄÁÙʱ±íËäÈ»ÊÇ´æÔڵģ¬µ«ÊÇÄãÊÔÒ»ÏÂinsert Ò»Ìõ¼Ç¼ȻºóÓñðµÄÁ¬½ÓµÇÉÏÈ¥select£¬¼Ç¼Êǿյģ¬Ã÷°×ÁË°É¡£
ÏÂÃæÁ½¾ä»°ÔÙÌùһϣº
--ON COMMIT DELETE ROWS ˵Ã÷ÁÙʱ±íÊÇÊÂÎñÖ¸¶¨£¬Ã¿´ÎÌá½»ºóORACLE½«½Ø¶Ï±í£¨É¾³ýÈ«²¿ÐУ©
--ON COMMIT PRESERVE ROWS ˵Ã÷ÁÙʱ±íÊǻỰָ¶¨£¬µ±ÖжϻỰʱORACLE½«½Ø¶Ï±í¡£

9.--¸öÈËÀí½â¾ÍÊǽ¨Á¢Ò»¸ö°ü,½«³£Á¿»òËùνµÄÈ«¾Ö±äÁ¿ÓðüÖеĺ¯Êý·µ»Ø³öÀ´¾Í¿ÉÒÔÁË,Õª³­Ò»¶ÌÍøÉϵĽâ¾ö·½·¨
OracleÊý¾Ý¿â³ÌÐò°üÖеıäÁ¿£¬ÔÚ±¾³ÌÐò°üÖпÉÒÔÖ±½ÓÒýÓ㬵«ÊÇÔÚ³ÌÐò°üÖ®Í⣬Ôò²»¿ÉÒÔÖ±½ÓÒýÓ᣶ԳÌÐò°ü±äÁ¿µÄ´æÈ¡£¬¿ÉÒÔΪÿ¸ö±äÁ¿ÅäÌ×ÏàÓ¦µÄ´æ´¢¹ý³Ì<ÓÃÓÚ´æ´¢Êý¾Ý>ºÍº¯Êý<ÓÃÓÚ¶ÁÈ¡Êý¾Ý>À´ÊµÏÖ¡£
¡¡¡¡
¡¡¡¡3.2 ʵÀý
¡¡¡¡--¶¨Òå³ÌÐò°ü
¡¡¡¡create or replace package PKG_System_Constant is
¡¡¡¡
¡¡¡¡¡¡ C_SystemTitle nVarChar2(100):='²âÊÔÈ«¾Ö³ÌÐò±äÁ¿';¡¡--¶¨Òå³£Êý
¡¡¡¡¡¡ --»ñÈ¡³£Êý<ϵͳ±êÌâ>
¡¡¡¡¡¡ Function FN_GetSystemTitle
¡¡¡¡¡¡¡¡¡¡Return nVarChar2;
¡¡¡¡
¡¡¡¡¡¡ G_CurrentDate Date:=SysDate; --¶¨ÒåÈ«¾Ö±äÁ¿
¡¡¡¡¡¡ --»ñÈ¡È«¾Ö±äÁ¿<µ±Ç°ÈÕÆÚ>
¡¡¡¡¡¡ Function FN_GetCurrentDate
¡¡¡¡¡¡¡¡¡¡Return Date;
¡¡¡¡¡¡ --ÉèÖÃÈ«¾Ö±äÁ¿<µ±Ç°ÈÕÆÚ>
¡¡¡¡¡¡ Procedure SP_SetCurrentDate
¡¡¡¡¡¡¡¡¡¡(P_CurrentDate In Date);
¡¡¡¡End PKG_System_Constant;
¡¡¡¡/
¡¡¡¡create or replace package body PKG_System_Constant is
¡¡¡¡¡¡ --»ñÈ¡³£Êý<ϵͳ±êÌâ>
¡¡¡¡¡¡ Function FN_GetSystemTitle
¡¡¡¡¡¡¡¡¡¡Return nVarChar2
¡¡¡¡¡¡¡¡¡¡Is
¡¡¡¡¡¡¡¡¡¡Begin
¡¡¡¡¡¡¡¡¡¡¡¡ Return C_SystemTitle;
¡¡¡¡¡¡¡¡¡¡End FN_GetSystemTitle;
¡¡¡¡
¡¡¡¡¡¡ --»ñÈ¡È«¾Ö±äÁ¿<µ±Ç°ÈÕÆÚ>
¡¡¡¡¡¡ Function FN_GetCurrentDate
¡¡¡¡¡¡¡¡¡¡Return Date
¡¡¡¡¡¡¡¡¡¡Is
¡¡¡¡¡¡¡¡¡¡Begin
¡¡¡¡¡¡¡¡¡¡¡¡ Return G_CurrentDate;
¡¡¡¡¡¡¡¡¡¡End FN_GetCurrentDate;
¡¡¡¡¡¡ --ÉèÖÃÈ«¾Ö±äÁ¿<µ±Ç°ÈÕÆÚ>
¡¡¡¡¡¡ Procedure SP_SetCurrentDate
¡¡¡¡¡¡¡¡¡¡(P_CurrentDate In Date)
¡¡¡¡¡¡¡¡¡¡Is
¡¡¡¡¡¡¡¡¡¡Begin
¡¡¡¡¡¡¡¡¡¡¡¡ G_CurrentDate:=P_CurrentDate;
¡¡¡¡¡¡¡¡¡¡End SP_SetCurrentDate;
¡¡¡¡End PKG_System_Constant;
¡¡¡¡/
¡¡¡¡¡¡¡¡
¡¡¡¡3.3 ²âÊÔ
¡¡¡¡--²âÊÔ¶ÁÈ¡³£Êý
¡¡¡¡Select PKG_System_Constant.FN_GetSystemTitle From Dual;¡¡¡¡¡¡
¡¡¡¡--²âÊÔÉèÖÃÈ«¾Ö±äÁ¿
¡¡¡¡Declare¡¡
¡¡¡¡Begin
¡¡¡¡¡¡ PKG_System_Constant.SP_SetCurrentDate(To_Date('2001.01.01','yyyy.mm.dd'));
¡¡¡¡End;
¡¡¡¡/
¡¡¡¡--²âÊÔ¶ÁÈ¡È«¾Ö±äÁ¿
¡¡¡¡Select PKG_System_Constant.FN_GetCurrentDate From Dual;

10.
select aa.x from aa
where not exists (select 'x' from bb where aa.x = bb.x) ;
ÒÔÉÏÓï¾äͬʱʹÓõ½ÁËaaÖÐxµÄË÷ÒýºÍµÄbbÖÐxµÄË÷Òý

11
SGAÊÇOracleΪһ¸öʵÀý·ÖÅäµÄÒ»×é¹²ÏíÄڴ滺³åÇø£¬Ëü°üº¬¸ÃʵÀýµÄÊý¾ÝºÍ¿ØÖÆÐÅÏ¢¡£SGAÔÚʵÀýÆô¶¯Ê±±»×Ô¶¯·ÖÅ䣬µ±ÊµÀý¹Ø±Õʱ±»Êջء£Êý¾Ý¿âµÄËùÓÐÊý¾Ý²Ù×÷¶¼ÒªÍ¨¹ýSGAÀ´½øÐС£
SGAÖÐÄÚ´æ¸ù¾Ý´æ·ÅÐÅÏ¢µÄ²»Í¬£¬¿ÉÒÔ·ÖΪÈçϼ¸¸öÇøÓò£º
a.Buffer Cache£º´æ·ÅÊý¾Ý¿âÖÐÊý¾Ý¿â¿éµÄ¿½±´¡£ËüÊÇÓÉÒ»×黺³å¿éËù×é³É£¬ÕâЩ»º³å¿éΪËùÓÐÓë¸ÃʵÀýÏàÁ´½ÓµÄÓû§½ø³ÌËù¹²Ïí¡£»º³å¿éµÄÊýÄ¿Óɳõʼ»¯²ÎÊýDB_BLOCK_BUFFERSÈ·¶¨£¬»º³å¿éµÄ´óСÓɳõʼ»¯²ÎÊýDB_BLOCK_SIZEÈ·¶¨¡£´óµÄÊý¾Ý¿é¿ÉÌá¸ß²éѯËٶȡ£ËüÓÉDBWR²Ù×÷¡£
b. ÈÕÖ¾»º³åÇøRedo Log Buffer£º´æ·ÅÊý¾Ý²Ù×÷µÄ¸ü¸ÄÐÅÏ¢¡£ËüÃÇÒÔÈÕÖ¾Ïredo entry£©µÄÐÎʽ´æ·ÅÔÚÈÕÖ¾»º³åÇøÖС£µ±ÐèÒª½øÐÐÊý¾Ý¿â»Ö¸´Ê±£¬ÈÕÖ¾ÏîÓÃÓÚÖع¹»ò»Ø¹ö¶ÔÊý¾Ý¿âËù×öµÄ±ä¸ü¡£ÈÕÖ¾»º³åÇøµÄ´óСÓɳõʼ»¯²ÎÊýLOG_BUFFERÈ·¶¨¡£´óµÄÈÕÖ¾»º³åÇø¿É¼õÉÙÈÕÖ¾ÎļþI/OµÄ´ÎÊý¡£ºǫ́½ø³ÌLGWR½«ÈÕÖ¾»º³åÇøÖеÄÐÅϢдÈë´ÅÅ̵ÄÈÕÖ¾ÎļþÖУ¬¿ÉÆô¶¯ARCHºǫ́½ø³Ì½øÐÐÈÕÖ¾ÐÅÏ¢¹éµµ¡£
c. ¹²Ïí³ØShared Pool£º°üº¬ÓÃÀ´´¦ÀíµÄSQLÓï¾äÐÅÏ¢¡£Ëü°üº¬¹²ÏíSQLÇøºÍÊý¾Ý×Öµä´æ´¢Çø¡£¹²ÏíSQLÇø°üº¬Ö´ÐÐÌض¨µÄSQLÓï¾äËùÓõÄÐÅÏ¢¡£Êý¾Ý×ÖµäÇøÓÃÓÚ´æ·ÅÊý¾Ý×ֵ䣬ËüΪËùÓÐÓû§½ø³ÌËù¹²Ïí¡£

12.
ʹÓ÷ÖÇø·½Ê½½¨Á¢µÄ±í½Ð·ÖÇø±í

·¶Î§·ÖÇø
ÿ¸ö·ÖÇø¶¼ÓÉÒ»¸ö·ÖÇø¼üÖµ·¶Î§Ö¸¶¨£¨¶ÔÓÚÒ»¸öÒÔÈÕÆÚÁÐ×÷Ϊ·ÖÇø¼üµÄ±í£¬¡°2005 Äê 1 Ô¡±·ÖÇø°üº¬·ÖÇø¼üֵΪ´Ó¡°2005 Äê 1 Ô 1 ÈÕ¡±
µ½¡°2005 Äê 1 Ô 31 ÈÕ¡±µÄÐУ©¡£

Áбí·ÖÇø
ÿ¸ö·ÖÇø¶¼ÓÉÒ»¸ö·ÖÇø¼üÖµÁбíÖ¸¶¨£¨¶ÔÓÚÒ»¸öµØÇøÁÐ×÷Ϊ·ÖÇø¼üµÄ±í£¬¡°±±ÃÀ¡±·ÖÇø¿ÉÄÜ°üº¬Öµ¡°¼ÓÄô󡱡°ÃÀ¹ú¡±ºÍ¡°Ä«Î÷¸ç¡±£©¡£

·ÖÇø¹¦ÄÜͨ¹ý¸ÄÉƿɹÜÀíÐÔ¡¢ÐÔÄܺͿÉÓÃÐÔ£¬´Ó¶øΪ¸÷ʽӦÓóÌÐò´øÀ´Á˼«´óµÄºÃ´¦¡£Í¨³££¬·ÖÇø¿ÉÒÔʹijЩ²éѯÒÔ¼°Î¬»¤²Ù×÷µÄÐÔÄÜ´ó´óÌá¸ß¡£´ËÍâ,·ÖÇø»¹¿ÉÒÔ¼«´ó¼ò»¯³£¼ûµÄ¹ÜÀíÈÎÎñ¡£Í¨¹ý·ÖÇø,Êý¾Ý¿âÉè¼ÆÈËÔ±ºÍ¹ÜÀíÔ±Äܹ»½â¾öÇ°ÑØÓ¦ÓóÌÐò´øÀ´µÄһЩÄÑÌâ¡£·ÖÇøÊǹ¹½¨Ç§Õ××Ö½ÚÊý¾Ýϵͳ»ò³¬¸ß¿ÉÓÃÐÔϵͳµÄ¹Ø¼ü¹¤¾ß¡£


13
»Ø¸´µÄ·½·¨:
Ò».ʹÓÃÀ䱸·Ý,Ö±½Ó½«À䱸·ÝµÄÎļþÈ«²¿COPYµ½Ô­ÏȵÄĿ¼ÏÂ,ÔÚ´ÓÐÂÆô¶¯Êý¾Ý¿â¾Í¿ÉÒÔ
¶þ.ʹÓù鵵ÈÕÖ¾,
1.Æô¶¯Êý¾Ý¿âNOMOUNT
2.´´½¨¿ØÖÆÎļþ,¿ØÖÆÎļþÖ¸¶¨Êý¾ÝÎļþºÍÖØ×öÈÕÖ¾ÎļþµÄλÖÃ.
3.ʹÓÃRECOVER DATABASE using backup controlfile until cancel ÃüÁî»Ø¸´Êý¾Ý¿â,Õâʱ¿ÉÒÔʹÓù鵵ÈÕÖ¾
4.ALETER DATABASE OPEN RESETLOGS;
5.ÖØб¸·ÝÊý¾Ý¿âºÍ¿ØÖÆÎļþ

14µÄ»°²Î¿¼RMANµÄʹÓÃÊÖ²á
15ÂÔ
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 9 ÌõÆÀÂÛ

  1. bjzhaobing ÓÚ 2013-12-25 09:45:03·¢±í:

    ðÃÁÎÊÏ £º ÕâÊÇÄǸö¹«Ë¾µÄ±ÊÊÔÌâÄØ £¿£¿£¿

  2. linux2013_xzg ÓÚ 2013-11-03 20:03:46·¢±í:

    ²»´í²»´í

  3. huayeaiwo ÓÚ 2013-08-20 17:23:42·¢±í:

    »¹ÐаÉ

  4. mentgmery ÓÚ 2009-11-20 14:40:10·¢±í:

    Ç¿°¡:)

  5. mentgmery ÓÚ 2009-11-20 14:40:09·¢±í:

    Ç¿°¡:)

  6. heijunmasd ÓÚ 2009-10-12 21:40:36·¢±í:

    лл¥Ö÷
    £¡£¡

  7. heijunmasd ÓÚ 2009-10-12 21:40:30·¢±í:

    лл¥Ö÷
    £¡£¡

  8. rxy_pink ÓÚ 2009-07-13 17:56:18·¢±í:

    ºÜÅ££¬ÒªÊǶ¼¶®Á˺ÜÅ£±Æ

  9. qw_delphi ÓÚ 2009-06-02 16:37:21·¢±í:

    ѧϰÁË£¬Ö§³ÖÂ¥Ö÷·ÖÏí£¡