• 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;
  • 相关阅读:
    多进程要时刻当心的点
    pairs和ipairs用的迭代器不一样
    #pragma pack(push,1) & #pragma pack(pop)
    负数取模不一定是正数
    切记一定要get~
    GAME有计时器,大厅没有计时器的原因
    每天一个linux命令(1):ls命令
    服务端发的某个short字段存到buf里是正值,存完在看就是0的问题
    生成函数&多项式全家桶导学案
    [Z]董的博客数据结构与算法汇总
  • 原文地址:https://www.cnblogs.com/etangyushan/p/13672203.html
Copyright © 2020-2023  润新知