Spring µ÷ÓÃOracle´æ´¢¹ý³ÌµÄ½á¹û¼¯
oracle ¶ÔÓڸ߼¶ÌØÐÔ×ÜÊÇÓëÖÚ²»Í¬(ÎÒ¼«Á¦ÌÖÑáÕâÒ»µã,Èç¹ûʹÓÃËüµÄ²úÆ·¾ÍÒª¶ÔÕâÖÖ²úÆ·½øÐÐÌØ¶¨µÄ±à³Ì,ÕâÒ²ÊÇÎÒ´Ó²»¿´ºÃweblogicÖ®ÀàµÄƽ̨µÄÔÒò),´ó¶ÔÏó´æÈ¡Ò»Òª¶¨ÓÃËü×Ô¼ºµÄLOB¶ÔÏó,ËùÐÒÎÒ»¹ÄÜͨ¹ýLONG RAWÀ´´úÌæ¡£ÒÔ±ãÄÜʹ³ÌÐò²»ÐèÒªÌØ¶¨µÄ±àÂë¡£µ«¶ÔÓÚ´æ´¢¹ý³Ì(ÎÒÊÇ˵·µ»Ø½á¹û¼¯µÄ´æ´¢¹ý³Ì),ÎÒ»¹Ã»ÓÐʲô·½·¨ÄÜÓÃÒ»¸öͨÓõijÌÐòÀ´´¦ÀíORACLE¡£Ì«¶àµÄ½Ì²Ä»òÎÄÕÂÔÚ½²´æ´¢¹ý³ÌµÄµ÷ÓÃÖ»ÊDz»¸ºÔðÈεؼòµ¥Ö´ÐÐһЩºÊý»òÎÞ½á¹û·µ»ØµÄ´æ´¢¹ý³Ì,ʹ´ó¶àÊý¶ÁÕ߸ù±¾²»ÖªµÀµ½µ×ÈçºÎµ÷Óô洢¹ý³ÌµÄ½á¹û¼¯¡£¶øÔÚSpringÖÐ,¸ù±¾¾ÍûÓÐÕæÕýÍêÈ«µØ½éÉܶԴ洢¹ý³ÌµÄ½á¹û¼¯µÄ´¦Àí,¸ü±ð˵ÏóoracleÕâÖÖ"ÌØ±ð"µÄ´æ´¢¹ý³ÌµÄ½á¹û¼¯´¦Àí¡£ÏÈÀ´¼òµ¥¿´Ò»ÏÂÎÒÃÇÈçºÎÔÚJDBCÖд¦Àí´æ´¢¹ý³ÌµÄ½á¹û¼¯µÄͨÓÃÁ÷³Ì:
¡¡¡¡1¡¢»ñÈ¡CallableStatementÓï¾ä:
CallableStatement cs = conn. prepareCall("{call spName(?,?,?)}");
¡¡¡¡2¡¢´«ÈëÊäÈë²ÎÊýºÍ×¢²áÊä³ö²ÎÊý
cs. setXXX(index,value);//ÊäÈë²ÎÊý
cs. registerOutParameter(index,type);//Êä³ö²ÎÊý
¡¡¡¡3¡¢Ö´Ðд洢¹ý³Ì:
cs.execute();
¡¡¡¡¶ÔÓÚÒ»¸ö´æÖî¹ý³Ì,Èç¹û·µ»ØµÄ½á¹ûÊÇÎÒÃÇÔ¤ÏÈÖªµÀµÄ,ÄÇô¿ÉÒÔ¸ù¾Ý´æ´¢¹ý³Ì¶¨ÒåµÄ˳ÐòÀ´½øÐд¦Àí(ÊÂʵÉÏÒ»°ã²»»áÕâÑù),µ«¶ÔÓÚ¸´ÔӵĶà½á¹û¼¯µÄ´¦Àí,ÈçºÎ¶¨ÒåÒ»¸öͨÓõÄÁ÷³Ì?ÎÒÃÇÏÈ¿´Ò»ÏÂJDBC±¾ÉíÄÜΪÎÒÃÇÌṩʲô?
¡¡¡¡Ò»¸ö´æ´¢¹ý³ÌÖ´Ðк󷵻صÄÊÇbooleanÐÍ:
boolean flag = callableStatement. execute();
¡¡¡¡Èç¹ûflagΪtrue,ÄÇô˵Ã÷·µ»ØÁËÒ»¸ö½á¹û¼¯(ResultSet)ÀàÐÍ,Äã¿ÉÒÔÓÃgetResultSet()µÃµ½µ±Ç°ÐÐËùÔڵĽá¹û,¶øÈç¹û·µ»ØÎªflase,˵Ã÷Ê²Ã´ÄØ?Èç¹ûÄã²»½øÐд¦Àí,ʲôҲ²»ÄÜ˵Ã÷,Ö»ÄÜ˵Ã÷µ±Ç°Ö¸Õë²»ÊÇResultSet,ÓпÉÄÜÊǸüмÆÊý(updateCount)Ò²¿ÉÄÜʲôҲûÓз´Ó¦
ÄÇôÈç¹ûµ±Ç°Ö¸ÕëΪflaseʱÈçºÎ´¦Àí?ÎÒÃÇÓ¦¸ÃÏÈgetUpdateCount();Èç¹û·µ»Ø-1,¼È²»Êǽá¹û¼¯,ÓÖ²»ÊǸüмÆÊýÁË¡£ËµÃ÷ûµÄ·µ»ØÁË¡£¶øÈç¹ûgetUpdateCount()·µ»Ø0»ò´óÓÚ0,Ôò˵Ã÷µ±Ç°Ö¸ÕëÊǸüмÆÊý(0µÄʱºòÓпÉÄÜÊÇDDLÖ¸Áî)¡£ÎÞÂÛÊÇ·µ»Ø½á¹û¼¯»òÊǸüмÆÊý,ÄÇôÔò¿ÉÄÜ»¹¼ÌÐøÓÐÆäËü·µ»Ø¡£Ö»ÓÐÔÚµ±Ç°Ö¸Ö¸ÕëgetResultSet()==null && getUpdateCount() == -1²Å˵Ã÷ûÓÐÔÙ¶àµÄ·µ»Ø¡£
¡¡¡¡´æ´¢¹ý³ÌµÄ·µ»ØºÍResultSetÀàËÆ,ÿ´Î´¦ÀíµÄ·µ»Ø½á¹ûÏ൱ÓÚÊÇResultSetµÄRow,Ö»²»¹ý´æ´¢¹ý³ÌµÄRow£¬×îÏÈÔÚµÚÒ»Ðжø²»ÊÇÏóResultSetÒªÏÈnext²Åµ½µÚÒ»ÐÐ,´æ´¢¹ý³ÌÏòÏÂÒÆ¶¯Ò»ÐÐÓÃgetMoreResults(),Ï൱ÓÚResultSetµÄnext()¡£Í¬ÑùËü·µ»Øb
Ïà¹ØÎĵµ£º
±¾ÏµÁÐÎÄÕµ¼º½
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Ò»)--αÁÐROWNUMʹÓü¼ÇÉ
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(¶þ)--±êÁ¿×Ó²éѯ
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Èý)--PackageµÄÓŵã
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(ËÄ)--ÅúÁ¿´¦Àí
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Îå)--µ÷Óô洢¹ý³Ì·µ»Ø½á¹û¼¯
[Oracle]¸ßЧµÄPL/SQL³ÌÐòÉè¼Æ(Áù)- ......
ÉùÃ÷£º
ÒÔϵÄÀý×Ó²»Ò»¶¨ÕýÈ·£¬Ö»ÊÇΪÁËÑÝʾ´ó¸ÅµÄÁ÷³Ì¡£
Ò»£ºÎÞ·µ»ØÖµµÄ´æ´¢¹ý³Ì
´æ´¢¹ý³ÌΪ£º
CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS
BEGIN
INSERT INTO HYQ.B_ID (I_ID,I_NAME) VALUES (PARA1, PARA2);
END TESTA;
È»ºóÄØ£¬ÔÚjavaÀïµ÷ÓÃʱ¾ÍÓÃÏÂÃæµÄ´ ......
update £ºµ¥±íµÄ¸üв»ÓÃ˵ÁË£¬Á½ÕßÒ»Ñù£¬Ö÷Ҫ˵˵¶à±íµÄ¸üÐÂ
Oracle> OracleµÄ¶à±í¸üÐÂÒªÇó±È½ÏÑϸñ£¬ËùÒÔÓеÄʱºò²»ÊǺܺÃд£¬ÎÒÃÇ¿ÉÒÔÊÔÊÔOracleµÄÓαê
&n ......
Êýѧº¯Êý
ÔÚoracle ÖÐdistinct¹Ø¼ü×Ö¿ÉÒÔÏÔʾÏàͬ¼Ç¼ֻÏÔʾһÌõ
¡¡¡¡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.È¡Õû£¨Ð¡£©
¡¡¡¡S:select floor(-1.001) value
......