美文网首页
将oracle中的字段和表名全部修改为小写

将oracle中的字段和表名全部修改为小写

作者: 安易学车 | 来源:发表于2020-03-12 15:35 被阅读0次

    在创建表和表结构的时候,如果想要小写需要在名称上面添加双引号,如果不添加oracle数据库会默认识别为大写

    1.将表名和字段名改为大写

    批量将表名变为大写

    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;

    将特点表PROPERTY_INFO的所有列名小写变大写

    begin

    for c in (select COLUMN_NAME cn from all_tab_columns where table_name='PROPERTY_INFO') loop

    begin

    execute immediate 'alter table PROPERTY_INFO rename column "'||c.cn||'" to '||c.cn;

    exception

    when others then

    dbms_output.put_line('PROPERTY_INFO'||'.'||c.cn||'已经存在');

    end;

    end loop;

    end;

    2.将表名和字段名改为小写

    ①改表名为小写

    begin

      for c in (select table_name tn from user_tables where table_name <> lower(table_name)) loop

          begin

              execute immediate 'alter table '||c.tn||' rename to "'||lower(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 "'||lower(c.cn)||'"';

                exception

                    when others then

                      dbms_output.put_line(t.tn||'.'||c.cn||'已经存在');

                end;

            end loop;

          end;

      end loop;

    end;

    注:

    1.如果字段和表名都要改为小写,先改字段,再改表。

    2.如果表名获取字段名改为小写以后,要在查询语句中将表名和字段名都要加上双引号

    例.

     表名小写 :select * from "department";

      字段名小写:select "id" from "department";

    相关文章

      网友评论

          本文标题:将oracle中的字段和表名全部修改为小写

          本文链接:https://www.haomeiwen.com/subject/csdpjhtx.html