OracleÊý¾Ý¿â×Ô¶¨ÒåÒì³£µÄʹÓ÷½·¨
À´Ô´£º²»Ïê ×÷ÕߣºØýÃû ʱ¼ä£º2009-9-6 17:14:04 Tags£º Orac ʹÓ÷½·¨
ÐèÇó£ºÒµÎñÂß¼ÔÚ´¦ÀíÊý¾Ýʱ£¬ÐèÒª·µ»ØMessage²¢×èÖ¹³ÌÐòµÄ¼ÌÐøÔËÐС£µ«ÊÇ£¬ÔÚ´æ´¢¹ý³ÌʹÓÃOracleÊý¾Ý¿âµÄRaise¸ù±¾ÎÞ·¨Âú×ãÏÖÔÚµÄÒªÇó¡£
½â¾ö·½·¨£º
ʹÓÃRAISE_APPLICATION_ERROR
RAISE_APPLICATION_ERROR ( error_number_in IN NUMBER, error_msg_in IN VARCHAR2);
error_number: ×Ô¶¨ÒåµÄ´íÎó±àºÅ¡£
error_msg£º×Ô¶¨ÒåµÄ´íÎóÄÚÈÝ¡£
ÔÚʹÓõĹý³ÌÖУ¬Äã¿ÉÄÜ»áÓöµ½ÁËÏÂÃæµÄÎÊÌâ¡£
ORA-21000: error number argument to raise_application_error of [xxxx] is out of range
³öÏÖ´Ë´íÎóµÄÔÒòÈçÏ£º
ÔÚ´æ´¢¹ý³ÌÖж¨ÒåµÄ´íÎó´úÂëNumberÆäʵ²¢²»ÔÚOracleÊý¾Ý¿âËùÔÊÐíµÄ·¶Î§Ö®ÄÚ¡£ÒòΪOracleÊý¾Ý¿âÔÊÐí×Ô¶¨ÒåµÄ´íÎó´úÂëµÄ·¶Î§ÊÇ-20000 -- -20999
ÕâÑù£¬¾ÍÔÚJava¶Ë¿ÉÒÔͨ¹ýSQLExceptionÀ´²¶»ñÒì³£¡£
ËäȻͨ¹ýSQLException.getMessage()¿ÉÒÔ²¶»ñµ½Òì³£µÄÄÚÈÝ£¬µ«ÊÇÕâЩÄÚÈݶÔÓÚ¿ª·¢±È½ÏÓÐÓ᣶ÔÓÚ¿Í»§À´Ëµ£¬²¢²»ÓѺã¬Ò²Ã»Óжà´óÒâÒå¡£
ͨ¹ýSQLException.getErrorCode()¿ÉÒÔ²¶»ñµ½×Ô¶¨ÒåµÄÒì³£´íÎó±àºÅ¡£È»ºóÎÒÃǾͿÉÒÔͨ¹ýÕâ¸ö´íÎó±àºÅ£¬×Ô¶¨ÒåÏàÓ¦µÄMessageÄÚÈÝ£¬·µ»Ø¸ø¿Í»§¡£
ÏÂÃæÎÒÃÇÀ´½éÉÜÁíÒ»ÖÖ½â¾ö·½·¨£º
ͨ¹ý´æ´¢¹ý³Ì·µ»ØÖµ£¬Äã¿ÉÒÔÖ±½Ó°Ñ´íÎóMessage¶¨ÒåÔÚ·µ»ØÖµÖм䡣ÔÚJava¶Ë½âÎöºó£¬¿ÉÒÔÖ±½ÓÈ¡µÃMessage´úÂë¡£
ʾÀýÈçÏ£º
If condition then
p_result := 'ERR:MSG2061';
end if;
if substr(p_result, 1, 3) = 'ERR' then
ROLLBACK;
else
p_result = 'OK';
end if;
Java£ºÂÔÈ¥ÖмäµÄµ÷Óô洢¹ý³ÌµÄ²½Öè
if(result != null && result.startsWith("ERR:"))
// ´ÓresultÖнâÎö³öMessage_id£¬ÏÔʾMessageµ½Ç°Ì¨
Ïà¹ØÎĵµ£º
select myFunc(²ÎÊý1,²ÎÊý2..) to dual; --¿ÉÒÔÖ´ÐÐһЩҵÎñÂß¼
Ò»:OracleÖеĺ¯ÊýÓë´æ´¢¹ý³ÌµÄÇø±ð:
A:º¯Êý±ØÐëÓзµ»ØÖµ,¶ø¹ý³ÌûÓÐ.
B:º¯Êý¿ÉÒÔµ¥¶ÀÖ´ÐÐ.¶ø¹ý³Ì±ØÐëͨ¹ýexecuteÖ´ÐÐ.
C:º¯Êý¿ÉÒÔǶÈëµ½SQLÓï¾äÖÐÖ´ÐÐ.¶ø¹ý³Ì²»ÐÐ.
ÆäʵÎÒÃÇ¿ÉÒÔ½«±È½Ï¸´ÔӵIJéѯд³Éº¯Êý.È»ºóµ½´æ´¢¹ý³ÌÖÐÈ¥µ÷ÓÃÕâЩº¯Êý.
¶þ:È ......
SQLServerºÍOracleÊÇ´ó¼Ò¾³£Óõ½µÄÊý¾Ý¿â£¬Ôڴ˸Ðл×÷Õß×ܽá³öÕâЩ³£Óú¯ÊýÒÔ¹©´ó¼Ò²Î¿¼¡£
Êýѧº¯Êý£º
¡¡1.¾ø¶ÔÖµ
¡¡¡¡ S:SELECT abs(-1) value
¡¡¡¡ O:SELECT abs(-1) value from dual
2.È¡Õû(´ó)
¡¡¡¡ S:SELECT ceiling(-1.001) value
¡¡¡¡ O:SELECT ceil(-1.001) value from dual
3.È¡Õû£¨Ð¡£© ......
¾ÍÊÇÓÉÆÕͨ×Ö·û£¨ÀýÈç×Ö·ûaµ½z£©ÒÔ¼°ÌØÊâ×Ö·û£¨³ÆÎªÔª×Ö·û£©×é³ÉµÄÎÄ×Öģʽ¡£¸ÃģʽÃèÊöÔÚ²éÕÒÎÄ×ÖÖ÷Ìåʱ´ýÆ¥ÅäµÄÒ»¸ö»ò¶à¸ö×Ö·û´®¡£ÕýÔò±í´ïʽ×÷Ϊһ¸öÄ£°å£¬½«Ä³¸ö×Ö·ûģʽÓëËùËÑË÷µÄ×Ö·û´®½øÐÐÆ¥Åä¡£
±¾ÎÄÏêϸµØÁгöÁËÄÜÔÚÕýÔò±í´ïʽÖÐʹÓã¬ÒÔÆ¥ÅäÎı¾µÄ¸÷ÖÖ×Ö·û¡£µ±ÄãÐèÒª½âÊÍÒ»¸öÏÖÓеÄÕýÔò±í´ïʽʱ£¬¿ÉÒÔ×÷Ϊһ¸ö¿ ......
Ò»Ö±Ìýµ½µÄ¶¼ÊÇ˵¾¡Á¿ÓÃexists²»ÒªÓÃin£¬ÒòΪexistsÖ»ÅжϴæÔÚ¶øinÐèÒª¶Ô±ÈÖµ£¬ËùÒÔexists±È½Ï¿ì£¬µ«¿´ÁË¿´ÍøÉϵÄһЩ¶«Î÷²Å·¢ÏÖ¸ù±¾²»ÊÇÕâô»ØÊ¡£
ÏÂÃæÕâ¶ÎÊdzµÄ
Select * from T1 where x in ( select y from T2 )
Ö´ÐеĹý³ÌÏ൱ÓÚ:
select *
......