oracle 为clob变量赋值

4ioopgfo  于 2022-11-22  发布在  Oracle
关注(0)|答案(4)|浏览(538)

让我们假设有一个变量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有一个类型为CLOB的变量valresponse,现在我想在其中设置一些伪值,该怎么做?

i5desfxk

i5desfxk1#

首先,初始化clob值,如下所示,并为其设置值(xml
如果您的数据库连接失败,请使用下面的语句:

sqyvllje

sqyvllje2#

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());
 }
rbl8hiat

rbl8hiat3#

您也可以尝试使用简单的方法创建Clob

Clob xmlClob = con.createClob();
sqxo8psd

sqxo8psd4#

定义一个类实现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>");

相关问题