`
Liebestraum
  • 浏览: 21992 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

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

阅读更多
在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类型是他可以存储任意类型的文件。
分享到:
评论

相关推荐

    批量插入数据库方法

    此代码使用C#编码,可以批量的把读取的数据插入数据库,常见于批量导入数据等。

    c#实现几种数据库的大数据批量插入

    在之前只知道SqlServer支持数据批量插入,殊不知道Oracle、SQLite和MySQL也是支持的,不过Oracle需要使用Orace.DataAccess驱动,今天就贴出几种数据库的批量插入解决方法。 首先说一下,IProvider里有一个用于实现...

    Java使用JDBC向MySQL数据库批次插入10W条数据(测试效率)

    使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢?今天小编通过本教程给大家介绍下

    数据库系统及应用课程总结.docx

    第一章主要介绍什么是数据库及与之相关的一些基本概念,其中有几个较为重要的知识点,即数据库系统DBS、数据库管理系统DBMS的概念以及数据库管理员DBA的职责。此外本章还介绍了数据库发展的三个阶段:人工管理阶段、...

    达梦数据库_SQL语言手册

    数据类型的实际最大长度由数据库页面大小决定,具体最 大长度算法如表 的区别在于前者长度不足时,系统自动填充空 格,而后者只占用实际的字节空间。 表 数据库页面大 实际最大长度 注:这个限制长度只针对建表的...

    关于若干数据库数据插入性能的对比分析

    前几天,苦恼于到底使用哪一种本地数据库来存储部分数据,于是决定做一个数据插入测试进行求证

    c#几种数据库的大数据批量插入(SqlServer、Oracle、SQLite和MySql)

    在之前只知道SqlServer支持数据批量插入,殊不知道Oracle、SQLite和MySql也是支持的,不过Oracle需要使用Orace.DataAccess驱动,今天就贴出几种数据库的批量插入解决方法。 首先说一下,IProvider里有一个用于实现...

    shell创建db2数据库

    shell创建db2数据库 ,shell创建db2数据库,shell创建db2数据库,shell创建db2数据库,shell创建db2数据库,shell创建db2数据库

    实战visual c#数据库编程

    数据库编程的内容十分丰富,但最为基本编程的也就是那么几点,譬如:连接数据库、得到需要的数据和针对数据记录的浏览、删除、修改、插入等操作。其中又以后面针对数据记录的数据操作为重点。本文就来着重探讨一下...

    数据库实验集锦(建立,更新,查询,应用系统)

    9、通过前几个实验的练习,对数据库的基本概念有了一定的掌握。本实验综合所掌握的内容加以应用,选定自己熟悉的一种开发工具设计实现一个简单的数据库应用系统,包括数据的插入、删除、修改、查询、统计等功能,...

    2019年假期数据库_建表和插入语句_oracle.sql

    2019年假期数据库。 oracle数据库的建表和插入语句(plsql developer导出的sql)。 包含日期、星期几、是否假期、节假日名称或周末字段。 与百度假期工具核对的结果。

    Mysql的longblob字段插入数据问题解决

    想改变这个问题,需要注意几点: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (2054817 > 1048576). You can change this value on the server by setting the max_allowed_packet’ ...

    全国邮政编码数据库(约19万条数据)

    因为本库的收录数据约187287行,为了避免读者打开文件时加载过慢,故分成4个文档,00为数据库的表结构,01~04为具体的插入数据,读者只需按顺序向你的数据库执行这几个文档即可(当然了,这里是没有先建数据库的,...

    电话计费管理系统【SQLServer数据库+课程设计文档】

    电话计费管理系统【SQLServer数据库+课程设计文档】 一、需求分析 ...4.3建立存储过程向表中插入、修改、删除数据 4.4单表查询: 4.5多表查询: 4.6嵌套查询 4.7视图 五、小结 六、参考文献

    asp.net 读取文本文件并插入数据库的实现代码

    由此,需要操作以下几个步骤 1,上传txt文件至公司系统 2,读取需要的内容 3,将内容插入到数据库中(需要判断重复) 4,与现有订单数据进行对比 本程序只研究读取需要的内容和插入数据库 代码如下: using System;...

    数据库系统概论自己版.xmind

    指定一个数据库模式作为一组关系模式的定义、指定存储结构、访问方法和一致性约束 DML 检索、插入、删除、更新 过程化DML:要求用户指定需要什么数据,以及如何获得这些数据 声明式DML:也称为...

    ci数据库基本操作实例

    ci数据库基本操作实例-完整篇 ...这是4种最常用的数据库操作,以后在各种有关数据库系统中,都会反复运用到这几种基本操作。这四篇按照插入数据——显示数据——删除数据——更新数据的顺序来编写,他们是联系起来的

    Android批量插入数据到SQLite数据库的方法

    Android中在sqlite插入数据的时候默认一条语句就是一个事务,因此如果存在上万条数据插入的话,那就需要执行上万次插入操作,操作速度可想而知。因此在Android中插入数据时,使用批量插入的方式可以大大提高插入速度...

    jsp 连接mysql数据库的操作

    JSP实现登录注册并链接数据库页面。 内容介绍:实现页面的跳转;注册登录时实现读取数据库,并对数据库实现插入(insert)和查询...几点注意:sqljdbc.jar包的导入和环境变量;数据库的登录读取,可以参考数据库的测试。

Global site tag (gtag.js) - Google Analytics