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/SQLsql

1.建立測試表oracle

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

 

2.插入初始化數據工具

 

3.執行存儲過程oop

 
4.執行獲取的sql
 
 
5.導出查詢數據爲sql
 
 
6.查看導出的sql
 
 
最後你就能夠把你獲得的sql導入到你須要導的地方了。
相關文章
相關標籤/搜索