zoukankan      html  css  js  c++  java
  • oracle存储过程生成含有clob字段表的可执行导出脚本

    oracle表如果含有clob字段,则无法导出用sql脚本,尤其需要进行数据备份或者数据导入导出时候不方便。
    这个存储过程你只需传入表名和需要返回的结果,就可以获取可执行的sql,直接在PL/SQL执行返回的结果,即可将数据导出成sql,
    存储过程如下
    create or replace procedure generate_insert_sql(t_name in varchar2,execute_sql out varchar2) as
      CURSOR col_cur is
        select column_name, data_type
          from user_tab_cols
         where table_name like t_name;
      col_name  varchar2(500);
    BEGIN
      FOR col in col_cur loop
        if col.data_type='CLOB'  then
          col_name := ' to_char(' || col.column_name || ') as '||col.column_name||' ,';
        else
          col_name := col.column_name || ',';
        end if;
      execute_sql := execute_sql || col_name;
    end loop;
    execute_sql := 'select ' ||RTRIM(execute_sql,',')|| ' from '||t_name;
    end;  

    测试例子如下,测试工具为PL/SQL

    1.创建测试表

    create table test_table(
        name varchar2(30),
        test_clob1 clob,
        test_clob2 clob    
    );

    2.插入初始化数据

    3.执行存储过程

     
    4.执行获取的sql
     
     
    5.导出查询数据为sql
     
     
    6.查看导出的sql
     
     
    最后你就可以把你得到的sql导入到你需要导的地方了。
     
  • 相关阅读:
    Redis慢查询日志
    Docker:容器
    CentOS7.X中使用yum安装nginx
    Nginx简介及配置详解(二)
    Nginx简介及配置详解(一)
    Redis持久化策略
    golang学习笔记——异常
    golang学习笔记——面向对象(接口)
    golang学习笔记——面向对象(方法)
    golang学习笔记——struct结构体
  • 原文地址:https://www.cnblogs.com/kangyl/p/5076148.html
Copyright © 2011-2022 走看看