怎么没人理我?自己up!刚才我在WEBLOGIC7.X中用CLOB倒是可以了,但JBOSS3.X中还是不行,是JBOSS不支持还是我什么地方设置的不对?(我已经把JBOSS中对ORACLE的数据类型映射改成CLOB的了,但还是不对。)
顺便说一下,我原来有个content字段是用varchar2(4000)的,但发觉如果这个字段内容的长度大于一定值但还没有超过4000时会在Entity Bean的setContent()方法处出错(不论是JBOSS或WEBLOGIC中,不知是不是有什么地方的配置有问题),所以才想用CLOB来替换原来的varchar2类型。
而且对CLOB类型的用法还不是很清楚,求各位大哥大姐救我!
顺便说一下,我原来有个content字段是用varchar2(4000)的,但发觉如果这个字段内容的长度大于一定值但还没有超过4000时会在Entity Bean的setContent()方法处出错(不论是JBOSS或WEBLOGIC中,不知是不是有什么地方的配置有问题),所以才想用CLOB来替换原来的varchar2类型。
而且对CLOB类型的用法还不是很清楚,求各位大哥大姐救我!
解决方案 »
- weblogic ejb3报错
- UID是Oracle的保留字???????
- oop与soa的区别
- 求指教!
- 请教 java3d的applet发布,出现 java.lang.NoClassDefFoundError: javax/media/j3d/Node 异常
- JCA客户端
- WebLogic 9.0 中部署CMP的问题
- 有没有人使用Grails-0.2
- 在Linux操作系统中如何使用Java解压缩rar的文件
- hibernate报错 : Table '我使用的数据库.all_sequences' doesn't exist. 好冷门的问题,估计这辈子都找不到答案
- 寻求高手帮助:jsp怎样调用会话bean
- 有关ejb字段的问题
StringBuffer sb = new StringBuffer(1024);
Reader instream = null;
try{
instream = c.getCharacterStream();
char[] buffer = new char[(int)c.length()];
int length = 0;
while ((length = instream.read(buffer)) != -1){
sb.append(buffer);
}
}
catch(Exception ex){
ex.printStackTrace();
}
finally{
try{
if(instream != null) instream.close();
}
catch(Exception dx){
instream = null;
}
return sb.toString();
}
}
try {
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("SELECT col_blob FROM mysql_all_table");
if (rs.next()) {
// Get the BLOB from the result set
Blob blob = rs.getBlob("col_blob");
// Get the number bytes in the BLOB
long blobLength = blob.length();
// Get bytes from the BLOB in a byte array
int pos = 1; // position is 1-based
int len = 10;
byte[] bytes = blob.getBytes(pos, len);
// Get bytes from the BLOB using a stream
InputStream is = blob.getBinaryStream();
int b = is.read();
}
} catch (IOException e) {
} catch (SQLException e) {
}
or description=news1.getSubString((long)1,(int)news1.length());
以下是部分代码:
sql="insert into drug (title,keyword,category,picture,pic_memo,content,station,grid,inputdate) values('"+title+"','"+keyword+"','"+arry+"','"+picture+"','"+pic_memo+"',empty_clob(),'"+station+"','"+grid+"',sysdate+"+hours+")";
try
{ conn=ConnectionManagerFactory.getConnectionManager().getConnection("jdbc:oracle:thin:@localhost:1521:oracle1");
conn.setAutoCommit(false);
stmt=conn.createStatement();
stmt.executeUpdate(sql);
//取出最大的ID,既刚刚插入记录的ID
sql="select max(id) as maxid from drug";
rs=stmt.executeQuery(sql);
while (rs.next())
{
maxid=rs.getString("maxid");
}
rs.close();
//将CLOB字段类型的数据插入到数据库中
sql="select content from drug where id='"+maxid+"' for update ";
rs=stmt.executeQuery(sql);
oracle.sql.CLOB clobtt=null;
while(rs.next())
{
clobtt = (oracle.sql.CLOB)rs.getClob(1);
}
java.io.Writer wr = clobtt.getCharacterOutputStream();
wr.write(content);
wr.flush();
wr.close();
rs.close();
conn.commit();