Loading

jdbc 读取oracle long raw 字段,里面存的是文本

jdbc 读取oracle long raw 字段,里面存的是文本

参考:

http://singlewolf.iteye.com/blog/278769

http://blog.csdn.net/restraint/article/details/7190265

http://blog.csdn.net/bq1073100909/article/details/49335491

String sql = "select condition from tbl t where t.a = ? and t.b = ?";
            PreparedStatement statement = hebSgConn.prepareStatement(sql);
            statement.setString(1, "20170305");
            statement.setInt(2, 146897);
            ResultSet resultSet = statement.executeQuery();
            if (resultSet.next()) {
                InputStream inputStream = resultSet.getBinaryStream("condition");
                ByteArrayOutputStream infoStream = new ByteArrayOutputStream();
                int len = 0;
                byte[] bytes = new byte[1024];
                try {
                    while ((len = inputStream.read(bytes)) != -1) {
                        // 将bcache中读取的input数据写入infoStream
                        infoStream.write(bytes, 0, len);
                    }
                } catch (IOException e1) {
                    throw new Exception("输入流读取异常");
                } finally {
                    try {
                        inputStream.close(); // 输入流关闭
                    } catch (IOException e) {
                        throw new Exception("输入流关闭异常");
                    }
                }
                try {
                    String result = infoStream.toString(DEFAULT_ENCODING);
                    System.out.println(result);
                } catch (UnsupportedEncodingException e) {
                    throw new Exception("输出异常");
                }
            }

基本上是流操作;

 

posted @ 2017-03-28 17:29  stono  阅读(2524)  评论(0编辑  收藏  举报