Oracle数据库clob字段导出为sql insert插入语句
oracle数据库的clob字段导出为sql insert插入语句可以分三种情况:1,clob没有换行符;2,clob有换行符但不以分号结尾;3,clob有换行符并且以分号结尾。
- clob没有换行符
使用dbms_lob.substr(clobName) clobName查询并导出即可,导入的时候oracle会自动将字符串转换为clob类型。
示例:select id,dbms_lob.substr(single_line) single_line from demo_table;
然后使用Export query results功能导出为sql即可。 - clob有换行符但不以分号结尾
使用q’<multi_lines>’转义符格式即可导入,常用转义字符有[],{},<>等,也可以用#@=|
示例:insert into demo_table(id,multi_line) values(‘1’,q’<line-1
line2
line3>’)
局限,查询结果并导出为sql,然后还需要对sql进行再次修改 - 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插入语句的更多相关文章
- 将EXCEL中的列拼接成SQL insert插入语句
工作中经常需要将EXCEL文件中的数据导入到各种数据库,但是对于不熟悉数据库的人来说,如果直接使用命令执行导入,这无疑是一个难题,也是一个风险.这里我们直接在EXCEL文件中拼接成标准的SQL ins ...
- php oracle数据库clob和nclob字段
php oracle数据库clob和nclob字段 nclob类型 1.nclob不能使用php的stream_get_contents来获取数据库的资源内容, 2.并且nclob只能使用to_cha ...
- oracle数据库数据导入导出步骤(入门)
oracle数据库数据导入导出步骤(入门) 说明: 1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp ...
- java 存储oracle的clob字段
项目中有很长的字符创需要存储,用到了oracle的clob字段,直接很长的字符串插入到clob字段中会报字符过长的异常,于是便寻求解决方案.看到这个博客写的还不错 首先,创建一个含CLOB字段的表: ...
- php oracle数据库NCOLB字段ORA-01704
php oracle数据库NCOLB字段ORA-01704 对clob更新 ORA-01704: 字符串文字太长 解决办法:把字符赋值给一个变量,然后赋值update语句 declarev_clob ...
- sybase数据库和oracle数据库中字段中含有换行符的解决办法
最近在做数据库从sybase到oracle的迁移工作,sybase数据库表bcp导出后,通过sqlldr导入到oracle数据库,然后oracle数据库通过spool按照sybase数据库bcp的格式 ...
- ORACLE数据库在导入导出时序列不一致的问题
ORACLE数据库在导入导出时序列不一致的问题 在使用ORACLE数据库时,当给一个表设置自增字段时,我们经常会使用到序列+触发器来完成.但当你需要对数据库进行导入导出时,序列很容易出问题. 当你 ...
- Oracle数据库查找持有锁的SQL语句,而不是请求锁的SQL语句(原创)
Oracle数据库查找持有锁的SQL语句,而不是请求锁的SQL语句 查找活动的事务以及活动事务关联的会话信息 select s.sid 会话ID, s.serial# 会话序列号, s.usernam ...
- 解决比较Oracle中CLOB字段问题
解决比较Oracle中CLOB字段问题 Oracle中CLOB和BLOB字段虽说在开发中满足了存放超大内容的要求,但是在一些简单使用中确频频带来麻烦.CLOB中存放的是指针,并不能直接取到实际值. ...
随机推荐
- 【hive】关于浮点数比较的问题
当在hive中写下浮点数(例如:0.2) hive会把浮点数(0.2)存储为double类型 但是系统中并不能精准表示0.2这个浮点数 正确的浮点数表示 float 0.2 —> 0.200 ...
- 微信小程序单个倒计时效果
var end_time = grouponList.expire_time.replace(/-/g, '/') grouponcountdown(that, end_time) //适用于商品列表 ...
- Maven入门-2.Maven一些核心概念介绍
1.Maven仓库2.Maven坐标3.Maven插件和目标4.Maven生命周期4.1 clean:清理项目4.2 default:构建项目(重要)4.3 site:建立项目站点 1.Maven仓库 ...
- Week11《java程序设计》作业总结
Week11<java程序设计>作业总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 答: 2. 书面作业 本次PTA作业题集多线程 1. 源代码 ...
- 策略模式-Java实现
策略模式—Java实现 1. 现实需求 本人现在负责开发和维护考核督办系统,其中一个模块叫编写工作计划.是工作计划就要有时间,我们的各种提醒都做了,但是还是有人把x月的工作计划内容写到y月,真心无语了 ...
- WIP - Study Perf (by quqi99)
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 (http://blog.csdn.net/quqi99) Perf Flame Graph sudo perf ...
- tomcat是否有必要配置环境变量
之前发表了一篇关于如何安装和配置Tomcat的文章,而最近在开发项目的时候总是报错.后来被公司的大神问了一句:是谁告诉你Tomcat是需要配置环境变量的? 作为新手的我瞬间整个人都不好了!于是偷偷百度 ...
- Android Studio单独生成apk
/********************************************************************* * Android Studio单独生成apk * 说明: ...
- 【排序】快速排序,C++实现
原创博文,转载请注明出处! 本文代码的github地址 # 基本思想 ”快速排序“是对”冒泡排序“的改进. 基本原理:基于分治法,在待排线性表中取一个元素pivot作为枢轴值,通过一趟排序将待排线性表 ...
- del语句的总结
删除属性 del 语句 可以删除对象(实例)的属性 语法: del 对象.实例变量名 del 语句 del 变量名 删除变量 del name del 列表[整数表达式] 删除列表中的元素 del L ...