加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle数据库clob字段导出为sql insert插入语句

发布时间:2020-12-12 13:19:11 所属栏目:百科 来源:网络整理
导读:oracle数据库的clob字段导出为sql insert插入语句可以分三种情况:1,clob没有换行符;2,clob有换行符但不以分号结尾;3,clob有换行符并且以分号结尾。 clob没有换行符 使用dbms_lob.substr(clobName) clobName查询并导出即可,导入的时候oracle会自动将字

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导入

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读