IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Oracle中实现获取指定表名称批量修改表中的字段类型 -> 正文阅读

[大数据]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、遍历执行修改不同表的指定字段类型

--首先查询出当前用户下的所有以test开头的表的表名称,然后使用FOR函数遍历出每个test开头的表名称执行修改每个test开头表中TYPENAME列的字段类型为VARCHAR2且大小为200

BEGIN

FOR r IN (select TABLE_NAME from user_tables WHERE TABLE_NAME like 'test%') LOOP
   execute immediate 'ALTER  table '|| r.TABLE_NAME ||' MODIFY TYPENAME VARCHAR2(200)';
END LOOP;

END;
--FOR函数的语法

FOR var IN 1..10 LOOP
	statement_list
END LOOP;
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-11-05 00:34:29  更:2022-11-05 00:36:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 -2025/4/30 20:52:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码