几个数据库类型的插入总结

在ORACLE中,CLOB为插入大文本类型,BLOB为大型的二进制类型,CLOB和BLOB类型插入数据的时候都要预先插入空字段,然后再选择出来升级,过程中将AUTOCOMMIT SET为FALSE,两种语言都不会涉及中文问题,如果用PL-SQL查看数据库里面的是乱码,说明数据库在插入前已经是错误,如果里面没乱码,在拿出来以后才有乱码,说明取数据的程序出错。
下面是我自己写的一个插入CLOB的方法:
public void clobInsert(String infile)
{
/* 设定不自动提交 */
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@10.0.128.36:1521:ora9i";
Connection conn=DriverManager.getConnection(url,"base_gov","11");
boolean defaultCommit = conn.getAutoCommit();
conn.setAutoCommit(false);
/* 插入一个空的CLOB对象 */
String strQSL="INSERT INTO TEST (CONTENT) VALUES (EMPTY_CLOB())";
PreparedStatement stmt=conn.prepareStatement(strQSL);
stmt.executeUpdate();
/* 查询此CLOB对象并锁定 */
ResultSet rs = stmt.executeQuery("SELECT CONTENT FROM TEST FOR UPDATE");
while (rs.next()) {
/* 取出此CLOB对象 */
oracle.sql.CLOB clob =(oracle.sql.CLOB)rs.getClob("CONTENT");
/* 向CLOB对象中写入数据 */
BufferedWriter out = new BufferedWriter(clob.getCharacterOutputStream());
String ad=this.htmlToBlob(infile);
//下面的读取来远数据可以是任意的READER,只要修改READER,其它地方都不用改
StringReader in=new StringReader(ad);
int c;
while ((c=in.read())!=-1) {
out.write(c);
}
in.close();
out.close();
}
/* 正式提交 */
conn.commit();
} catch (Exception ex) {
/* 出错回滚 */
ex.printStackTrace();
}
}
PS:在操作大型数据的时候,要注意保持数据的一致,使用什么方法插入数据,就使用什么方法来读取数据,使用CLOB的好处是,它能被做为挑拣查询,例如:LIKE后面跟CLOB
在MSSQL中与ORACLE相类似的类型是TEXT类型,它也是一种存储大型文本文件的类型,没有固定的长度,
但是插入MSSQL的方法和ORACLE的不同,不需要插入空值,直接将文本变成STRING,用PREPAREDSTATEMENT中的SETOBJECT或者是SETSTRING方法来插入就可以。
在ORACLE中插入LONG RAW类型的时候,使用的是BINARYSTREAM方法来插入,用LONG RAW类型是他可以存储任意类型的文件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值