ORACLE PL/SQL°ü(package)ѧϰ±Ê¼Ç
°üÓɰü¹æ·¶ºÍ°üÌåÁ½²¿·Ö×é³É¡£
1¡¢°ü¹æ·¶£¨Package Specification£©
°ü¹æ·¶£¬Ò²½Ð×ö°üÍ·£¬°üº¬ÁËÓйذüµÄÄÚÈݵÄÐÅÏ¢¡£µ«ÊÇ£¬Ëü²»°üº¬Èκιý³ÌµÄ´úÂë¡£
´´½¨°üÍ·µÄÓï·¨Ò»°ãÈçÏÂ
CREATE [OR REPLACE] PACKAGE package_name {IS | AS}
Procedure_name | function_name | variable_declaration | type_definition | exception_declaration | cursor_declaration
END [package_name];
ÉùÃ÷°üÍ·»¹Òª×ñÑһЩÓï·¨¹æÔò£¬ÈçÏ£º
°ü²¿¼þ¿ÉÒÔÒÔÈÎÒâ´ÎÐò³öÏÖ¡£µ«ÊÇ£¬¶ÔÏó±ØÐëÔÚ±»ÒýÓÃ֮ǰ½øÐÐÉùÃ÷¡£
ËùÓÐÀàÐ͵IJ¿¼þ¶¼Ã»ÓбØÒª¶¼±»Ê¹Óá£ÀýÈ磬°ü¿ÉÒÔ½ö°üº¬¹ý³ÌºÍº¯Êý¹æ·¶£¬¶øÃ»ÓÐÉùÃ÷Òì³£´¦Àí»òÀàÐÍ¡£
¶ÔÓÚ¹ý³ÌºÍº¯ÊýµÄËùÓÐÉùÃ÷¶¼±ØÐëÊÇǰÏòÉùÃ÷¡£
2¡¢°üÖ÷Ì壨Package Body£©
°üÖ÷ÌåºÍ°üÍ·´æ´¢ÔÚ²»Í¬µÄÊý¾Ý×ÖµäÖС£Èç¹ûûÓж԰üÍ·½øÐгɹ¦µÄ±àÒ룬¾Í²»¿ÉÄܶ԰üÖ÷Ìå±àÒë³É¹¦¡£Ö÷ÌåÖаüº¬ÁËÔÚ°üÍ·ÖÐǰÏò×Ó³ÌÐòÉùÃ÷ÏàÓ¦µÄ´úÂë¡£
°üÖ÷ÌåÊÇ¿ÉÑ¡µÄ¡£Èç¹û°üÍ·²»°üº¬Èκιý³Ì»òº¯Êý£¬ÄÇô°üÖ÷Ìå¿ÉÒÔûÓС£Õâ¸ö¼¼Êõ¶ÔÓÚÉùÃ÷È«¾Ö±äÁ¿ÊǺÜÓÐÓõģ¬ÒòΪ°üÖеÄËùÓжÔÏóÔÚ°üµÄÍâÃæÊǿɼûµÄ¡£
°üÍ·ÖеÄËùÓÐǰÏòÉùÃ÷±ØÐëÔÚ°üÖ÷ÌåÖб»¸üС£¹ý³Ì»òº¯ÊýµÄ¹æ·¶ÔÚ°üÍ·ºÍ°üÖ÷ÌåÖбØÐëÊÇÏàͬµÄ¡£Õâ¸ö¹æ·¶°üÀ¨×Ó³ÌÐòµÄÃû×Ö¡¢²ÎÊýµÄÃû×ÖÒÔ¼°²ÎÊýµÄģʽ¡£
3¡¢°üºÍ×÷ÓÃÓò
ÔÚ°üÍ·Öж¨ÒåµÄÈκζÔÏó¶¼ÓÐÒ»¶¨µÄ·¶Î§£¬ÔÚ°üÒÔÍâͨ¹ýʹÓðüÃû³ÆÏÞ¶¨ÈÔÈ»¿ÉÒÔʹÓÃÕâЩ¶ÔÏó¡£ÀýÈ磬¿ÉÒÔÏñÏÂÃæPL/SQL¿éÄÇÑùµ÷ÓÃInventoryOps.DeleteISBN¹ý³Ì¡£
BEGIN
InventoryOps.DeleteISBN(‘78824389’);
END;
°ü¹ý³ÌµÄµ÷ÓÃÓëµ¥¶ÀµÄ¹ý³Ìµ÷ÓÃÏàͬ£¬Î¨Ò»µÄÇø±ð¾ÍÊÇÔÚ°ü¹ý³ÌµÄÇ°ÃæÌí¼ÓÁ˰üÃû³ÆÇ°×º¡£°ü¹ý³Ì¿ÉÒÔ´øÓÐĬÈϵIJÎÊý£¬¿ÉÒÔʹÓÃλÖñíʾ·¨»òÕßÃû³Æ±íʾ·¨µ÷ÓÃËüÃÇ£¬¾ÍÏñµ¥¶ÀµÄ´æ´¢¹ý³ÌÒ»Ñù¡£
°üÍ·ÖеĶÔÏóÔÚ°üÖ÷ÌåÖпÉÒÔÖ±½ÓʹÓ㬲»ÐèÒª¸½´ø°üÃûǰ׺¡£
4¡¢°ü×Ó³ÌÐòµÄÖØÔØ
ÔÚ°üÖУ¬¹ý³ÌºÍº¯ÊýÊÇ¿ÉÒÔÖØÔØµÄ¡£ÕâÒ²¾ÍÒâζ×Å¿ÉÒÔÈöà¸ö¹ý³Ì»òº¯Êý¹²ÓÃͬһ¸öÃû³Æ£¬µ«ÊÇ´øÓв»Í¬µÄ²ÎÊý¡£ÕâÊÇÒ»¸ö·Ç³£ÓÐÓõŦÄÜÌØÐÔ£¬ÒòΪËüÈÃͬһ¸ö²Ù×÷¿ÉÒÔÖ´ÐÐÔÚ²»Í¬ÀàÐ͵ĶÔÏóÉÏ¡£
ÏÂÃæÊ¾ÀýÑÝʾÁ˰ü×Ó³ÌÐòµÄÖØÔØ
CREATE OR REPLACE PACKAGE InventoryOps AS
…
-- Returns an array containing the books with the specified status.
PROCEDURE StatusList(p_Status IN
Ïà¹ØÎĵµ£º
Ð¶ÔØSQL Server 2005µÄ·½·¨Ö®Ò»£¬·ÅÔÚÕâ¶ùÖ»ÊÇΪÁ˼Çס£º
1£º°ÑSQL Server2005µÄ°²×°ÅÌ£¨°²×°Îļþ£©·ÅÈëµ½¹âÇý¡£
2£º´ò¿ªÈçÏ·¾¶£º¿ªÊ¼/ÔËÐУ¬ÊäÈ룺cmd
3£ºÊäÈëÏÂÁÐÃüÁ
Start /wait \setup.exe /qb REMOVE=ALL INSTANCENAME=£º¹ÜÇøÅÌ·û£¬ÀýÈ磺G£º¡¢H£ºµÈ£»£º°²×°µÄSQLServerʵÀýÃû³Æ£¬Ä¬ÈÏֵΪ£º¹¦ÄÜ ......
Ò»£¬PL/SQL¿éµÄ½á¹¹ºÍ×é³ÉÔªËØ
PL/SQL³ÌÐòÓÉÉùÃ÷²¿·Ö£¬Ö´Ðв¿·Ö£¬Òì³£´¦Àí²¿·ÖÈý¸ö²¿·Ö×é³É¡£½á¹¹ÈçÏ£º
DECLARE
/*ÉùÃ÷²¿·Ö£ºÔÚ´ËÉùÃ÷PL/SQL±äÁ¿£¬ÀàÐͼ°Óα꣬ÒÔ¼°¾Ö²¿µÄ´æ´¢¹ý³ÌºÍº¯Êý*/
BEGIN
/*Ö´Ðв¿·Ö£º¹ý³Ì¼°sqlÓï¾ä£¬³ÌÐòÖ÷Òª²¿·Ö£¬ÊDZØÐëµÄ*/
EXCEPTION
/*Òì³£´¦Àí²¿·Ö£º´íÎó´¦Àí*/
END
PL/SQL¿ ......
ΪÁË´¦Àí SQL Óï¾ä£¬ORACLE ±ØÐë·ÖÅäһƬ½ÐÉÏÏÂÎÄ( context area )µÄÇøÓòÀ´´¦ÀíËù±ØÐèµÄÐÅÏ¢£¬ÆäÖаüÀ¨Òª´¦ÀíµÄÐеÄÊýÄ¿£¬Ò»¸öÖ¸ÏòÓï¾ä±»·ÖÎöÒÔºóµÄ±íʾÐÎʽµÄÖ¸ÕëÒÔ¼°²éѯµÄ»î¶¯¼¯(active set)¡£
ÓαêÊÇÒ»¸öÖ¸ÏòÉÏÏÂÎĵľä±ú( handle)»òÖ¸Õ롣ͨ¹ýÓα꣬PL/SQL¿ÉÒÔ¿ØÖÆÉÏÏÂÎÄÇøºÍ´¦ÀíÓï¾äʱÉÏÏÂÎÄÇø»á·¢ÉúÐ ......
Ò».°´Ó¢ÎÄ×ÖĸÅÅÐò:
select * from table order by nlssort(name,'NLS_SORT=schinese_pinyin_M');
¶þ. дһ¸öSQLÓï¾ä£¬²éѯѡÐÞÁË5Ãſγ̵ÄѧÉúѧºÅºÍÐÕÃû£¨9·ÖÖÓ£©
´ð£ºSQLÓï¾äÈçÏ£º
select stu.sno, stu.sname
from student stu
where (select count(*) from s ......
ÎÊÌ⣺¼ÙÉèÓÐÕÅѧÉú³É¼¨±í(tb)ÈçÏÂ:
ÐÕÃû ¿Î³Ì ·ÖÊý
ÕÅÈý ÓïÎÄ 74
ÕÅÈý Êýѧ 83
ÕÅÈý ÎïÀí 93
ÀîËÄ ÓïÎÄ 74
ÀîËÄ Êýѧ 84
ÀîËÄ ÎïÀí 94
Ïë±ä³É(µÃµ½ÈçϽá¹û)£º
ÐÕÃû ÓïÎÄ Êýѧ ÎïÀí
---- ---- --- ......