• Oracle中实现获取指定表名称批量修改表中的字段类型


    一、业务需求

        在进行业务开发过程中,需要实现获取到Oracle中指定数据库下的指定表,然后对这些指定的表修改字段类型,比如需要将类型Varchar2的大小从100修改为200。

    二、思路分析

    ①获取到Oracle中指定数据库下的指定表;

    ②修改指定表的类型sql;

    ③遍历执行修改不同表的指定字段类型;

    三、实现方法

    3.1、获取到Oracle中指定数据库下的指定表

    获取所有表信息
    序号获取所有表sql说明
    1
    SELECT * FROM dba_tables;

    可以查看所有表信息(即所有系统表+所有用户表)

    具有【可以访问DBA_TABLES数据字典视图】权限;

    DBA授予您SELECT ANY DICTIONARY特权或SELECT_CATALOG_ROLE角色(其中任何一个都允许您查询任何数据字典表)

    2
    select * from all_tables;
    可以查看所有用户的表
    3
    select * from user_tables;
    可以查看当前用户的所有表
    4
    select * from user_tab_columns;
    可以查看到所有用户的表结构信息

    3.2、修改指定表的类型sql

    表字段的操作
    序号表字段的操作SQL说明
    1
    alter table test_People add(workAddress varchar2(100));
    alter table test_People add(workAddress varchar2(100),telNumber varchar2(11));

    ①给test_People表添加一个新字段workAddress类型为varchar2且大小为100;

    ②给test_People表添加2个新字段(workAddress类型为varchar2且大小为100;telNumber类型为varchar2且大小为11)

    2
    alter table test_People rename column TYPENAME to testname;
    将test_People表的TYPENAME列名称修改为testname
    3
    update test_People set testname=TYPENAME;
    将test_People表中的TYPENAME列的数据更新到testname列中
    4
    alter table test_People modify TYPENAME VARCHAR2(200);
    将test_People表中的TYPENAME列修改为Varchar2类型且大小为200
    5
    alter table test_People drop column testname;
    将test_People表中的testname列删除

    3.3、遍历执行修改不同表的指定字段类型

    1. --首先查询出当前用户下的所有以test开头的表的表名称,然后使用FOR函数遍历出每个test开头的表名称执行修改每个test开头表中TYPENAME列的字段类型为VARCHAR2且大小为200
    2. BEGIN
    3. FOR r IN (select TABLE_NAME from user_tables WHERE TABLE_NAME like 'test%') LOOP
    4. execute immediate 'ALTER table '|| r.TABLE_NAME ||' MODIFY TYPENAME VARCHAR2(200)';
    5. END LOOP;
    6. END;
    1. --FOR函数的语法
    2. FOR var IN 1..10 LOOP
    3. statement_list
    4. END LOOP;
  • 相关阅读:
    fetch请求获取blob和arraybuffer文件流及核心API使用总结 -新
    L. Paid Leave(贪心)[CCPC Finals 2021]
    Linux进程控制
    【C进阶】指针(二)
    驱动编写应用程序控制三盏灯亮灭
    2022年Redis最新面试题 - Redis运维和部署
    AH Formatter V7.2 MR7更新
    MySQL - 慢查询优化
    Android 使用poi生成Excel ,word并保存在指定路径内
    【vue2第十一章】v-model的原理详解 与 如何使用v-model对父子组件的value绑定 和修饰符.sync
  • 原文地址:https://blog.csdn.net/xiaochenXIHUA/article/details/127622965