[×ªÔØ]Oracle´æ´¢¹ý³Ìѧϰ
´æ´¢¹ý³Ì´´½¨Óï·¨£º
create or replace procedure ´æ´¢¹ý³ÌÃû£¨param1 in type£¬param2 out type£©
as
±äÁ¿1 ÀàÐÍ£¨Öµ·¶Î§£©;
±äÁ¿2 ÀàÐÍ£¨Öµ·¶Î§£©;
Begin
Select count(*) into ±äÁ¿1 from ±íA whereÁÐÃû=param1£»
If (ÅжÏÌõ¼þ) then
Select ÁÐÃû into ±äÁ¿2 from ±íA whereÁÐÃû=param1£»
Dbms_output¡£Put_line(‘´òÓ¡ÐÅÏ¢’);
Elsif (ÅжÏÌõ¼þ) then
Dbms_output¡£Put_line(‘´òÓ¡ÐÅÏ¢’);
Else
Raise Òì³£Ãû£¨NO_DATA_FOUND£©;
End if;
Exception
When others then
Rollback;
End;
×¢ÒâÊÂÏ
1£¬ ´æ´¢¹ý³Ì²ÎÊý²»´øÈ¡Öµ·¶Î§£¬in±íʾ´«È룬out±íʾÊä³ö
2£¬ ±äÁ¿´øÈ¡Öµ·¶Î§£¬ºóÃæ½Ó·ÖºÅ
3£¬ ÔÚÅжÏÓï¾äǰ×îºÃÏÈÓÃcount£¨*£©º¯ÊýÅжÏÊÇ·ñ´æÔÚ¸ÃÌõ²Ù×÷¼Ç¼
4£¬ ÓÃselect ¡£¡£¡£into¡£¡£¡£¸ø±äÁ¿¸³Öµ
5£¬ ÔÚ´úÂëÖÐÅ×Òì³£Óà raise+Òì³£Ãû
ÒÔÃüÃûµÄÒì³£
ÃüÃûµÄϵͳÒì³£ ²úÉúÔÒò
ACCESS_INTO_NULL 䶨Òå¶ÔÏó
CASE_NOT_FOUND CASE ÖÐÈôδ°üº¬ÏàÓ¦µÄ WHEN £¬²¢ÇÒûÓÐÉèÖÃ
ELSE ʱ
COLLECTION_IS_NULL ¼¯ºÏÔªËØÎ´³õʼ»¯
CURSER_ALREADY_OPEN ÓαêÒѾ´ò¿ª
DUP_VAL_ON_INDEX ΨһË÷Òý¶ÔÓ¦µÄÁÐÉÏÓÐÖØ¸´µÄÖµ
INVALID_CURSOR
Ïà¹ØÎĵµ£º
OracleÊý¾Ý¿âÌṩÁ˼¸ÖÖ²»Í¬µÄÊý¾Ý¿âÆô¶¯ºÍ¹Ø±Õ·½Ê½£¬±¾ÎĽ«Ïêϸ½éÉÜÕâЩÆô¶¯ºÍ¹Ø±Õ·½Ê½Ö®¼äµÄÇø±ðÒÔ¼°ËüÃǸ÷×Ô²»Í¬µÄ¹¦ÄÜ¡£
Ò»¡¢Æô¶¯ºÍ¹Ø±ÕOracleÊý¾Ý¿â
¡¡¡¡¶ÔÓÚ´ó¶àÊýOracle DBAÀ´Ëµ£¬Æô¶¯ºÍ¹Ø±ÕOracleÊý¾Ý¿â×î³£Óõķ½Ê½¾ÍÊÇÔÚÃüÁîÐз½Ê½ÏµÄServer Manager¡£´ÓOracle 8iÒÔºó£¬ÏµÍ³½«Server ManagerµÄËùÓй¦Äܶ¼¼¯Öе ......
ÓÐÈË×ܽáÁËÊý¾Ý¿âÖÐNullÖµµÄ¸ÅÄ±È½Ï¾«Á¶£¬ÕªÂ¼ÈçÏ£º
NullÊÇÊý¾Ý¿âÖÐÌØÓеÄÊý¾ÝÀàÐÍ£¬µ±Ò»Ìõ¼Ç¼µÄij¸öÁÐΪNull£¬Ôò±íʾÕâ¸öÁеÄÖµÊÇδ֪µÄ¡¢ÊDz»È·¶¨µÄ¡£¼ÈÈ»ÊÇδ֪µÄ£¬¾ÍÓÐÎÞÊýÖֵĿÉÄÜÐÔ¡£Òò´Ë£¬Null²¢²»ÊÇÒ»¸öÈ·¶¨µÄÖµ¡£
ÕâÊÇNullµÄÓÉÀ´¡¢Ò²ÊÇNullµÄ»ù´¡£¬ËùÓк ......
Oracle ´æ´¢¹ý³Ì·µ»Ø½á¹û¼¯Óà ref cursor ʵÏÖ¡£
ÊÔÑé²½ÖèÈçÏ£º
1. ½¨Á¢ ref cursor ÀàÐͺ͹ý³Ì
CREATE OR REPLACE PACKAGE types
AS
TYPE ref_cursor IS REF CURSOR;
END;
/
CREATE TABLE STOCK_PRICES(
RIC VARCHAR(6) PRIMARY KEY,
PRICE NUMBER(7 ......