返回顶部

收藏

将oracle表名及字段名改为大写

更多

当使用powerdesigner创建数据库时要注意大小写。

注:以下脚本在oracle 10g,11g上正确执行

批量将表名变为大写: 
begin
   for c in (select table_name tn from user_tables where table_name <> upper(table_name)) loop
       begin 
          execute immediate 'alter table "'||c.tn||'" rename to '||c.tn;
        exception 
          when others then 
             dbms_output.put_line(c.tn||'已存在');
       end; 
   end loop;  
end; 
批量将空间内所有表的所有字段名变成大写 
begin   
  for t in (select table_name tn from user_tables) loop 
      begin 
         for c in (select column_name cn from user_tab_columns where table_name=t.tn) loop 
             begin 
                execute immediate 'alter table "'||t.tn||'" rename column "'||c.cn||'" to '||c.cn; 
             exception 
                when others then 
                   dbms_output.put_line(t.tn||'.'||c.cn||'已经存在'); 
             end; 
         end loop; 
      end; 
  end loop;  
end;   
将用户空间的所有表名及所有字段变为大写 
begin 
   for t in (select table_name tn from user_tables where table_name <> upper(table_name)) loop 
       begin 
          for c in (select column_name cn from user_tab_columns where table_name=t.tn) loop 
              begin 
                 execute immediate 'alter table "'||t.tn||'" rename column "'||c.cn||'" to '||c.cn;   
              exception 
                 when others then 
                    dbms_output.put_line(t.tn||'.'||c.cn||'已经存在'); 
              end; 
          end loop; 
          execute immediate 'alter table "'||t.tn||'" rename to '||t.tn;
          exception 
             when others then 
                dbms_output.put_line(t.tn||'已存在'); 
       end; 
   end loop;  
end;
--该片段来自于http://outofmemory.cn

标签:sql,数据库

收藏

0人收藏

支持

0

反对

0

发表评论