博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 操作clob
阅读量:5234 次
发布时间:2019-06-14

本文共 2808 字,大约阅读时间需要 9 分钟。

之前在学校的时候做的都是练习,小儿科,遇到的情况完全都在自己的设想范围内。最近老是遇到字段溢出的情况,但是varchar2好像最长也只有4000个字符。所以不得不另辟蹊径,就找上了clob字段。

package test;import java.io.BufferedReader;import java.io.IOException;import java.io.Writer;import java.sql.Clob;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import oracle.sql.CLOB;public class ClobTest {	 private static Connection conn;       	    static {  	        try {  	            Class.forName("oracle.jdbc.driver.OracleDriver");  	            conn = DriverManager.getConnection(  	                    "jdbc:oracle:thin:@localhost:1521:orcl","wch","wch123");  	        } catch (ClassNotFoundException e) {  	            e.printStackTrace();  	        } catch (SQLException e) {  	            e.printStackTrace();  	        }  	    }  	      	    public static void main(String[] args) throws SQLException, IOException {  	      //  testInsert();  	       // testUpdate();  	        testRead();  	    }  	  	    private static void testInsert() throws SQLException {  	        String sql = "insert into CLOBTEST values(1, empty_clob(),empty_clob())";  	        Statement stm = conn.createStatement();  	        stm.execute(sql);  	    }  	      	    private static void testUpdate() throws SQLException, IOException {  	        String sql = "select context,c2 from CLOBTEST where id = 1 for update";  	        Statement stm = conn.createStatement();  	        ResultSet rs = stm.executeQuery(sql);  	        while (rs.next()) {  	            oracle.sql.CLOB c = (CLOB) rs.getClob(1);  	            Writer w = c.setCharacterStream(1);	            w.write("wchwchwch\r\n");	            w.write("哈哈哈\r\n哈哈哈ds", 2, 5);	            w.flush();	            w.close();	            c = (CLOB) rs.getClob(2);	            w = c.setCharacterStream(1);	            w.write("dingsen");	            w.flush();	            w.close();	        }	        conn.commit(); 	    }  	      	    private static void testRead() throws SQLException, IOException {  	        String sql = "select context,c2 from CLOBTEST where id = 1";  	        PreparedStatement pstm = conn.prepareStatement(sql);  	        ResultSet rs = pstm.executeQuery();  	        System.out.println("-----------------------------------");	        while (rs.next()) {  	            Clob clob = rs.getClob(1);  	            BufferedReader r = new BufferedReader(clob.getCharacterStream());  	            char[] cs = new char[10]; 	            int total = 0;	            StringBuilder sb = new StringBuilder();	            while ((total = r.read(cs)) != -1) {  	                sb.append(cs,0,total);	            }  	            System.out.println(sb.toString());	        }  	    }  }

转载于:https://www.cnblogs.com/vvch/p/4027588.html

你可能感兴趣的文章
可分离卷积详解及计算量 Basic Introduction to Separable Convolutions
查看>>
CNN中各类卷积总结:残差、shuffle、空洞卷积、变形卷积核、可分离卷积等
查看>>
Mean Average Precision(mAP),Precision,Recall,Accuracy,F1_score,PR曲线、ROC曲线,AUC值,决定系数R^2 的含义与计算...
查看>>
win7 能ping通dns, 但无法解析域名
查看>>
centos 软件安装包下载网站
查看>>
nmap 端口扫描工具
查看>>
Excel vlookup筛选两列的重复项
查看>>
配置了BFD MAD, 在IRF正常情况下的 BFD状态是不是 down?
查看>>
SQL server 2012定期的备份数据库--完整+差异+事物
查看>>
C语言 - 可变参数再stm32中的应用
查看>>
vscode + platformIO开发stm32f4
查看>>
最新SSM框架整合2019
查看>>
LinkedList的线程安全解决办法
查看>>
eclipse调整控制台长度
查看>>
jsonp和ajax
查看>>
EAS 之F7控件实现多选择并保存
查看>>
eas之获取集合
查看>>
eas之单据删除代码
查看>>
eas之关于编码规则
查看>>
eas之界面之间传递参数
查看>>