如题所述
ããclobç±»åï¼ä½å¯¹äºè¿ä¸ªç±»åå¤çèµ·æ¥è¿æ¯æ¯è¾éº»ç¦çï¼varchar2é¿åº¦ä¸º4000bytesï¼å¦ævarchar2è½æ»¡è¶³æ¥¼ä¸»çéæ±ï¼å»ºè®®ä½¿ç¨varchar2ï¼ä¸é¢æä¾äºå¨Java ä¸è¯»åclobç±»åçæ¹å¼ï¼æ主è¦è®²çæ¯JDBCçæä½ï¼Hibernateç®åä¸è®²ï¼æä½è¿ä¸ªClobå主è¦å为æå
¥åè·å俩个æä½ï¼
ãã1ãJavaç¨åºæå ¥Clobå¼å°Oracleæ°æ®åºè¡¨ä¸ï¼
ããString clob= "è¿é主è¦æ¯è¦æå ¥å°è¡¨ä¸çå¼";//åé¢å ·ä½æ°æ®åºè¿æ¥ä»£ç è¿éçç¥ï¼ç´æ¥è¿æ£é¢String sql = "insert into clob_test(id,str) values (1,?)";PreparedStatement stmt = conn.prepareStatement(sql);// å°clob转ææµå½¢å¼
ããReader clobReader = new StringReader(clob);stmt.setCharacterStream(1,clobReader,clob.length());// æ¿æ¢sqlè¯å¥ä¸çï¼
ããstmt.executeUpdate();
ãã2ã读åClobåçå¼
ããString sql = "select str from clob_test where id=1";PreparedStatement stmt = conn.prepareStatement(sql);ResultSet rs = stmt.executeQuery();
ãã//æåè·å¾çç»æ
ããString resultClob;
ããif(rs.next()){
ãã//å¯¼å ¥oracle.sql.CLOBå ï¼æè ç´æ¥å¼ç¨è¿ä¸ªå oracle.sql.CLOB clob = rs.getClob("str");Reader rd= clob.getCharacterStream();// å¾å°æµBufferedReader br = new BufferedReader(rd);String s = br.readLine();
ããStringBuffer sb= new StringBuffer();
ããwhile (s != null) {
ãã// 循ç¯èµå¼
ããsb.append(s);
ããs = br.readLine();
ãã}
ããclobResult = sb.toString();
ãã}
ãã1ãJavaç¨åºæå ¥Clobå¼å°Oracleæ°æ®åºè¡¨ä¸ï¼
ããString clob= "è¿é主è¦æ¯è¦æå ¥å°è¡¨ä¸çå¼";//åé¢å ·ä½æ°æ®åºè¿æ¥ä»£ç è¿éçç¥ï¼ç´æ¥è¿æ£é¢String sql = "insert into clob_test(id,str) values (1,?)";PreparedStatement stmt = conn.prepareStatement(sql);// å°clob转ææµå½¢å¼
ããReader clobReader = new StringReader(clob);stmt.setCharacterStream(1,clobReader,clob.length());// æ¿æ¢sqlè¯å¥ä¸çï¼
ããstmt.executeUpdate();
ãã2ã读åClobåçå¼
ããString sql = "select str from clob_test where id=1";PreparedStatement stmt = conn.prepareStatement(sql);ResultSet rs = stmt.executeQuery();
ãã//æåè·å¾çç»æ
ããString resultClob;
ããif(rs.next()){
ãã//å¯¼å ¥oracle.sql.CLOBå ï¼æè ç´æ¥å¼ç¨è¿ä¸ªå oracle.sql.CLOB clob = rs.getClob("str");Reader rd= clob.getCharacterStream();// å¾å°æµBufferedReader br = new BufferedReader(rd);String s = br.readLine();
ããStringBuffer sb= new StringBuffer();
ããwhile (s != null) {
ãã// 循ç¯èµå¼
ããsb.append(s);
ããs = br.readLine();
ãã}
ããclobResult = sb.toString();
ãã}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2016-12-11
varchar就可以,可以拆成几个列存储。