oracle 表和字段名 大小写转换

在创建表和表结构的时候,如果想要小写需要在名称上面添加双引号,如果不添加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";

 

修改字段名大写:

SELECT
    'alter table ' || table_name || ' rename column "' || column_name || '" to ' || UPPER (column_name) || ';'
FROM
    user_tab_columns
WHERE
    column_name <> UPPER (column_name);

这个时候,我们可以在sql plus或者toad等客户端工具中生成对应的alter语句,然后copy出来执行就ok了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle中,字段名默认是不区分大小写的。当你在写查询语句时,大小写对于字段名是没有影响的,结果都是一样的。这是因为Oracle会默认将你写的脚本全部转换为大写。然而,如果你在建语句中使用了双引号来字段名,那么Oracle将会严格区分大小写。这意味着,当你使用双引号来定义字段名时,你必须在查询语句中使用相同的大小写来引用这些字段。所以,要回答你的问题,一般情况下,Oracle字段名是不区分大小写的,除非你在建语句中使用了双引号来字段名。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [oracle字段区分大小写(一)](https://blog.csdn.net/chaofanashuai/article/details/106509004)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [oracle名、字段名大小写问题。](https://blog.csdn.net/weixin_30633949/article/details/99846140)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值