|
刚搞好,只能用过期的clob.getCharacterOutputStream();代码如下:
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection(dbUrl,dbUser,dbPwd);
stmt=con.createStatement();
con.setAutoCommit(false);
stmt.executeUpdate("insert into magazine (id,pubtime,title,content) " +
"values (magazine_code.nextval,sysdate,'"+title+"',empty_clob())");
rs=stmt.executeQuery("select content from magazine where id=1 for update");
rs.next();
CLOB clob=((OracleResultSet)rs).getCLOB("content");
Writer wr;
wr=clob.getCharacterOutputStream();
wr.write(content);
wr.flush();
wr.close();
con.commit();
con.setAutoCommit(true);
rs.close();
stmt.close();
con.close();
}
看了oracle11g的文档b28359_01中的jdbc部分,他给出的clob流写入代码有问题,在java编译时报错,代码如下:
java.io.Writer writer;
// read data into a character array
char[] data = {'0','1','2','3','4','5','6','7','8','9'};
// write the array of character data to a Clob
writer = ((CLOB)my_clob).setCharacterStream();
writer.write(data);
writer.flush();
writer.close();
...
其中writer = ((CLOB)my_clob).setCharacterStream();的writer是java.io.writer,clob是CharacterStream,不匹配,通不过编译,
不知最新版的java1.6和ojdbc6怎样做的,至少不要用过期的方法来实现.
|