Oracle ѧϰ£ºPL/SQLÑÐò½¥½øÈ«Ãæѧϰ½Ì³Ì
×îºóÒ»¿Î Òì³£´¦Àí±¾ÕÂÖص㣺
¡¡¡¡
¡¡¡¡1¡¢¶¨ÒåPLSQLÒì³£
¡¡¡¡2¡¢Áоٲ»Í¬µÄÒì³£´¦Àí·½·¨
¡¡¡¡3¡¢²¶»ñ·ÇÔ¤ÆڵĴíÎó
¡¡¡¡4¡¢ÃèÊöÒì³£µÄÓ°Ïì
¡¡¡¡5¡¢¶¨ÖÆÒì³£µÄ·µ»ØÐÅÏ¢¡¡¡¡Ò»¡¢PLSQLÒì³£´¦Àí
¡¡¡¡Òì³£ÊÇÓÉORACLE´íÎó»òÏÔʽµÄÅ׳öÒ»¸ö´íÎó²úÉúµÄ¡£
¡¡¡¡ÈçºÎ´¦Àí£º
¡¡¡¡ÓÃÒ»¸ö´¦Àí³ÌÐòÀ´²¶»ñËü£»
¡¡¡¡½«Ëü´«µÝ¸øCALLING ENVIRONMENT
¡¡¡¡¶þ¡¢Òì³£µÄÀàÐÍ£º
¡¡¡¡ORACLE SERVER Ô¤¶¨Òå´íÎó
¡¡¡¡·ÇORACLE SERVER Ô¤¶¨Òå´íÎ󣬵«Ò²ÊÇORACLE SERVER µÄ±ê×¼´íÎó
¡¡¡¡Óû§×Ô¶¨ÒåÒì³£
¡¡¡¡Èý¡¢²¶×½Òì³£µÄÒªµã£º
¡¡¡¡Place the WHEN OTHERS clause after all other exception handling clauses.
¡¡¡¡
¡¡¡¡You can have at most one WHEN OTHERS clause.
¡¡¡¡
¡¡¡¡Begin exception-handling section of the block with the keyword EXCEPTION.
¡¡¡¡
¡¡¡¡Define several exception handlers, each with their own set of actions, for the
¡¡¡¡block.
¡¡¡¡
¡¡¡¡When an exception occurs, PL/SQL will process only one handler before leaving
¡¡¡¡the block.
¡¡¡¡EXCEPTION
¡¡¡¡WHEN exception1 [OR exception2 . . .] THEN
¡¡¡¡statement1;
¡¡¡¡ËÄ¡¢³£ÓôíÎó£º
¡¡¡¡NO_DATA_FOUND ORA-01403
¡¡¡¡TOO_MANY_ROWS ORA-01422
¡¡¡¡INVALID_CURSOR ORA-01001
¡¡¡¡ZERO_DIVIDE ORA-01476
¡¡¡¡DUP_VAL_ON_INDEX ORA-00001
¡¡¡¡Î塢ʵÀý
¡¡¡¡PROCEDURE elim_inventory
¡¡¡¡(v_product_id IN s_product.id%TYPE) IS
¡¡¡¡v_id s_product.id%TYPE;
¡¡¡¡BEGIN
¡¡¡¡SELECT id
¡¡¡¡INTO v_id
¡¡¡¡from s_product
¡¡¡¡WHERE id = v_product_id;
¡¡¡¡DELETE from s_inventory
¡¡¡¡WHERE product_id = v_product_id;
¡¡¡¡COMMIT;
¡¡¡¡EXCEPTION
¡¡¡¡WHEN NO_DATA_FOUND THEN
¡¡¡¡ROLLBACK;
¡¡¡¡TEXT_IO.PUT_LINE(TO_CHAR(v_product_id)||
¡¡¡¡’ is invalid.’);
¡¡¡¡WHEN TOO_MANY_ROWS THEN
¡¡¡¡ROLLBACK;
¡¡¡¡TEXT_IO.PUT_LINE(’Data corruption in S_PRODUCT.’);
¡¡¡¡WHEN OTHERS THEN
¡¡¡¡ROLLBACK;
¡¡¡¡TEXT_IO.PUT_LINE(’Other error occurred.’);
¡¡¡¡END elim_inventory;
¡¡¡¡ÔÚSCOTT»·¾³ÖÐʹÓÃÒªÉԼӸĶ¯
¡¡¡¡Áù¡¢Ê¹ÓÃnon-predefined Oracle7 Server error
¡¡¡¡DECLARE
¡¡¡¡E_PRO¡¡ EXCEPTION;
¡¡¡¡PRAGMA EXCEPTION_INIT(E_PRO,ERROR_NUMBER);
¡¡¡¡BEGIN
¡¡¡
Ïà¹ØÎĵµ£º
oracle±í¿Õ¼ä²Ù×÷Ïê½â
1
2
3×÷Õߣº À´Ô´£º ¸üÐÂÈÕÆÚ£º2006-01-04
5
6
7½¨Á¢±í¿Õ¼ä
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
¿Î³ÌÈý ´Ó¶à¸ö±íÖÐÌáÈ¡Êý¾Ý
¡¡¡¡
¡¡¡¡±¾¿ÎÖص㣺
¡¡¡¡1¡¢SELECT from ¶à¸ö±í£¬Ê¹ÓõÈÁ¬½Ó»ò·ÇµÈÁ¬½Ó
¡¡¡¡2¡¢Ê¹ÓÃÍâÁ¬½ÓOUTER JOIN
¡¡¡¡3¡¢Ê¹ÓÃ×ÔÁ¬½Ó
¡¡¡¡×¢Ò⣺ÒÔÏÂʵÀýÖбêµã¾ùΪӢÎÄ°ë½Ç
¡¡¡¡Ò»¡¢Á¬½ÓµÄ¸ÅÄ
¡¡¡¡
¡¡¡¡ÊÇÖ¸Ò»¸ö´Ó¶à¸ö±íÖеÄÊý¾Ý½øÐеIJéѯ¡£Á¬½ÓÒ»°ãʹÓñíµÄÖ÷¼üºÍÍâ¼ü¡£
¡¡¡¡Á¬½ÓÀàÐÍ£º
¡¡ ......
¡¡¿Î³ÌÆß ÆäËûÊý¾Ý¿â¶ÔÏó
¡¡¡¡
¡¡¡¡SEQUENCE
¡¡¡¡
¡¡¡¡´´½¨ÊµÀý£º
¡¡¡¡
¡¡¡¡SQL> CREATE SEQUENCE s_dept_id
¡¡¡¡
¡¡¡¡2 INCREMENT BY 1
¡¡¡¡
¡¡¡¡3 START WITH 51
¡¡¡¡
¡¡¡¡4 MAXVALUE 9999999
¡¡¡¡
¡¡¡¡5 NOCACHE
¡¡¡¡
¡¡¡¡6 NOCYCLE;
¡¡¡¡
¡¡¡¡Sequence created.
¡¡¡¡
¡¡¡¡1¡¢NEXTVALºÍCURRVALµÄ ......
¿Î³Ìʮһ ÓëORACLE SERVER½»»¥
¡¡¡¡
¡¡¡¡±¾¿ÎÖص㣺
¡¡¡¡1¡¢ÔÚPLSQLÖгɹ¦µÄдSELECTÓï¾ä
¡¡¡¡2¡¢¶¯Ì¬ÉùÃ÷PLSQL±äÁ¿ÀàÐÍÓëSIZE
¡¡¡¡3¡¢ÔÚPLSQLÖÐдDMLÓï¾ä
¡¡¡¡4¡¢ÔÚPLSQLÖпØÖÆÊÂÎñ
¡¡¡¡5¡¢È·¶¨DML²Ù×÷µÄ½á¹û
¡¡¡¡
¡¡¡¡×¢Ò⣺ÒÔÏÂʵÀýÖбêµã¾ùΪӢÎÄ°ë½Ç
¡¡¡¡
¡¡¡¡Ò»¡¢PLSQLÖеÄSQLÓï¾ä£º
¡¡¡¡SELECT¡¢DML¡¢CO ......
¿Î³ÌÊ®¶þ ±àд¿ØÖƽṹÓï¾ä
¡¡¡¡
¡¡¡¡±¾¿ÎÖص㣺
¡¡¡¡1¡¢½á¹¹¿ØÖƵĵÄÓÃ;ºÍÀàÐÍ
¡¡¡¡2¡¢IF ½á¹¹
¡¡¡¡3¡¢¹¹ÔìºÍ±êʶ²»Í¬µÄÑ»·
¡¡¡¡4¡¢Ê¹ÓÃÂß¼±í
¡¡¡¡5¡¢¿ØÖÆÁ÷ºÍǶÌ×
¡¡¡¡
¡¡¡¡×¢Ò⣺ÒÔÏÂʵÀýÖбêµã¾ùΪӢÎÄ°ë½Ç
¡¡¡¡
¡¡¡¡Ò»¡¢¿ØÖÆÖ´ÐÐÁ÷
¡¡¡¡¿ÉÒÔÊÇ·ÖÖ§ºÍÑ»·£ºIF THEN END IF
¡¡¡¡IF condition THEN ......