1. ÿÌìµÄ8£º00µ½23£º00ÿ¸ô5·ÖÖÓÖ´ÐÐÒ»¸ösqlÓï¾äµÄJOB
--½¨Á¢Ò»¸ö´æ´¢¹ý³Ì
CREATE OR REPLACE PROCEDURE p_jobtest IS
v_hh VARCHAR2(2);
BEGIN
v_hh := to_char(SYSDATE, 'hh24');
IF v_hh >= '08' AND v_hh <= '22' THEN
--ÄãµÄsqlÓï¾ä
NULL;
END IF;
END;
/
--Ìá½»Ò»¸öJOB
DECLARE
v_jobno NUMBER;
BEGIN
dbms_job.submit(v_jobno,
'p_jobtest;',
trunc(SYSDATE, 'mi') + 1 / 1440,
'trunc(SYSDATE, ''mi'') + 5 / 1440');
END;
/
2. RMAN ÖеÄlist ÃüÁîÏÔʾµÄÐÅÏ¢ÊÇ´Ó¿ØÖÆÎļþÀï»ñÈ¡µÄ£¬Èç¹ûʹÓÃrmµÈÃüÁîÊÖ¹¤µÄɾ³ý±¸·ÝÎļþ£¬Õâ¸ö¶¯×÷²»»áͬ²½µ½¿ØÖÆÎļþ£¬Ôì³É²»Ò»Ö£¬ÕâÖÖ²»Ò»Ö»ᵼÖÂʹ ......
½ñÌì×öÏîÄ¿µÄʱºò£¬½«null´«ÈëOracleµÄ±íÖУ¬¾ÍÊDz»³É¹¦
¾¹ý³¢ÊԵóöÁËÁ½¸ö½â¾ö·½°¸£º
1.´«ÈëOracleDateTime.NULL
2.Nullable<DateTime> optime = DBNull.Value; ´«Èëoptime(¿ªÊ¼ÍøÉÏÕҵĴð°¸ÊÇNullable<DateTime> optime = null·¢ÏÖ»¹Êǻᱨ´í) ......
½ñÌì×öÏîÄ¿µÄʱºò£¬½«null´«ÈëOracleµÄ±íÖУ¬¾ÍÊDz»³É¹¦
¾¹ý³¢ÊԵóöÁËÁ½¸ö½â¾ö·½°¸£º
1.´«ÈëOracleDateTime.NULL
2.Nullable<DateTime> optime = DBNull.Value; ´«Èëoptime(¿ªÊ¼ÍøÉÏÕҵĴð°¸ÊÇNullable<DateTime> optime = null·¢ÏÖ»¹Êǻᱨ´í) ......
EMP±íÖÐÔ±¹¤ÓëÀϰåµÄ¹ØÏµ
ÄÚÁ¬½Ó£º
ÄÚÁ¬½ÓÒ²½Ð×ÔÈ»Á¬½Ó£¬ËüÊÇ×éºÏÁ½¸ö±íµÄ³£Ó÷½·¨¡£×ÔÈ»Á¬½Ó½«Á½¸ö±íÖеÄÁнøÐбȽϣ¬½«Á½¸ö±íÖÐÂú×ãÁ¬½ÓÌõ¼þµÄÐÐ×éºÏÆðÀ´£¬×÷Ϊ½á¹û¡£×ÔÈ»Á¬½ÓÓÐÁ½ÖÖÐÎʽµÄÓï·¨¡£
select e1.ename,e1.mgr,e2.ename aa from emp e1,emp e2 where e1.mgr=e2.empno;
select e1.ename,e1.mgr,e2.ename aa from emp e1 inner join
emp e2 on
e1.mgr=e2.empno;
--½á¹ûΪ£ºËùÓÐÓÐÉϼ¶µÄÔ±¹¤¼°¶ÔÓ¦Éϼ¶ÐÕÃû¡£
ÍâÁ¬½Ó£º
ÔÚ×ÔÈ»Á¬½ÓÖУ¬Ö»ÓÐÔÚÁ½¸ö±íÖÐÆ¥ÅäµÄÐвÅÄÜÔÚ½á¹û¼¯ÖгöÏÖ¡£¶øÔÚÍâÁ¬½ÓÖпÉÒÔÖ»ÏÞÖÆÒ»¸ö±í£¬¶ø¶ÔÁíÍâÒ»¸ö±í²»¼ÓÏÞÖÆ£¨¼´ËùÓеÄÐж¼³öÏÖÔÚ½á¹û¼¯ÖУ©¡£
ÍâÁ¬½Ó·ÖΪ×óÍâÁ¬½Ó¡¢ÓÒÍâÁ¬½ÓºÍÈ«ÍâÁ¬½Ó¡£×óÍâÁ¬½ÓÊǶÔÁ¬½ÓÌõ¼þÖÐ×ó±ßµÄ±í²»¼ÓÏÞÖÆ£»ÓÒÍâÁ¬½ÓÊǶÔÓÒ±ßµÄ±í²»¼ÓÏÞÖÆ£»È«ÍâÁ¬½Ó¶ÔÁ½¸ö±í¶¼²»¼ÓÏÞÖÆ£¬ËùÓÐÁ½¸ö±íÖеÄÐж¼»á°üÀ¨ÔÚ½á¹û¼¯ÖС£
×óÍâÁ¬½ÓµÄÓ﷨Ϊ£º
SELECT ÁÐ from ±í1 LEFT [OUTER]JOIN ±í2 ON ±í1.ÁÐ1=±í2.ÁÐ2
ÓÒÍâ ......
×÷Óãºmerge into ½â¾öÓÃB±í¸úÐÂA±íÊý¾Ý£¬Èç¹ûA±íÖÐûÓУ¬Ôò°ÑB±íµÄÊý¾Ý²åÈëA±í£»
Óï·¨£º
MERGE INTO [your table-name] [rename your table here]
USING ( [write your query here] )[rename your query-sql and using just like a table]
ON ([conditional expression here] AND [...]...)
WHEN MATHED THEN [here you can execute some update sql or something else ]
WHEN NOT MATHED THEN [execute something else here ! ]
-------------------------------------ʵÀý-----------------------------------------------------------------
merge into tfa_alarm_act_nms a
using (select FP0,FP1,FP2,FP3,REDEFINE_SEVERITY
from tfa_alarm_status) b
on (a.fp0=b.fp0 and a.fp1=b.fp1 and a.fp2=b.fp2 and a.fp3=b.fp3)
when matched then update set a.redefine_severity=b.redefine_severity
when not matched then insert (a.fp0,a.fp1,a.fp2,a.fp3,a.org_severity,a.redefine_severity,a.event_time
,a.int_id)
values (b.fp0,b.fp1,b.fp2,b.fp3,b.REDEFINE_SEVERITY,b.redefine_severity,sysdate,7777778);
×÷ÓãºÀûÓñí tfa_alarm_status¸úб ......
oracle ´æ´¢¹ý³ÌµÄ»ù±¾Óï·¨
1.»ù±¾½á¹¹
CREATE OR REPLACE PROCEDURE ´æ´¢¹ý³ÌÃû×Ö
(
²ÎÊý1 IN NUMBER,
²ÎÊý2 IN NUMBER
) IS
±äÁ¿1 INTEGER :=0;
±äÁ¿2 DATE;
BEGIN
END ´æ´¢¹ý³ÌÃû×Ö
2.SELECT INTO STATEMENT
½«select²éѯµÄ½á¹û´æÈëµ½±äÁ¿ÖУ¬¿ÉÒÔͬʱ½«¶à¸öÁд洢¶à¸ö±äÁ¿ÖУ¬±ØÐëÓÐÒ»Ìõ
¼Ç¼£¬·ñÔòÅ׳öÒì³£(Èç¹ûûÓмǼÅ׳öNO_DATA_FOUND)
Àý×Ó£º
BEGIN
SELECT col1,col2 into ±äÁ¿1,±äÁ¿2 from typestruct where xxx;
EXCEPTION
WHEN NO_DATA_FOUND THEN
xxxx;
END;
...
3.IF ÅжÏ
IF V_TEST=1 THEN
BEGIN
do something
END;
END IF;
4.while Ñ»·
WHILE V_TEST=1 LOOP
BEGIN
XXXX
END;
END LOOP;
5.±äÁ¿¸³Öµ
V_TEST := 123;
6.ÓÃfor in ʹÓÃcursor
...
IS
CURSOR cur IS SELECT * from xxx;
BEGIN
FOR ......
´æ´¢¹ý³Ì °üº¬Èý²¿·Ö£º ÉùÃ÷£¬Ö´Ðв¿·Ö£¬Òì³£¡£
¿ÉÒÔÓÐÎÞ²ÎÊý³ÌÐòºÍ´ø²ÎÊý´æ´¢¹ý³Ì¡£
Î޲γÌÐòÓï·¨
1 create or replace procedure NoParPro
2 as ;
3 begin
4 ;
5 exception
6 ;
7 end;
8
´ø²Î´æ´¢¹ý³ÌʵÀý
1 create or replace procedure queryempname(sfindno emp.empno%type) as
2 sName emp.ename%type;
3 sjob emp.job%type;
4 begin
5 ....
7 exception
& ......