簡體   English   中英

H2數據庫。 使用html值更新CLOB字段時出錯

[英]H2 database. Error update CLOB field with html value

我使用以下代碼更新CLOB字段。

final static String PAGE_BODY_UPDATE = "update BODYCONTENT set body = ? where bodycontentid = ?";

private static void updatePageContent(int pageID, String body) {
        Connection conn = getConnection();
        PreparedStatement st = conn.prepareStatement(PAGE_BODY_UPDATE);
        st.setInt(1, pageID);
        Clob myclob = conn.createClob();
        myclob.setString(1, body);
        st.setClob(2, myclob);
        st.executeUpdate();
}

但這會引發錯誤。

org.h2.jdbc.JdbcSQLException: Data conversion error converting "<html><head><META http-equiv=""Content-Type"" content=""text/html; charset=utf-8""></head></html>"; SQL statement:
update BODYCONTENT set body = ? where bodycontentid = ? [22018-196]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
    at org.h2.message.DbException.get(DbException.java:168)
    at org.h2.value.Value.convertTo(Value.java:996)
    at org.h2.value.ValueLobDb.convertTo(ValueLobDb.java:207)
    at org.h2.mvstore.db.MVPrimaryIndex.getKey(MVPrimaryIndex.java:351)
    at org.h2.mvstore.db.MVDelegateIndex.find(MVDelegateIndex.java:69)
    at org.h2.index.BaseIndex.find(BaseIndex.java:128)
    at org.h2.index.IndexCursor.find(IndexCursor.java:169)
    at org.h2.table.TableFilter.next(TableFilter.java:468)
    at org.h2.command.dml.Update.update(Update.java:102)
    at org.h2.command.CommandContainer.update(CommandContainer.java:101)
    at org.h2.command.Command.executeUpdate(Command.java:260)
    at org.h2.server.TcpServerThread.process(TcpServerThread.java:354)
    at org.h2.server.TcpServerThread.run(TcpServerThread.java:158)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NumberFormatException: For input string: "<html><head><META http-equiv="Content-Type" content="text/html; charset=utf-8"></head></html>"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Long.parseLong(Long.java:589)
    at java.lang.Long.parseLong(Long.java:631)
    at org.h2.value.Value.convertTo(Value.java:942)
    ... 12 more

我嘗試使用這樣的簡單html

"<html><head></head><body></body></html>"

但是我仍然有一個錯誤。 如何將html值上傳到CLOB字段? 多謝回答!

你把你的參數顛倒了

嘗試

 Clob myclob = conn.createClob();
 myclob.setString(1, body);
 st.setClob(1, myclob);
 st.setInt(2, pageID);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM