oracle数据库的clob字段导出为sql insert插入语句可以分三种情况:1,clob没有换行符;2,clob有换行符但不以分号结尾;3,clob有换行符并且以分号结尾。

  1. clob没有换行符
    使用dbms_lob.substr(clobName) clobName查询并导出即可,导入的时候oracle会自动将字符串转换为clob类型。
    示例:select id,dbms_lob.substr(single_line) single_line from demo_table;
    然后使用Export query results功能导出为sql即可。
  2. clob有换行符但不以分号结尾
    使用q’<multi_lines>’转义符格式即可导入,常用转义字符有[],{},<>等,也可以用#@=|
    示例:insert into demo_table(id,multi_line) values(‘1’,q’<line-1
    line2
    line3>’)
    局限,查询结果并导出为sql,然后还需要对sql进行再次修改
  3. clob有换行符并且以分号结尾
    使用||chr(13)||chr(10)||’statement;’格式,由于有分号结尾所以q的方式会报错
    示例:insert into demo_table(id,js_statements) values(‘2’,’function match(list){‘
    ||chr(13)||chr(10)||’var result=’’hello’’;’
    ||chr(13)||chr(10)||’return result;’
    ||chr(13)||chr(10)||’}’)
    局限,查询结果并导出为sql,然后还需要对sql进行再次修改,代码如下:
    LineIterator lines=FileUtils.lineIterator(sql)
    String line=lines.nextLine();
    boolean ignore=StringUtils.isBlank(line);//js内的空行会导致报错,所以可忽略所有空行
    if(!ignore){
    if(line.indexOf(“prompt”)<2 || line.startsWith(“set”) || line.startsWith(“insert”){ //原样输出,结果sql需要set define off否则导入sql会提示输入变量值 }
    else if(line.startsWith(“values”){ if(!line.endsWith(“;”) line+=”’”; }  //不以分号结尾时表示有换行,行尾加上单引号
    else if(line.startsWith(“}‘,”)){ line=’||chr(13)||chr(10)||’’+line; }  //以}’,开头表示js内容结束
    else { line=’||chr(13)||chr(10)||’’+line+”’”; }  //js内容前后都用单引号
    }
    if(!ignore){ writer.writeln(line); } //写入sql文件,支持PL/SQL导入

Oracle数据库clob字段导出为sql insert插入语句的更多相关文章

  1. 将EXCEL中的列拼接成SQL insert插入语句

    工作中经常需要将EXCEL文件中的数据导入到各种数据库,但是对于不熟悉数据库的人来说,如果直接使用命令执行导入,这无疑是一个难题,也是一个风险.这里我们直接在EXCEL文件中拼接成标准的SQL ins ...

  2. php oracle数据库clob和nclob字段

    php oracle数据库clob和nclob字段 nclob类型 1.nclob不能使用php的stream_get_contents来获取数据库的资源内容, 2.并且nclob只能使用to_cha ...

  3. oracle数据库数据导入导出步骤(入门)

    oracle数据库数据导入导出步骤(入门) 说明: 1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp ...

  4. java 存储oracle的clob字段

    项目中有很长的字符创需要存储,用到了oracle的clob字段,直接很长的字符串插入到clob字段中会报字符过长的异常,于是便寻求解决方案.看到这个博客写的还不错 首先,创建一个含CLOB字段的表: ...

  5. php oracle数据库NCOLB字段ORA-01704

    php oracle数据库NCOLB字段ORA-01704 对clob更新  ORA-01704: 字符串文字太长 解决办法:把字符赋值给一个变量,然后赋值update语句 declarev_clob ...

  6. sybase数据库和oracle数据库中字段中含有换行符的解决办法

    最近在做数据库从sybase到oracle的迁移工作,sybase数据库表bcp导出后,通过sqlldr导入到oracle数据库,然后oracle数据库通过spool按照sybase数据库bcp的格式 ...

  7. ORACLE数据库在导入导出时序列不一致的问题

    ORACLE数据库在导入导出时序列不一致的问题   在使用ORACLE数据库时,当给一个表设置自增字段时,我们经常会使用到序列+触发器来完成.但当你需要对数据库进行导入导出时,序列很容易出问题. 当你 ...

  8. Oracle数据库查找持有锁的SQL语句,而不是请求锁的SQL语句(原创)

    Oracle数据库查找持有锁的SQL语句,而不是请求锁的SQL语句 查找活动的事务以及活动事务关联的会话信息 select s.sid 会话ID, s.serial# 会话序列号, s.usernam ...

  9. 解决比较Oracle中CLOB字段问题

    解决比较Oracle中CLOB字段问题   Oracle中CLOB和BLOB字段虽说在开发中满足了存放超大内容的要求,但是在一些简单使用中确频频带来麻烦.CLOB中存放的是指针,并不能直接取到实际值. ...

随机推荐

  1. Java 进阶6 异常处理的陷阱

    Java 进阶6 异常处理的陷阱 20131113 异常处理机制是 Java语言的特色之一,尤其是 Java的Checked 异常,更是体现了 Java语言的严谨性:没有完善的错误的代码根本就不会被执 ...

  2. java程序设计基础篇 复习笔记 第四单元

    1 think before coding code incrementally 2 sentinel value sentinel-controlled loop 3 输入输出重定向 > &l ...

  3. DBMS_OUTPUT(用于输入和输出信息)

    1.概述 作用:用于输入和输出信息,使用过程PUT和PUT_LINES可以将信息发送到缓冲区,使用过程GET_LINE和GET_LINES可以显示缓冲区信息.该包用来输出plsql变量的值,属于系统用 ...

  4. bzoj3401

    题解: 单调栈 一个一个压入 然后比下面高就弹出 代码: #include<bits/stdc++.h> using namespace std; ; int n,tot,a[N],z[N ...

  5. jqeury 基础

    jquery 选择器: 基本选择器:#id ..class.*(匹配所有) 层次选择器: $(div span) 选取<div>里的所有的<span>元素. $(div> ...

  6. *SCM-MANAGERtomcat寄宿使用

    采用的部署方式 TomCat 一个端口下部署多个 Application供不同部门使用 初始部署详参见 SCM-MANAGER 博文 日常使用添加部门操作步骤 从“D:\tomcat\webapps” ...

  7. 今天开始写些随笔,就从Jplayer开始吧

    今天才开始用Jplayer,可能有点落伍了,但是看到网上千篇一律的使用说明,开始决定把自己的使用心得分享一下,废话不多说,开始吧. Step1: 官网上有具体的搭建顺序,URL:http://www. ...

  8. APUE学习笔记——11 线程同步、互斥锁、自旋锁、条件变量

    线程同步     同属于一个进程的不同线程是共享内存的,因而在执行过程中需要考虑数据的一致性.     假设:进程有一变量i=0,线程A执行i++,线程B执行i++,那么最终i的取值是多少呢?似乎一定 ...

  9. css 中相对定位和绝对定位

    1. css中定位机制有三种: 标准文档流, 浮动, 绝对定位 2. 绝对定位就属于第三种定位, 用到position属性, 下面就是具体设置 相对定位: 相对于自身原有位置(就是普通流的时候)进行偏 ...

  10. Java多线程编程实战指南(核心篇)读书笔记(三)

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/76686044冷血之心的博客) 博主准备恶补一番Java高并发编程相 ...