zoukankan      html  css  js  c++  java
  • Oracle数据库中包含CLOB字段表的导出和导入

    1.表的导出和导入

    因为oracle中存储大量数据的CLOB字段默认是不导出的,所以在导出时需要特别设置一下。

    我使用DBVisualizer这个工具进行导出和导入。

    软件版本:

    DBVisualizer Pro 10.0.16

    导出表

    Connections ->(数据库名称)-> Schemas -> (用户名)-> Tables -> (表名)
    鼠标右键-》Export Table ...

    Settings选项设置

    Output Format 选择 CSV

      导出为SQL文件会有超过4000报错的情况,所以这里导出文件为CSV文件
    Output Destination 选择 File 指定导出的文件路径

     

    点击 Data Format Settings 按钮

    Binary/BLOB 选择 Value

      默认是不导出
    CLOB 选择 Value

      默认是不导出
    Quote Text Value 选择 None

      默认是双引号把值括起来,这样的在导入时会将双引号也导入,所以不对值加双引号
    点击 Ok

    点击 Export 导出完成,生成一个CSV文件

    导入表

    Connections ->(数据库名称)-> Schemas -> (用户名)-> Tables -> (表名)
    鼠标右键-》Import Table Data...
    Next -> Next

    这里需要注意一下:这里可以修改数据格式,自动识别的时候可能会将Number类型的识别为Boolean类型,导致导入报错,如果报错,则查看这里是否和数据库中格式一致,如果不一致的则进行修改:

    Data -> Grid -> 点击数据类型进行修改

    Next -> Next -> Import 导入完毕,查看结果,如果有错误则进行排查

    导出为SQL文件会有超过4000报错的情况,所以这里导出文件为CSV文件。

    2.CLOB类型字段的插入SQL如何写?

    oracle会把插入的字符串作为 “字符串类型”处理,由于oracle有最大字符串限制(不超过4000个字符),所以会报错。

    使用PL/SQL进行插入,不需要进行字符串的分割

    语法如下:

    DECLARE
    自定义名称 CLOB := '大于4000的数据';
    BEGIN
    INSERT INTO 表名称(...,字段名称,...) VALUES(...,自定义名称,...);
    
    COMMIT;
    END;

    例如:test表中的bigdata字段类型为CLOB,则插入语句

    DECLARE
    bname CLOB := 'clobdata';
    BEGIN
    INSERT INTO test(bigdata) VALUES(bname);
    
    COMMIT;
    END;
  • 相关阅读:
    hdu 1199 Color the Ball 离散线段树
    poj 2623 Sequence Median 堆的灵活运用
    hdu 2251 Dungeon Master bfs
    HDU 1166 敌兵布阵 线段树
    UVALive 4426 Blast the Enemy! 计算几何求重心
    UVALive 4425 Another Brick in the Wall 暴力
    UVALive 4423 String LD 暴力
    UVALive 4872 Underground Cables 最小生成树
    UVALive 4870 Roller Coaster 01背包
    UVALive 4869 Profits DP
  • 原文地址:https://www.cnblogs.com/etangyushan/p/13672203.html
Copyright © 2011-2022 走看看