ºìÁªLinuxÃÅ»§
Linux°ïÖú

Oracle´æ´¢¹ý³ÌµÄ¼¸µã¾­Ñé

·¢²¼Ê±¼ä:2008-03-03 00:01:57À´Ô´:ºìÁª×÷Õß:lrfz008
1¡¢Ð´Oracle´æ´¢¹ý³Ìʱ×îºÃ²»ÒªÔÚÆäÖÐдCommitÓï¾ä¡£

Ò»°ãµ÷ÓóÌÐò»á×Ô¶¯CommitÊý¾Ý£¬±ÈÈçÓÃNHibernateµ÷ÓõÄʱºò£¬NHibernate¾Í»á×Ô¶¯CommitÊý¾Ý¡£Èç¹ûдÁË£¬»áÔì³ÉNHibernateµ÷ÓÃÍê´æ´¢¹ý³ÌÖ®ºóÅ׳ö´íÎó¡£

2¡¢ÖØÊÓCountµÄÌØÊâ±È½Ï×÷Óá£

ÔÚÒ»¸öSelectÓï¾äÖУ¬ÓÃCount¶Ô²»Í¬µÄ×ֶνøÐÐͳ¼Æ£¬Èç¹ûijÐÐÊý¾ÝÖб»Í³¼Æ×Ö¶ÎֵΪnull£¬²»»á¼ÆÈë¸Ã×Ö¶Îͳ¼ÆÖµ¡£ÀûÓÃÕâÒ»µã¿ÉÒÔ½øÐжà±í¹ØÁªÍ³¼Æ£¬±È½ÏÊý¾ÝµÄÒ»ÖÂÐÔ¡£

ÀýÈ磺

Select Count(dmc.id) dmcCnt, Count(dmp.id) dmpCnt,

Count(Case dmp.type When 1 Then 1 Else null End) dmp2, Count(dmt.id) dmtCnt

Into i_Count1, i_Count2, i_Count3, i_Count4

From dmc

left join dmp on dmp.id = dmc.dmpid

and dmp.procdoctimestamp = dmc.procdoctimestamp

left join dmt on dmt.dmpid = dmp.id

3¡¢Í¨¹ý¹ØÁªÊý¾Ý¸üÐÂÒ»¸ö±íʱ£¬Òª×¢Òâ¹ØÁªÊý¾ÝµÄΨһÐÔ¡£

ÀýÈ磺

update (

select dmu.cu, dmu.lmt,

dmcl.cu cu1, dmcl.lmt lmt1

from dmu, dmcl, dmp

where dmu.id = dmp.dmuid

and dmcl.dmpid = dmproc.id

and dmcl.id = dmu.dmclid

)

Set cu = cu1,

lmt = lmt1;

´ËÓï¾äÖеÄdmu±íÖбØÐëÒªÓÐdmcl±íµÄÖ÷¹Ø¼ü×ֶβſÉÒÔΨһȷ¶¨cu1ºÍlmt1µÄÖµ£¬·ñÔòOracle»áÈÏΪÄãʹÓöàÌõÊý¾Ý¸üÐÂÒ»ÌõÊý¾Ý£¬ÄÇÑùÊDz»ÔÊÐíµÄ¡£ÓÐһЩÅóÓÑʹÓÃÒ»¸ö±íµÄÊý¾Ý¸üÐÂÁíÒ»¸ö±íµÄÊý¾Ýʧ°Ü£¨ora-01779£©³£³£ÊÇÕâ¸öÔ­Òò¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ