注册

通过JDBC使用MERGE INTO语法插入更新,当有大文本clob类型字时报错

邓逸飞 2022/07/08 1105 1

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM Database Server 64 V8 1-1-126-20.09.04-126608-ENT
【操作系统】:win7
【CPU】:i5
【问题描述】*:
通过JDBC使用MERGE INTO语法插入更新,当有大文本clob类型字时报错,
sql语句如下:
PreparedStatement pstm = dm.prepareStatement(“MERGE INTO test T1 USING (SELECT ? id, ? name, ? gender, ? age, ? pubdate FROM DUAL) T2 ON (T1.id = T2.id) WHEN MATCHED THEN UPDATE SET T1.name =NVL(T2.name,T1.name),T1.gender =NVL(T2.gender,T1.gender),T1.age =NVL(T2.age,T1.age),T1.pubdate =NVL(T2.pubdate,T1.pubdate) WHEN NOT MATCHED THEN INSERT (id, name, gender, age, pubdate) VALUES (T2.id, T2.name, T2.gender, T2.age, T2.pubdate)”);

    while (resultSet.next()){
        pstm.setObject(1,resultSet.getInt(1));
        pstm.setObject(2,resultSet.getString(2));
        pstm.setObject(3,resultSet.getString(3));
        pstm.setObject(4,resultSet.getInt(4));
        pstm.setObject(5,resultSet.getObject(5));
        pstm.addBatch();
    }

其中name字段为clob类型,当name字段的长度超过varchar最大值时出现异常:
image.png

但是直接使用insert正常写入

回答 0
暂无回答
扫一扫
联系客服