Oracle如何批量将表中字段名全转换为大写(利用简单存储过程)

作者:w.ang.jie 时间:2024-01-22 11:23:41 

前言

今天查询一个数据字段一直提示字符无效,明明在数据库表字段中是存在的;

查询后得知,数据库表字段为小写时,查询需要将字段名小写并加上双引号;

表名同理,我这里表名是大写,暂时不需要改。

搜到一个批量修改字段名为大写的存储过程,如下:

登陆到要修改的用户下,

执行:


begin
for cl in (SELECT table_name,column_name from user_tab_columns WHERE column_name<>upper(column_name) and upper(column_name) not in('SIZE','CHECK')) loop
begin
execute immediate 'alter table '||cl.table_name||' rename column "'|| cl.column_name ||'" to '||upper(cl.column_name);
exception
when others then
dbms_output.put_line(cl.table_name||'.'||cl.column_name||'已存在');
end;
end loop;
end;

即完成该用户下所有表字段名改为大写的过程。

附上批量修改表名为大写的存储过程,以备后用:


-- oracle 批量修改表名为大写(当前登录用户)
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;

再附 字段类型批量修改(此时表内无内容):


DECLARE
 CURSOR TEMP IS SELECT TABLE_NAME,COLUMN_NAME,DATA_LENGTH FROM USER_TAB_COLUMNS WHERE DATA_TYPE = 'NVARCHAR2' AND ROWNUM < 100;
 STR VARCHAR2(100) := '';
BEGIN
  FOR S IN TEMP LOOP
   STR := 'ALTER TABLE '||S.TABLE_NAME||' MODIFY('||S.COLUMN_NAME||' VARCHAR2(200))';
   DBMS_OUTPUT.PUT_LINE(STR);
  EXECUTE IMMEDIATE STR ;

END LOOP;
END;

来源:https://blog.csdn.net/qq_32392597/article/details/109599007

标签:oracle,字段名,大写
0
投稿

猜你喜欢

  • 详解Python3的TFTP文件传输

    2023-06-01 22:29:17
  • 对python-3-print重定向输出的几种方法总结

    2023-10-21 19:38:58
  • 分享18个最佳代码编辑器/IDE开发工具

    2022-03-26 01:31:24
  • 修改SQL Server 2005 sa用户密码的方法

    2008-12-10 14:41:00
  • python中Switch/Case实现的示例代码

    2021-09-18 22:03:39
  • 基于python实现百度翻译功能

    2023-09-06 15:14:18
  • python机器学习基础决策树与随机森林概率论

    2023-06-04 16:55:08
  • 使用Pandas将inf, nan转化成特定的值

    2023-04-15 23:36:33
  • 经典SQL语句大全

    2009-08-26 16:44:00
  • Entity Framework Core生成数据库表

    2024-01-15 18:09:29
  • Python的代理类实现,控制访问和修改属性的权限你都了解吗

    2022-10-25 13:09:47
  • python读取文件名称生成list的方法

    2021-12-21 02:40:34
  • python爬虫把url链接编码成gbk2312格式过程解析

    2023-04-26 21:00:10
  • Django CSRF跨站请求伪造防护过程解析

    2021-04-15 03:00:50
  • 提高CSS代码的可读性

    2008-05-11 18:59:00
  • JS将数字转换成三位逗号分隔的样式(示例代码)

    2024-05-02 16:26:59
  • Mysql 5.7 新特性之 json 类型的增删改查操作和用法

    2024-01-24 23:45:53
  • 如何在Python中用好短路机制

    2022-04-23 16:56:42
  • pycharm修改文件的默认打开方式的步骤

    2023-04-18 10:38:23
  • python实现图片素描效果

    2022-06-10 21:00:40
  • asp之家 网络编程 m.aspxhome.com