oracle将指定的表中所有字段变为大写
问题最近在写一个项目,用到的是oracle数据库,但是在执行oracle语句的时候总是提示找不到字段,只有将字段名称用双引号引起来才可以解决问题,最后发现是由于数据库字段名称是小写造成的,但是一个一个的手动替换太过于麻烦,要是将所有的表都替换风险又太大,因为自己涉及到的只有新增的七八张表,所以用了一个指定表名称来替换的方法,如图。解决图中有三个地方需要修改成我们自己的表名称,注意有两个是用单引号括
·
问题
最近在写一个项目,用到的是oracle数据库,但是在执行oracle语句的时候总是提示找不到字段,只有将字段名称用双引号引起来才可以解决问题,最后发现是由于数据库字段名称是小写造成的,但是一个一个的手动替换太过于麻烦,要是将所有的表都替换风险又太大,因为自己涉及到的只有新增的七八张表,所以用了一个指定表名称来替换的方法,如图。
解决
图中有三个地方需要修改成我们自己的表名称,注意有两个是用单引号括起来的,有一个是没用单引号括起来的。完整sql如下
begin
for c in (select COLUMN_NAME cn from all_tab_columns where table_name='表名') loop
begin
execute immediate 'alter table 表名 rename column "'||c.cn||'" to '||c.cn;
exception
when others then
dbms_output.put_line('表名'||'.'||c.cn||'已经存在');
end;
end loop;
end;
总结
这样我们可以根据表名称来指定修改表的字段。上面的代码我们可以直接在navicat、pl/sql等工具中直接运行,如图
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)