假设有一个变量CLOB响应。 我如何在java中为这个clob变量赋值?
我这样做:
Clob clob=null;
clob.setString(0, "<test></test>");
第二行显示错误,说clob在这里只能为null。
更新 -
ValResponses valResponses=new ValResponses();
valResponses.setVraId(Long.parseLong("12"));
Clob clob = null;
//clob.setString(1, "<test></test>");
valResponses.setFullResponse(clob);
valResponses.setValReport(fileName);
看到有一个pojo ValResponses现在这个pojo有一个变量valresponse有类型CLOB,现在我想设置一些虚拟值,如何做到这一点,?
答案 0 :(得分:0)
首先,初始化clob值,如下面设置值(xml)
java.sql.Clob clobValue = oracle.sql.CLOB.createTemporary(dBconnection,false,oracle.sql.CLOB.DURATION_SESSION);
答案 1 :(得分:0)
您也可以尝试使用简单的方法来创建Clob
Clob xmlClob = con.createClob();
答案 2 :(得分:0)
从connection
对象获取它,然后将值设置为它。
OracleConnection conn; // initialize this first
CLOB clob = conn.CreateClob();
clob.setString(0, "<test></test>");
或者,另一种设置值的方法
Clob myClob = null;
if (rs.next()) { //rs is ResultSet object
myClob = rs.getClob(1);
System.out.println("Length of retrieved Clob: "+myClob.length());
}
答案 3 :(得分:0)
将类实现java.sql.Clob定义为:
public class MyClob implements java.sql.Clob {
final String value;
public MyClob(String value) { this.value = value; }
@Override public long length() { return value.length(); }
@Override public String getSubString(long pos, int length) {
return value.substring((int)pos, (int)pos + length);
}
@Override public Reader getCharacterStream() { return new StringReader(value); }
@Override public InputStream getAsciiStream() { return null; }
@Override public long position(String searchstr, long start) { return 0; }
@Override public long position(Clob searchstr, long start) { return 0; }
@Override public int setString(long pos, String str) { return 0; }
@Override public int setString(long pos, String str, int offset, int len) { return 0; }
@Override public OutputStream setAsciiStream(long pos) { return null; }
@Override public Writer setCharacterStream(long pos) { return null; }
@Override public void truncate(long len) { }
@Override public void free() { }
@Override public Reader getCharacterStream(long pos, long length) { return null; }
}
然后
Clob clob = new MyClob("<test></test>");