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中存放的是指针,并不能直接取到实际值. ...
随机推荐
- springmvc日期格式化
jsp页面String类型转Controller后台Date类型 方法1.在实体中加入日期格式化注解 @DateTimeFormat(pattern="yyyy-MM-dd") p ...
- 二、DBMS_JOB(用于安排和管理作业队列)
1.概述 作用:用于安排和管理作业队列,通过使用作业,可以使ORACLE数据库定期执行特定的任务注意:当使用DBMS_LOB管理作业时,必须确保设置了初始化参数job_queue_processes( ...
- LeetCode OJ:Restore IP Addresses(存储IP地址)
Given a string containing only digits, restore it by returning all possible valid IP address combina ...
- LVS模式一:直接路由模式DR(Direct Routing)
(一)LVS 一.LVS的了解 LVS(Linux Virtual Server)可以理解为一个虚拟服务器系统. Internet的飞速发展,网络带宽的增长,Web服务中越来越多地使用CGI.动态主页 ...
- react 生命周期图
1. react v16 版本生命周期 2. react v17 (还未发布), 生命周期将被改动,下面红框的部分就是会被删除的部分,注意调整!
- Makefile特殊标签
http://www.gnu.org/software/make/manual/html_node/Special-Targets.html
- (三) ffmpeg filter学习-编写自己的filter
目录 目录 什么是ffmpeg filter 如何使用ffmpeg filter 1 将输入的1920x1080缩小到960x540输出 2 为视频添加logo 3 去掉视频的logo 自己写一个过滤 ...
- SpringMVC札集(07)——JSON数据
自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...
- Android Studio3.0 Kotlin工程问题集
问题1: 新建支持Kotlin的Android项目,卡在"Resolve dependency :classpath" 解决分析: 一般碰到"Resolve depend ...
- crm 03--->销售页面及逻辑
基本思路 销售 ------->使用的是customer表来操作 有两个页面: 未成交的客户 公共客户页面 --- 什么属于? --> 三天未跟进,及十五天内未成交 url ...