批量將Oracle裡的表名和列名改為大寫

來源:互聯網
上載者:User

有時候我們需要從SQL Server資料庫匯入一些表資料到Oracle資料庫。

當資料匯入成功後卻發現按欄位進行查詢卻老是提示列不存在。

這時就需要我們將表名和欄位名批量修改為大寫方式。

預存程序如下:

create or replace procedure PD_BATCHRENAMETOUPPERASmysql varchar2(1000);cursor cur is select table_name from user_tables where table_name<>upper(table_name);BEGIN   --批次更新表名   FOR row IN cur LOOP     mysql:='alter table "'||row.table_name||'" rename to '||upper(row.table_name);     dbms_output.put_line(mysql);     execute immediate mysql;   END LOOP;   --批次更新列名   FOR cl IN (SELECT table_name,column_name from user_tab_columns WHERE column_name<>upper(column_name) and upper(column_name) not in('SIZE','CHECK'))   LOOP       mysql:='alter table '||cl.table_name||' rename column "'|| cl.column_name ||'" to '||upper(cl.column_name);       dbms_output.put_line(mysql);       execute immediate mysql;   END LOOP;END;

執行預存程序即可:

begin PD_BATCHRENAMETOUPPER();end;

注意:有時候可能欄位名是一些關鍵字,導致執行失敗,可以根據錯誤提示將關鍵字在預存程序中進行過濾排除,然後重新編輯預存程序再次執行即可。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.