oracle預存程序產生含有clob欄位表的可執行匯出指令碼

來源:互聯網
上載者:User

標籤:

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欄位表的可執行匯出指令碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.