zoukankan      html  css  js  c++  java
  • oracle的clob字段写入与读取

    lob字段基本分为clob和blob,分别存储大文本和二进制流(图片)内容,以下记录下代码,仅供自己查看

    /**
     * 读取clob
    */
    public String selectClob() {
    String content = "null";
    try {
    connection = DB14Util.getCon();
    connection.setAutoCommit(false);
    ResultSet rs = null;
    CLOB clob = null;
    String sql = "";
    sql = "select TRACK_SPOT from IOV_DATA_SAVING where C_DATA_NO ='2007100858' ";
    PreparedStatement pstmt = connection.prepareStatement(sql);
    rs = pstmt.executeQuery();
    if (rs.next()) {
    clob = (CLOB) rs.getClob(1);
    if (clob != null && clob.length() != 0) {
    content = clob.getSubString((long) 1, (int) clob.length());
    }
    }
    rs.close();
    connection.commit();
    pstmt.close();
    connection.close();
    } catch (SQLException e) {
    e.printStackTrace();
    content = "error";
    }
    System.out.println(content);
    return content;
    }

    /**
    * 修改clob
    */
    public static void updateClob(Map<Long,String> tidValMap){
    connection = DB14Util.getCon();
    String car_saving_tb = "IOV_DATA_SAVING";
    try {
    connection.setAutoCommit(false);
    for (Long key : tidValMap.keySet()) {
    String updateSql = "update " + car_saving_tb + " set TRACK_SPOT = empty_clob() where C_DATA_NO = ? " ;
    PreparedStatement pstmt = connection.prepareStatement(updateSql);
    Writer outStream = null;
    String jsonStr = tidValMap.get(key);
    pstmt.setString(1, key.toString());
    pstmt.executeUpdate();
    connection.commit();
    String update = "select TRACK_SPOT from " + car_saving_tb + " where C_DATA_NO ='" + key + "' for update";
    pstmt = connection.prepareStatement(update);
    ResultSet rs = pstmt.executeQuery();
    if (rs.next()) {
    //得到java.sql.Clob对象后强制转换为oracle.sql.CLOB
    oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob("TRACK_SPOT");
    outStream = clob.getCharacterOutputStream();
    //data是传入的字符串,定义:String data
    char[] c = jsonStr.toCharArray();
    outStream.write(c, 0, c.length);
    outStream.flush();
    outStream.close();
    }
    rs.close();
    connection.commit();
    pstmt.close();
    }
    }catch (SQLException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    OracleConnUtil.closeConn(connection);
    }
     
  • 相关阅读:
    Django之templates模板
    Django视图函数之request请求与response响应对象
    Django视图函数之三种响应模式
    Django视图函数函数之视图装饰器
    django 获取request请求对象及response响应对象中的各种属性值
    Django 项目中设置缓存
    python 中 使用sys模块 获取运行脚本时在命令行输入的参数
    Mac 设置终端中使用 sublime 打开文件
    iterm2 恢复默认设置
    Python replace方法的使用
  • 原文地址:https://www.cnblogs.com/zyanrong/p/15576213.html
Copyright © 2011-2022 走看看