码迷,mamicode.com
首页 > 数据库 > 详细

oracle存储过程生成含有clob字段表的可执行导出脚本

时间:2015-12-25 16:42:15      阅读:383      评论:0      收藏:0      [点我收藏+]

标签:

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导入到你需要导的地方了。
 

oracle存储过程生成含有clob字段表的可执行导出脚本

标签:

原文地址:http://www.cnblogs.com/kangyl/p/5076148.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!