惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
博客园 - 司徒正美
D
DataBreaches.Net
宝玉的分享
宝玉的分享
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 【当耐特】
人人都是产品经理
人人都是产品经理
博客园 - Franky
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
IT之家
IT之家
博客园 - 三生石上(FineUI控件)
J
Java Code Geeks
腾讯CDC
博客园_首页
The Cloudflare Blog
S
SegmentFault 最新的问题
C
Check Point Blog
美团技术团队
爱范儿
爱范儿
大猫的无限游戏
大猫的无限游戏
Hugging Face - Blog
Hugging Face - Blog
T
The Blog of Author Tim Ferriss
A
About on SuperTechFans
Blog — PlanetScale
Blog — PlanetScale

博客园 - 深海蓝精灵

Linux-Nginx同一端口同时支持HTTP、HTTPS协议 Linux-arm离线Tomcat安装solr及国产数据库配置 Linux-2台服务器-Redis-集群模式安装配置 Linux 系统架构:aarch64,docker、Docker-compose,包下载安装配置 Linux aarch64 架构离线 Docker-compose 搭建 Nginx+Keepalived 双机热备(高可用集群) Linux 部署nacos3.1.2,修改Console默认8080端口,修改为8081的解决方案 CloudBeaver Community,web界面,查询表字段长度、及存储过程信息 Linux 服务器 mac 地址查询命令 Linux-LVM 方式挂载大于3T磁盘,详细操作过程 BCLinux,镜像安装GitLab社区版 v18.5.1 Bcliux-docker-nacos2.2.0升级至2.2.3版本 Linux-查询全部密码过期用户 Oracle删除表数据恢复方法 BcLinux-Redis-集群(cluster)安装配置 Bclinux离线安装PostgreSQL10.23+PostGIS2.5编译安装配置 Oracle-失效链接清理 Linux-shell脚本链接Oracle执行查询 Linux系统中,修改密码永不过期 Oracle中replace函数使用简介 ORA-01652: 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段 BcLinux-Redis-集群(cluster)模式安装配置 Bclinux系统安装MongoDB Linux-下docker和主机之间的文件拷贝 解决:tcpdump -w xxxxx.cap 提示 Permission denied
Oracle-修改字段类型方法总结
深海蓝精灵 · 2024-02-04 · via 博客园 - 深海蓝精灵

有一个表名为test,字段段名为name,数据类型nchar(20)。

1、假设字段数据为空,则不管改什么字段类型,可以直接执行:
alter table test modify (name nvarchar2(20));

2、假设字段有数据,这时再来修改表的字段类型就无法修改:
alter table test modify (name nvarchar2(20));

3、假设字段有数据,则改为varchar2(40)执行时会弹出:“ORA-01439:要更改数据类型,则要修改的列必须为空”,这时要用下面方法来解决这个问题:
/*修改原字段名name为name_tmp*/
alter table test rename column name to name_tmp;

/*增加一个和原字段名同名的字段name*/
alter table test add name varchar2(40);

/*将原字段name_tmp数据更新到增加的字段name*/
update test set name=trim(name_tmp);

/*更新完,删除原字段name_tmp*/
alter table test drop column name_tmp;

总结:
1、当字段没有数据或者要修改的新类型和原类型兼容时,可以直接modify修改。
2、当字段有数据并用要修改的新类型和原类型不兼容时,要间接新建字段来转移。