Oracle PL/SQLÓïÑÔÈëÃÅ
Ò»¡¢±³¾°½éÉÜ
¡¡¡¡
¡¡¡¡½á¹¹»¯²éѯÓïÑÔ(Structured Query Language£¬¼ò³ÆSQL)ÊÇÓÃÀ´·ÃÎʹØÏµÐÍÊý¾Ý¿âÒ»ÖÖͨÓÃÓïÑÔ£¬ÊôÓÚµÚËÄ´úÓïÑÔ£¨4GL£©£¬ÆäÖ´ÐÐÌØµãÊǷǹý³Ì»¯£¬¼´²»ÓÃÖ¸Ã÷Ö´ÐеľßÌå·½·¨ºÍ;¾¶£¬¶øÊǼòµ¥µØµ÷ÓÃÏàÓ¦Óï¾äÀ´Ö±½ÓÈ¡µÃ½á¹û¼´¿É¡£ÏÔÈ»£¬ÕâÖÖ²»¹Ø×¢ÈκÎʵÏÖϸ½ÚµÄÓïÑÔ¶ÔÓÚ¿ª·¢ÕßÀ´ËµÓÐ׿«´óµÄ±ãÀû¡£È»¶ø£¬ÓÐЩ¸´ÔÓµÄÒµÎñÁ÷³ÌÒªÇóÏàÓ¦µÄ³ÌÐòÀ´ÃèÊö£¬ÕâÖÖÇé¿öÏÂ4GL¾ÍÓÐЩÎÞÄÜΪÁ¦ÁË¡£PL/SQLµÄ³öÏÖÕýÊÇΪÁ˽â¾öÕâÒ»ÎÊÌ⣬PL/SQLÊÇÒ»ÖÖ¹ý³Ì»¯ÓïÑÔ£¬ÊôÓÚµÚÈý´úÓïÑÔ£¬ËüÓëC¡¢C++¡¢JavaµÈÓïÑÔÒ»Ñù¹Ø×¢ÓÚ´¦Àíϸ½Ú£¬¿ÉÒÔÓÃÀ´ÊµÏֱȽϸ´ÔÓµÄÒµÎñÂß¼¡£±¾ÎÄÖ÷Òª½éÉÜPL/SQLµÄ±à³Ì»ù´¡£¬ÒÔʹÈëÃÅÕß¶ÔPL/SQLÓïÑÔÓÐÒ»¸ö×ÜÌåÈÏʶºÍ»ù±¾°ÑÎÕ¡£
¡¡¡¡
¡¡¡¡¶þ¡¢±à³Ì»ù´¡ÖªÊ¶
¡¡¡¡
¡¡¡¡1. ³ÌÐò½á¹¹
¡¡¡¡
¡¡¡¡PL/SQL³ÌÐò¶¼ÊÇÒԿ飨block£©Îª»ù±¾µ¥Î»£¬Õû¸öPL/SQL¿é·ÖÈý²¿·Ö£ºÉùÃ÷²¿·Ö£¨ÓÃdeclare¿ªÍ·£©¡¢Ö´Ðв¿·Ö£¨ÒÔbegin¿ªÍ·£©ºÍÒì³£´¦Àí²¿·Ö£¨ÒÔexception¿ªÍ·£©¡£ÆäÖÐÖ´Ðв¿·ÖÊDZØÐëµÄ£¬ÆäËûÁ½¸ö²¿·Ö¿ÉÑ¡¡£ÎÞÂÛPL/SQL³ÌÐò¶ÎµÄ´úÂëÁ¿Óжà´ó£¬Æä»ù±¾½á¹¹¾ÍÊÇÓÉÕâÈý²¿·Ö×é³É¡£ÈçÏÂËùʾΪһ¶ÎÍêÕûµÄPL/SQL¿é£º
¡¡¡¡
¡¡¡¡/*ÉùÃ÷²¿·Ö£¬ÒÔdeclare¿ªÍ·*/
¡¡¡¡declare v_id integer;
¡¡¡¡v_name varchar(20);
¡¡¡¡cursor c_emp is select * from employee where emp_id=3;
¡¡¡¡/*Ö´Ðв¿·Ö£¬ÒÔbegin¿ªÍ·*/
¡¡¡¡begin ¡¡open c_emp;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//´ò¿ªÓαê
¡¡¡¡loop
¡¡¡¡fetch c_emp into v_id,v_name;¡¡¡¡¡¡¡¡//´ÓÓαêÈ¡Êý¾Ý
¡¡¡¡exit when c_emp%notfound ;
¡¡¡¡end loop ;
¡¡¡¡close c_emp;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //¹Ø±ÕÓαê
¡¡¡¡dbms_output.PUT_LINE(v_name);
¡¡¡¡/*Òì³£´¦Àí²¿·Ö£¬ÒÔexception¿ªÊ¼*/
¡¡¡¡exception
¡¡¡¡when no_data_found then
¡¡¡¡dbms_output.PUT_LINE('ûÓÐÊý¾Ý');
¡¡¡¡end ;
¡¡¡¡
¡¡¡¡2. ¿ØÖƽṹ
¡¡¡¡
¡¡¡¡PL/SQL³ÌÐò¶ÎÖÐÓÐÈýÖÖ³ÌÐò½á¹¹£ºÌõ¼þ½á¹¹¡¢Ñ»·½á¹¹ºÍ˳Ðò½á¹¹¡£
¡¡¡¡
¡¡¡¡1) Ìõ¼þ½á¹¹
¡¡¡¡
¡¡¡¡ÓëÆäËüÓïÑÔÍêÈ«ÀàËÆ£¬Óï·¨½á¹¹ÈçÏ£º
¡¡¡¡
¡¡¡¡if condition then
¡¡¡¡statement1
¡¡¡¡else
¡¡¡¡statement2
¡¡¡¡end if ;
¡¡¡¡
¡¡¡¡2) Ñ»·½á¹¹
¡¡¡¡
¡¡¡¡ÕâÒ»½á¹¹ÓëÆäËûÓïÑÔ²»Ì«Ò»Ñù£¬ÔÚPL/SQL³ÌÐòÖÐÓÐÈýÖÖÑ»·½á¹¹£º
¡¡¡¡
¡¡¡¡a. loop … end loop;
¡¡¡¡b. while condition loop … end loop;
¡¡¡¡c. for variable in low_bound . . upper_bou
Ïà¹ØÎĵµ£º
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--ÿҳÏÔʾ¼Ç¼ÌõÊý
@currentpage int output,--µÚ¼¸Ò³
@orderid nvarchar(50),--Ö÷¼üÅÅÐò
@sort int,--ÅÅÐò·½Ê½£¬1±íʾÉýÐò£¬0±íʾ½µÐòÅÅÁÐ
......
ORACLE±¸·Ý²ßÂÔ(ORACLE BACKUP STRATEGY)
2007Äê11ÔÂ02ÈÕ ÐÇÆÚÎå 16:03
¸ÅÒª
1¡¢Á˽âʲôÊDZ¸·Ý
2¡¢Á˽ⱸ·ÝµÄÖØÒªÐÔ
3¡¢Àí½âÊý¾Ý¿âµÄÁ½ÖÖÔËÐз½Ê½
4¡¢Àí½â²»Í¬µÄ±¸·Ý·½Ê½¼°ÆäÇø±ð
5¡¢Á˽âÕýÈ·µÄ±¸·Ý²ßÂÔ¼°ÆäºÃ´¦
Ò»¡¢Á˽ⱸ·ÝµÄÖØÒªÐÔ
¿ÉÒÔ˵£¬´Ó¼ÆËã»úϵͳ³öÊÀµÄÄÇÌìÆð£¬¾ÍÓÐÁ˱¸·ÝÕâ¸ö¸ÅÄ ......
ÏÂÃæ¾ÍÀ´½éÉÜÒ»ÏÂÕâЩÔÚºǫ́ÐÁÇÚ¹¤×÷µÄ½ø³ÌÃÇ¡£ÏµÍ³¼ì²âÆ÷£¨System Monitor,SMON£©¡¢½ø³Ì¼àÊÓÆ÷£¨Process
Monitor,PMON£©¡¢Êý¾Ý¿âдÈëÆ÷£¨Database Writer,DBWn£©¡¢ÈÕ־дÈëÆ÷£¨Log
Writer,LGWR£©¡¢¼ì²éµã½ø³Ì£¨Checkpoint Process,CKPT£© ¡£
1¡¢SMON£º°²×°ºÍ´ò¿ªÊý¾Ý¿â¡£Í¨¹ý²éÕÒºÍ
ÑéÖ¤Êý¾Ý¿â¿ØÖÆ ......
1¡¢×ª»»·þÎñÆ÷¹éµµÄ£Ê½£¬Èç¹ûÒÑÊǹ鵵ģʽ¿ÉÌø¹ý´Ë²½£º
¡¡%sqlplus /nolog (Æô¶¯sqlplus)
¡¡¡¡SQL> conn / as sysdba (ÒÔDBAÉí·ÝÁ¬½ÓÊý¾Ý¿â)
¡¡¡¡SQL> shutdown immediate; (¼´Ê±¹Ø±ÕÊý¾Ý¿â)
¡¡¡¡SQL> startup mount (Æô¶¯ÊµÀý²¢¼ÓÔØÊý¾Ý¿â£¬µ«²»´ò¿ª)
¡¡¡¡SQL> alter database archivelog; (¸ü¸ÄÊ ......