Oracle
CLOB
Oracle 9i 及以前,最大4G字符数据 Oracle10g 最大4G*数据库块大小的字符数据
MySQL
LONGTEXT
最大长度为4,294,967,295或4GB(232–1)字符的TEXT列。LONGTEXT列的最大有效(允许的)长度取决于客户端/服务器协议中配置最大包大小和可用的内存。
LONGBLOB
最大长度为4,294,967,295或4GB(232–1)字节的BLOB列。LONGBLOB列的最大有效(允许的)长度取决于客户端/服务器协议中配置最大包大小和可用的内存。
既然你是从数据库取出CLOB字段,那么不用resultset那是用什么取出的。如果从数据库里面取出的是CLOB字段,为什么会变成String类型呢。
String转CLOB,下面是个例子
public class TestDB {
public static void main(String[] args) {
try {
/** Loading the driver*/
Class.forName("com.oracle.jdbc.Driver")
/** Getting Connection*/
Connection con = DriverManager.getConnection("jdbc:oracle://localhost:3306/test","test","test")
PreparedStatement pstmt = con.prepareStatement("insert into Emp(id,name,description)values(?,?,?)")
pstmt.setInt(1,5)
pstmt.setString(2,"Das")
// Create a big CLOB value...AND inserting as a CLOB
StringBuffer sb = new StringBuffer(400000)
sb.append("This is the Example of CLOB ..")
String clobValue = sb.toString()
pstmt.setString(3, clobValue)
int i= pstmt.executeUpdate()
System.out.println("Done Inserted")
pstmt.close()
con.close()
// Retrive CLOB values
Connection con = DriverManager.getConnection("jdbc:oracle://localhost:3306/test","test","test")
PreparedStatement pstmt = con.prepareStatement("select * from Emp where id=5")
ResultSet rs = pstmt.executeQuery()
Reader instream = null
int chunkSize
if(rs.next()){
String name = rs.getString("name")
java.sql.Clob clob = result.getClob("description")
StringBuffer sb1 = new StringBuffer()
chunkSize = ((oracle.sql.CLOB)clob).getChunkSize()
instream = clob.getCharacterStream()
BufferedReader in = new BufferedReader(instream)
String line = null
while ((line = in.readLine()) != null) {
sb1.append(line)
}
if(in != null){
in.close()
}
String clobdata = sb1.toString()// this is the clob data converted into string
}
} catch (Exception e) {
e.printStackTrace()
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)