[导读]单位用到了oracle存储string类型到数据库里的clob,上网查看资料找到解决方案。

单位用到了oracle存储string类型到数据库里的clob,上网查看资料找到解决方案。如下:public class ClobTest {

static String url = "jdbc:oracle:thin:@10.12.10.18:1521:orcl";

static String user = "cwbe1_9999";

static String pwd = "or777";

static String text = "这是要插入到CLOB里面的数据,更新数据!" + "update";

private static int clobImport() throws ClassNotFoundException, SQLException {

DriverManager.registerDriver(new OracleDriver());

Connection conn = DriverManager.getConnection(url, user, pwd);// 得到连接对象

String sql = "insert into ETLNEEDPARAM(F_KEY,F_VALUE) values ('defaultpo',?)";// 要执行的SQL语句

PreparedStatement stmt = conn.prepareStatement(sql);// 加载SQL语句

// PreparedStatement支持SQL带有问号?,可以动态替换?的内容。

Reader clobReader = new StringReader(text); // 将 text转成流形式

stmt.setCharacterStream(1, clobReader, text.length());// 替换sql语句中的?

int num = stmt.executeUpdate();// 执行SQL

if (num > 0) {

System.out.println("ok");

} else {

System.out.println("NO");

}

stmt.close();

conn.close();

return num;

}

private static int clobUpdate(String key) throws ClassNotFoundException, SQLException {

DriverManager.registerDriver(new OracleDriver());

Connection conn = DriverManager.getConnection(url, user, pwd);// 得到连接对象

String sql = "update ETLNEEDPARAM set F_VALUE = ? where F_KEY = ? ";// 要执行的SQL语句

PreparedStatement stmt = conn.prepareStatement(sql);// 加载SQL语句

// PreparedStatement支持SQL带有问号?,可以动态替换?的内容。

Reader clobReader = new StringReader(text); // 将 text转成流形式

stmt.setString(2, key);

stmt.setCharacterStream(1, clobReader, text.length());// 替换sql语句中的?

int num = stmt.executeUpdate();// 执行SQL

if (num > 0) {

System.out.println("ok");

} else {

System.out.println("NO");

}

stmt.close();

conn.close();

return num;

}

private static String clobExport() throws ClassNotFoundException, SQLException, IOException {

CLOB clob = null;

String sql = "select F_VALUE from ETLNEEDPARAM where F_KEY ='test1'";

DriverManager.registerDriver(new OracleDriver());

Connection conn = DriverManager.getConnection(url, user, pwd);// 得到连接对象

PreparedStatement stmt = conn.prepareStatement(sql);

ResultSet rs = stmt.executeQuery();

String content = "";

if (rs.next()) {

clob = (oracle.sql.CLOB) rs.getClob("F_VALUE"); // 获得CLOB字段str

// 注释: 用 rs.getString("str")无法得到 数据 ,返回的 是 NULL;

content = ClobToString(clob);

}

stmt.close();

conn.close();

return content;

}

// 将字CLOB转成STRING类型

public static String ClobToString(CLOB clob) throws SQLException, IOException {

String reString = "";

Reader is = clob.getCharacterStream();// 得到流

BufferedReader br = new BufferedReader(is);

String s = br.readLine();

StringBuffer sb = new StringBuffer();

// 执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRING

while (s != null) {

sb.append(s);

s = br.readLine();

}

reString = sb.toString();

return reString;

}

public static void main(String[] args) throws IOException,ClassNotFoundException, SQLException {

// System.out.println(clobImport());

System.out.println(clobUpdate("fmo"));

System.out.println(clobUpdate("epo"));

// System.out.println(clobExport());

}

java clob存储_java oracle clob string 大字符串存储相关推荐

  1. clob类型用java怎么存,Java 储存和读取 oracle CLOB 类型字段的实用方法

    当前位置:我的异常网» 编程 » Java 储存和读取 oracle CLOB 类型字段的实用方法 Java 储存和读取 oracle CLOB 类型字段的实用方法 www.myexceptions. ...

  2. oracle的insert语句clob,.Net 操作 Oracle CLOB类型字段 INSERT 超长数据

    如果仅仅在数据库中设置了类型为 CLOB 字段类型,使用普通的 INSERT 语句直接写入数据到数据库的话,它依然会将其视为 VARCHAR 类型数据,并最大长度为 4000 字符.超过该长度会报出字 ...

  3. java string的某个字符_JAVA如何提取String中字符串的某个字符 具体内容

    今天小编和大家分享JAVA如何提取String中字符串的某个字符,希望对大家有所帮助. 工具/材料 PC 操作方法 01 java中提取特定字符前的字符串: String str = "房估 ...

  4. java 调用弗雷_JAVA API(一)String类和StringBuffer类

    1.String类和StringBuffer类 在程序中经常会用到字符串,所谓的字符串就是指一连串的字符,它是由多个单个字符连接而成的.字符串中可以包含任意字符,这些字符必须包含在一对双引号" ...

  5. java printwriter实例_Java PrintWriter print(String)用法及代码示例

    Java中的PrintWriter类的print(String)方法用于在流上打印指定的String值.该字符串值用作参数. 用法: public void print(String StringVa ...

  6. java stringbuffer倒置_Java程序设计05——String和StringBuffer

    String和StringBuffer String和Stringbuffer类1.String的声明string s1="abc"; string s2 = new String ...

  7. java数组 方法_Java数组的十大方法

    Java数组的十大方法 以下是Java Array的前10种方法.他们是来自stackoverflow的投票最多的问题. 0.声明一个数组 String[] aArray = new String[5 ...

  8. java编写游戏_java编写小游戏-大球吃小球

    游戏界面: 点击火箭开始游戏 点击Exit退出游戏 左上角显示当前成绩和历史最高分 退出自动保存最高成绩 代码获取 扫码关注微信公众号[程序猿声] 在后台回复[EBG]不包括[]即可获取. 玩法: 玩 ...

  9. oracle的clob建立索引,oracle clob类型字段查询方法

    今天要查询clob类型字段为空的记录.颇费一番周折才找到一个方法,记录以供参考. select s.testcaseid from b_t_testcasestepinfo s where pjid ...

最新文章

  1. 【干货】网易云音乐歌单的推荐算法解析
  2. 有关数据库MySQL的演讲_有关Mysql数据库编程的文章推荐10篇
  3. C++(18)--复制构造函数
  4. git忽略文件或者文件夹
  5. MAC ideaeclipse快捷键--笔记
  6. 现代通信原理4.1:随机变量
  7. Linux | Shell脚本从入门到实战
  8. 《数据结构上机实验(C语言实现)》笔记(2 / 1)
  9. string.h 详解
  10. hihocoder1498 Diligent Robots
  11. 在代码里面如何使用workman
  12. mysql r opt_mysql_ping()以及MYSQL_OPT_RECONNECT
  13. 神经网络建模的适用范围,神经网络建模步骤视频
  14. linux系统vim下换行输入_vim 中输入特殊字符回车符号('\r')
  15. PHPWord的使用
  16. 在使用selenium 做IE自动化操作时 请求状态码 400【帮忙解决或者找出问题所在悬赏200】
  17. 计算机算法的控制结构顺序结构,第3章 算法与控制结构.pdf
  18. STM32L431 立即睡眠模式(代码+讲解)
  19. Css_display: block inline inline-bock区别
  20. 使用TreeMap实现ASCII排序

热门文章

  1. springboot项目如何不依赖spring-boot-parent
  2. SpringBoot测试失败并报错: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration
  3. python 打开excel并在屏幕上呈现_excel-检查文件是否在Python中打开
  4. c++ 删除二叉树的子树_数据结构—树|二叉树|前序遍历、中序遍历、后序遍历【图解实现】...
  5. 并联机器人市场呈现快速增长之势
  6. POJ - 2182 Lost Cows【线段树】
  7. ubuntu下chromium 安装flash player
  8. 视频大压缩的具体操作方法
  9. 个推基于Docker和Kubernetes的微服务实践
  10. 4408: [Fjoi 2016]神秘数