Oracle Clob类型字段插入与更新
private static final String INSERT_SQL = "insert into COMPANY_TABLE VALUES(?,?,'公司','公司','T',?,'','','','',empty_clob(),empty_clob())"; private static final String QUERY_SQL_NOTE = "select NOTE,ATTR from COMPANY_TABLE t where t.COMPANY_ID=? for update"; private static final String UPDATE_SQL = "update COMPANY_TABLE t set NOTE=?,ATTR=? where t.COMPANY_ID=?"; Conn=……取得数据库连接 PreparedStatement pst = null; ResultSet rs = null; conn.setAutoCommit(false);// 设置不自动提交,开启事务 pst = conn.prepareStatement(INSERT_SQL); pst.setString(1, "6666"); pst.setString(2, companyName); pst.setString(3, avatar); pst.executeUpdate(); pst = conn.prepareStatement(QUERY_SQL_NOTE); pst.setString(1, "6666"); rs = pst.executeQuery(); CLOB clob1 = null; CLOB clob2 = null; if (rs.next()) {
clob1 = (CLOB) rs.getClob("NOTE"); clob2 = (CLOB) rs.getClob("ATTR"); clob1.setString(1, "112"); clob2.setString(1, "212"); PreparedStatement pstmt = conn.prepareStatement(UPDATE_SQL); pstmt.setClob(1, clob1); pstmt.setClob(2, clob2); pstmt.setString(3, "6666"); pstmt.executeUpdate(); pstmt.close(); } conn.commit();
CLOB clob = oracle.sql.CLOB.createTemporary(conn, false, oracle.sql.CLOB.DURATION_SESSION); clob.setString(1L, user_icon); PreparedStatement pstmt = conn.prepareStatement(update_sql); pstmt.setClob(1, clob); pstmt.setString(2, user_id); pstmt.setString(3, user_no); pstmt.executeUpdate(); pstmt.close(); conn.commit();
以此更新之前的误—__—!
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/211030.html原文链接:https://javaforall.net
