Oracle数据库中有个clob字段,事先执行了插入empty_clob()值,但是我在调用:
PreparedStatement st = conn.prepareStatement("SELECT content FROM topic WHERE tid=? FOR UPDATE");
st.setInt(1,tid);
ResultSet rs = st.executeQuery();
rs.next();rs.next()返回的是一个false。。
但是我在sqlplus里执行上面的SELECT查询语句,能得到的结果啊!!
在线盼高人解答!
PreparedStatement st = conn.prepareStatement("SELECT content FROM topic WHERE tid=? FOR UPDATE");
st.setInt(1,tid);
ResultSet rs = st.executeQuery();
rs.next();rs.next()返回的是一个false。。
但是我在sqlplus里执行上面的SELECT查询语句,能得到的结果啊!!
在线盼高人解答!
Statement stmt = this.getStatement();
if(stmt == null)return;
//先插入一个值到数据表中,其中IMPORTDATA是clob类型,先插入一个 //empty_clob()
int n = 0;
StringBuffer strSql = new StringBuffer();
strSql.append("insert into TXTFILEIMPORT(IMPORTDATA,DATADATE,DATAFILENAME) values")
.append("(" + "empty_clob()" + ",To_Date('" + this.getFormat().format(date)+"','yyyy-mm-dd'),'" + fileName + "')");
log.info(strSql.toString());
try {
n = stmt.executeUpdate(strSql.toString());
} catch (SQLException e) {
log.error(e);
return;
}
if(n <= 0) {
log.error("insert failed!!!");
return;
}
//更新数据表中clob的值
strSql.delete(0, strSql.length());
strSql.append("select importData from txtFileImport where id = " + n1 + " for update");
try {
rs = stmt.executeQuery(strSql.toString());
if(rs.next()) {
oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob("importData");
Writer outStream = clob.setCharacterStream(0);
char[] c = str.toCharArray();
try {
outStream.write(c, 0, c.length);
outStream.flush();
outStream.close();
} catch (IOException e) {
log.error("The error is: " + e );
log.error("import txt file data fail");
return;
}
conn.commit();
rs.close();
stmt.close();
conn.close();
}
} catch (SQLException e) {
log.error("The error is: " + e );
log.error("import txt file data fail");
return;
} finally {
rs = null;
stmt = null;
conn = null;
}
log.info("Data import successful!");
}
搂主用setString()试试插入60000个字节以上的内容看看