J2EE²Ù×÷OracleµÄclobÀàÐÍ×Ö¶Î
	
    
    
	
2008-09-02
J2EE²Ù×÷OracleµÄclobÀàÐÍ×Ö¶Î
¹Ø¼ü×Ö: java 
OracleÖУ¬Varchar2Ö§³ÖµÄ×î´ó×Ö½ÚÊýΪ4KB£¬ËùÒÔ¶ÔÓÚijЩ³¤×Ö·û´®µÄ´¦Àí£¬ÎÒÃÇÐèÒªÓÃCLOBÀàÐ͵Ä×ֶΣ¬CLOB×Ö¶Î×î´óÖ§³Ö4GB¡£ 
»¹ÓÐÆäËû¼¸ÖÖÀàÐÍ£º 
blob:¶þ½øÖÆ,Èç¹ûexe,zip 
clob:µ¥×Ö½ÚÂë,±ÈÈçÒ»°ãµÄÎı¾Îļþ. 
nlob:¶à×Ö½ÚÂë,ÈçUTF¸ñʽµÄÎļþ. 
ÒÔϾÍÊǶÔCLOG×ֶεIJÙ×÷·½·¨£¬ÔÚÎÒÃǵÄÏîÄ¿ÖаïÖúÎĵµ²¿·ÖÓõ½¡£ 
1¡¢Ê×ÏÈÊÇдÈë 
/* ÒÔϱíPF_HELP_CONTENTÖеÄHCONTENT×Ö¶ÎʱCLOBÀàÐ굀 */
// ͨ¹ýÐòÁÐÆ÷Éú³É°ïÖúID 
Map map = Query.getMap("Select TO_CHAR(SEQ_HID.nextval) HID from DUAL "); 
hid = String.valueOf(map.get("HID")); 
//²åÈëÒ»ÌõÊý¾Ý£¬×¢ÒâCLOB×ֶΣ¬ÐèÒªÏȲåÈëÒ»¸ö¿ÕµÄclobÀàÐÍ empty_clob()£¬È»ºóÔÙµ¥¶À¸üÐÂclob×Ö¶Î 
sql = "Insert INTO PF_HELP_CONTENT(HID,HCONTENT) VALUES (?,empty_clob())  "; 
try
{           
     //Ö´ÐвåÈë 
     rtn = DbUtils.executeUpdate(sql,hid);     
     /* ²åÈë³É¹¦ºó£¬ÐÞ¸ÄHCONTENT×Ö¶ÎÄÚÈÝ */
     //È¡µÃÊý¾Ý¿âÁ¬½Ó                          
     Connection conn = DbUtils.getConnection(); 
     //ÊÖ¶¯Ìá½» 
     conn.setAutoCommit(false); 
     //¶¨ÒåResultSet ºÍ Clob ±äÁ¿ 
     ResultSet rs = null; 
     oracle.sql.CLOB clob = null; 
     //¸üÐÂSQL 
     String sqlclob = "Select HCONTENT from PF_HELP_CONTENT Where HID=? FOR Update "; 
     java.sql.PreparedStatement pstmt = conn.prepareStatement(sqlclob); 
     //hidÊÇvarchar2ÀàÐ͵ģ¬ËùÒÔÓÃsetString 
     pstmt.setString(1,hid); 
     //Ö´ÐÐupdateÓï¾ä 
     rs= pstmt.executeQuery(); 
     if(rs.next()) 
     { 
        //È¡µÃ¸Õ²ÅµÄHCONTENTµÄÄÚÈÝ£¬Ò²¾ÍÊǸղÅÌí¼ÓµÄempty_clob() 
        clob = (oracle.sql.CLOB)rs.getClob(1); 
     } 
     //ÐèÒªÓÃclob.getCharacterOutputStream()Á÷·½Ê½Êä³ö 
     Writer write = clob.getCharacterOutputStream(); 
     //дÈë¾ßÌåÄÚÈÝ£¬helpform.getHContent() ´æµÄÊǰïÖúµÄÄÚÈÝ 
     write.write(helpform.getHContent()); 
     write.flush(); 
     write.close(); 
     rs.close(); 
     //Ìá½» 
     conn.commit(); 
     conn.close(); 
} 
catch(Exception ex) 
{ 
    //......... 
}
2¡¢ÐÞ¸ÄCLOB
    
     
	
	
    
    
	Ïà¹ØÎĵµ£º
        
    
    ÏȽ¨ÁËÕŲâÊÔ±í
SQL> select * from test_a;
ID                   PLAYNAME                  SCORE
-------------------- --- ......
	
    
        
    
    OracleÊý¾Ý¿âÓÐÈýÖÖ±ê×¼µÄ±¸·Ý·½·¨£¬ËüÃÇ·Ö±ðÊǵ¼³ö£¯µ¼È루EXP/IMP£©¡¢Èȱ¸·ÝºÍÀ䱸·Ý¡£µ¼³ö±¸¼þÊÇÒ»ÖÖÂß¼±¸·Ý£¬À䱸·ÝºÍÈȱ¸·ÝÊÇÎïÀí±¸·Ý¡£
Ò»¡¢ µ¼³ö£¯µ¼È루Export£¯Import£©
ÀûÓÃExport¿É½«Êý¾Ý´ÓÊý¾Ý¿âÖÐÌáÈ¡³öÀ´£¬ÀûÓÃImportÔò¿É½«ÌáÈ¡³öÀ´µÄÊý¾ÝËͻص½OracleÊý¾Ý¿âÖÐÈ¥¡£
£±¡¢ ¼òµ¥µ¼³öÊý¾Ý£¨Export£©ºÍµ¼ÈëÊý¾ ......
	
    
        
    
    Õª×ÔÐìÓñ½ðµÄ<<sqlÐÔÄܵĵ÷Õû-×ܽá>>
ÈçºÎʹÓÃhints: 
HintsÖ»Ó¦ÓÃÔÚËüÃÇËùÔÚsqlÓï¾ä¿é(statement block£¬ÓÉselect¡¢update¡¢delete¹Ø¼ü×Ö±êʶ)ÉÏ£¬¶ÔÆäËüSQLÓï¾ä»òÓï¾äµÄÆäËü²¿·ÖûÓÐÓ°Ïì¡£È磺¶ÔÓÚʹÓÃunion²Ù×÷µÄ2¸ösqlÓï¾ä£¬Èç¹ûÖ»ÔÚÒ»¸ösqlÓï¾äÉÏÓÐhints£¬Ôò¸Ãhints²»»áÓ°ÏìÁíÒ»¸ösqlÓï¾ä¡£ 
ÎÒÃÇ¿ÉÒÔÊ ......
	
    
        
    
    oracleµÄͬÒå´Ê×ܽ᣺
¡¡¡¡´Ó×ÖÃæÉÏÀí½â¾ÍÊDZðÃûµÄÒâ˼£¬ºÍÊÔͼµÄ¹¦ÄÜÀàËÆ¡£¾ÍÊÇÒ»ÖÖÓ³Éä¹ØÏµ¡£
¡¡¡¡1.´´½¨Í¬Òå´ÊÓï¾ä£º
¡¡¡¡create public synonym table_name for user.table_name;
¡¡¡¡ÆäÖеÚÒ»¸öuser_tableºÍµÚ¶þ¸öuser_table¿ÉÒÔ²»Ò»Ñù¡£
¡¡¡¡´ËÍâÈç¹ûÒª´´½¨Ò»¸öÔ¶³ÌµÄÊý¾Ý¿âÉϵÄijÕűí ......
	
    
        
    
    ×î½üÔÚʹÓÃOracle×öÎļþÉÏ´«£¬ÒªÇó½«ÎļþÊý¾Ý±£´æµ½Êý¾Ý¿âÖС£OracleÌṩÁËBlobÓÃÀ´´æ´¢¶þ½øÖÆ´ó¶ÔÏóÊý¾Ý£¬¿ÉÊÇËüºÍJava.sqlÀïÃæµÄBlob²»¼æÈÝ£¬¾³£µ¼ÖÂBlob×Ö¶ÎÎÞ·¨Ëø¶¨»òÕß²Ù×÷ʧ°Ü¡£ÓÉÓÚÒÔǰûÓÐ×ö¹ýÕâÑùµÄÀý×Ó£¬ËùÒÔ»¨Á˲»ÉÙʱ¼ä²Å½â¾ö¡£
ÎÒʹÓõÄÊÇstruts2.1.8+spring2.5+hibernate3.2£¬ÏÂÃæÊÇÏà¹Ø´úÂ룺
springÅäÖÃ ......