oracle11g½Ì³Ì´ÓÈëÃŵ½¾«Í¨ ÏÂÔØ±¾ÎÄ

Ô¤¶¨ÒåÀýÍâ too_many_rows

µ±Ö´ÐÐselect intoÓï¾äʱ£¬Èç¹û·µ»Ø³¬¹ýÁËÒ»ÐУ¬Ôò»á´¥·¢¸ÃÀýÍâ¡£ Sql´úÂë

1. declare

2. v_ename emp.ename%type; 3. begin

4. select ename into v_ename from emp; 5. exception

6. when too_many_rows then

7. dbms_output.put_line('·µ»ØÁ˶àÐÐ'); 8. end;

Ô¤¶¨ÒåÀýÍâ zero_divide

µ±Ö´ÐÐ2/0Óï¾äʱ£¬Ôò»á´¥·¢¸ÃÀýÍâ¡£

Ô¤¶¨ÒåÀýÍâ value_error

µ±ÔÚÖ´Ðи³Öµ²Ù×÷ʱ£¬Èç¹û±äÁ¿µÄ³¤¶È²»×ãÒÔÈÝÄÉʵ¼ÊÊý¾Ý£¬Ôò»á´¥·¢¸ÃÀýÍâvalue_error£¬±ÈÈ磺 Sql´úÂë

1. declare

2. v_ename varchar2(5); 3. begin

4. select ename into v_ename from emp where empno = &no1;

5. dbms_output.put_line(v_ename); 6. exception

7. when value_error then

8. dbms_output.put_line('±äÁ¿³ß´ç²»×ã'); 9. end;

ÆäËüÔ¤¶¨ÒåÀýÍâ(ÕâЩÀýÍâ²»ÊÇÔÚpl/sqlÀï´¥·¢µÄ£¬¶øÊÇÔÚÓÃoracleʱ´¥·¢µÄ£¬ËùÒÔÈ¡Ãû½ÐÆäËüÔ¤¶¨ÒåÀýÍâ) 1.login_denied

µ±Óû§·Ç·¨µÇ¼ʱ£¬»á´¥·¢¸ÃÀýÍâ 2.not_logged_on

Èç¹ûÓû§Ã»ÓеǼ¾ÍÖ´ÐÐdml²Ù×÷£¬¾Í»á´¥·¢¸ÃÀýÍâ 3.storage_error

Èç¹û³¬¹ýÁËÄÚ´æ¿Õ¼ä»òÊÇÄÚ´æ±»Ë𻵣¬¾Í´¥·¢¸ÃÀýÍâ 4.timeout_on_resource

Èç¹ûoracleÔڵȴý×ÊԴʱ£¬³öÏÖÁ˳¬Ê±¾Í´¥·¢¸ÃÀýÍâ

·ÇÔ¤¶¨ÒåÀýÍâ

·ÇÔ¤¶¨ÒåÀýÍâÓÃÓÚ´¦ÀíÓëÔ¤¶¨ÒåÀýÍâÎ޹صÄoracle´íÎó¡£Ê¹ÓÃÔ¤¶¨ÒåÀýÍâÖ»ÄÜ´¦Àí21¸öoracle´íÎ󣬶øµ±Ê¹ÓÃpl/sql¿ª·¢Ó¦ÓóÌÐòʱ£¬¿ÉÄÜ»áÓöµ½ÆäËüµÄһЩoracle´íÎó¡£±ÈÈçÔÚpl/sql¿éÖÐÖ´ÐÐdmlÓï¾äʱ£¬Î¥·´ÁËÔ¼Êø¹æ¶¨µÈµÈ¡£ÔÚÕâÑùµÄÇé¿öÏ£¬Ò²¿ÉÒÔ´¦ÀíoracleµÄ¸÷ÖÖÀýÍ⣬ÒòΪ·ÇÔ¤¶¨ÒåÀýÍâÓõIJ»¶à£¬ÕâÀïÎҾͲ»¾ÙÀýÁË¡£ ´¦Àí×Ô¶¨ÒåÀýÍâ

Ô¤¶¨ÒåÀýÍâºÍ×Ô¶¨ÒåÀýÍâ¶¼ÊÇÓëoracle´íÎóÏà¹ØµÄ£¬²¢ÇÒ³öÏÖµÄoracle´íÎó»áÒþº¬µÄ´¥·¢ÏàÓ¦µÄÀýÍ⣻¶ø×Ô¶¨ÒåÀýÍâÓëoracle´íÎóûÓÐÈκιØÁª£¬ËüÊÇÓÉ¿ª·¢ÈËÔ±ÎªÌØ¶¨Çé¿öËù¶¨ÒåµÄÀýÍâ.

ÎÊÌ⣺Çë±àдһ¸öpl/sql¿é£¬½ÓÊÕÒ»¸ö¹ÍÔ±µÄ±àºÅ£¬²¢¸ø¸Ã¹ÍÔ±¹¤×ÊÔö¼Ó1000Ôª£¬Èç¹û¸Ã¹ÍÔ±²»´æÔÚ£¬ÇëÌáʾ¡£ Sql´úÂë

1. --×Ô¶¨ÒåÀýÍâ

2. create or replace procedure ex_test(spNo number) 3. is 4. begin

5. --¸üÐÂÓû§sal

6. update emp set sal=sal+1000 where empno=spNo; 7. end; 8. /

ÔËÐУ¬¸Ã¹ý³Ì±»³É¹¦´´½¨¡£ SQL> exec ex_test(56); PL/SQL¹ý³Ì±»³É¹¦Íê³É

ÕâÀ±àºÅΪ56ÊDz»´æÔڵ쬏ղŵı¨Òì³£ÁË£¬ÎªÊ²Ã´ÏÖÔÚ²»±¨Òì³£ÄØ£¿ ÒòΪ¸Õ²ÅµÄÊÇselectÓï¾ä

Ôõô½â¾öÕâ¸öÎÊÌâÄØ£¿ Ð޸ĴúÂ룬ÈçÏ£º Sql´úÂë

1. --×Ô¶¨ÒåÀýÍâ

2. create or replace procedure ex_test(spNo number) 3. is

4. --¶¨ÒåÒ»¸öÀýÍâ 5. myex exception; 6. begin

7. --¸üÐÂÓû§sal

8. update emp set sal=sal+1000 where empno=spNo; 9. --sql%notfoundÕâÊDZíʾûÓÐupdate 10.--raise myex;´¥·¢myex 11.if sql%notfound then 12.raise myex; 13.end if; 14.exception

15.when myex then

16.dbms_output.put_line('ûÓиüÐÂÈκÎÓû§')£» 17.end; 18./

ÏÖÔÚÔÙ²âÊÔÒ»´Î£º

SQL> exec ex_test(56); ûÓиüÐÂÈκÎÓû§

¶þÊ®¶þ£ºoracleµÄÊÓͼ

oracleµÄÊÓͼ

½éÉÜ

ÊÓͼÊÇÒ»¸öÐéÄâ±í£¬ÆäÄÚÈÝÓɲéѯ¶¨Òå£¬Í¬ÕæÊµµÄ±íÒ»Ñù£¬ÊÓͼ°üº¬Ò»ÏµÁдøÓÐÃû³ÆµÄÁкÍÐÐÊý¾Ý¡£µ«ÊÇ£¬ÊÓͼ²¢²»ÔÚÊý¾Ý¿âÖÐÒÔ´æ´¢µÄÊý¾ÝÖµ¼¯ÐÎʽ´æÔÚ¡£ÐкÍÁÐÊý¾ÝÀ´×ÔÓɶ¨ÒåÊÓͼµÄ²éѯËùÒýÓÃµÄ±í£¬²¢ÇÒÔÚÒýÓÃÊÓͼʱ¶¯Ì¬Éú³É¡££¨ÊÓͼ²»ÊÇÕæÊµ´æÔÚ´ÅÅÌÉϵģ©

¿´Í¼£º

ÊÓͼÓë±íµÄÇø±ð ÊÓͼÓë±íµÄÇø±ð

1.±íÐèÒªÕ¼ÓôÅÅ̿ռ䣬ÊÓͼ²»ÐèÒª

2.ÊÓͼ²»ÄÜÌí¼ÓË÷Òý£¨ËùÒÔ²éѯËÙ¶ÈÂÔ΢Âýµã£© 3.ʹÓÃÊÓͼ¿ÉÒÔ¼ò»¯£¬¸´ÔÓ²éѯ ±ÈÈ磺ѧÉúÑ¡¿Îϵͳ

4.ÊÓͼµÄʹÓÃÀûÓÚÌá¸ß°²È«ÐÔ ±ÈÈ磺²»Í¬Óû§²é¿´²»Í¬ÊÓͼ

´´½¨/ÐÞ¸ÄÊÓͼ ´´½¨ÊÓͼ

create view ÊÓͼÃû as select Óï¾ä [with read only] ´´½¨»òÐÞ¸ÄÊÓͼ

create or replace view ÊÓͼÃû as select Óï¾ä [with read only] ɾ³ýÊÓͼ

drop view ÊÓͼÃû

µ±±í½á¹¹¹úÓ︴ÔÓ£¬ÇëʹÓÃÊÓͼ°É£¡

--´´½¨ÊÓͼ£¬°Ñemp±íµÄsal<1000µÄ¹ÍÔ±Ó³Éäµ½¸ÃÊÓͼ£¨view£© Sql´úÂë

1. create view myview as select * from emp where sal<1000;

--Ϊ¼ò»¯²Ù×÷£¬ÓÃÒ»¸öÊÓͼ½â¾ö ÏÔʾ¹ÍÔ±±àºÅ£¬ÐÕÃûºÍ²¿ÃÅÃû³Æ Sql´úÂë

1. create view myview2 as select emp.empno,emp.ename,dept.dname from emp,dept where emp.deptno=dept.deptno; ÊÓͼ֮¼äÒ²¿ÉÒÔ×öÁªºÏ²éѯ