批量修改表名和列名

mahanso發表於2011-01-06
       oracle 做資料遷移的時候,有的時候會借用一些軟體來做部分遷移工作,經常遇到表名和列名出現雙引號(”)轉換小寫字母的表名和列名。 最終導致在oracle資料庫中查詢不到表或者列。

        例如:create table “mahanso” 
                    (
                          "id"  number
                    )

        今天總結了一下,處理方法如下:

一、表名處理sql:
select 'alter table "' || table_name || '" rename to ' || upper(table_name) || ';'
  from user_tables
 where table_name <> upper(table_name);


二、列名處理sql:
select 'alter table "' || table_name || '" rename column  "' || column_name ||
       '"   to   ' || upper(column_name) || ';'
  from user_col_comments
 where column_name <> upper(column_name)
   and table_name in (select table_name from user_tables)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12272958/viewspace-683352/,如需轉載,請註明出處,否則將追究法律責任。

相關文章