暂无图片
oracle修改表字段长度后,需要做特殊维护吗?
我来答
分享
暂无图片 匿名用户
oracle修改表字段长度后,需要做特殊维护吗?

oracle修改表字段长度后,需要做特殊维护吗?


比如 char(10) 变成了char(20) ,alter完成后,需要特殊维护吗?比如表数据重新构建一次

我来答
添加附件
收藏
分享
问题补充
9条回答
默认
最新
董大威

不需要。

暂无图片 评论
暂无图片 有用 7
打赏 0
LWT0921

不需要

暂无图片 评论
暂无图片 有用 2
打赏 0
张sir

不需要

暂无图片 评论
暂无图片 有用 0
打赏 0
Panda攀

不需要。

暂无图片 评论
暂无图片 有用 1
打赏 0
Mark

在Oracle数据库中,修改表字段长度不需要做特殊维护,因为Oracle数据库系统已经为这种操作提供了丰富的支持。
当需要修改表字段的长度时,可以使用ALTER TABLE语句来修改表的结构。例如,如果要将表t1的字段age的长度从5个字符修改为10个字符,可以使用以下SQL语句:
ALTER TABLE t1 MODIFY COLUMN age VARCHAR2(10);
该语句使用了MODIFY COLUMN子句来修改表t1中的字段age的长度。注意,VARCHAR2是一种可变长度的数据类型,它可以存储任意长度的字符串数据。
在修改表结构之后,需要使用ALTER TABLE语句来保存新的结构。例如,可以使用以下SQL语句来保存新的表结构:
ALTER TABLE t1 SAVESTRUCTURE;
该语句使用了SAVESTRUCTURE子句来保存新的表结构。注意,SAVESTRUCTURE是一种特殊的行为,它表示在修改表结构之后,需要将新的结构保存到数据库中,以便以后使用。

总之,在Oracle数据库中,修改表字段长度不需要做特殊维护,只需要使用ALTER TABLE语句来修改表结构即可。在修改表结构之后,需要使用SAVESTRUCTURE语句来保存新的表结构。

暂无图片 评论
暂无图片 有用 3
打赏 0
广州_老虎刘

从性能的角度来看, 是需要的。 

因为char(10) 改成char(20) 后,行长马上就变长了, 会导致大量的行迁移,影响性能(如果表的平均行长比较大, 一个数据块中包含的记录数比较少,则出现行迁移的几率也会降低)。 如果表的pctfree之前设置了一个比较大的值,可能会减少行迁移的可能性,但是一般建表时都会使用默认的10.

如果是varchar2(10) 改成 varchar2(20) , 这个操作只是修改了数据字典,没有真正把行长变长,只有当大量的记录真正的被update变长之后, 才会出现行迁移的情况。


综上,如果是char(10)modify 到char(20),还是建议做一个move操作,消除行迁移。 而varchar2的变长,则需要根据具体情况进行move重组操作。

暂无图片 评论
暂无图片 有用 7
打赏 0
小洋

修改表字段前,先检查下存储过程、触发器、包体 有没有包含这个表字段,因为修改表字段后,可能会导致相关的存储过程、触发器、包体失效,需要重新编译下。

暂无图片 评论
暂无图片 有用 0
打赏 0
布衣
暂无图片

不需要

暂无图片 评论
暂无图片 有用 0
打赏 0
杜伟

检查下,是否有基于该表的物化视图,另外刘老虎老师说的行迁移情况,可以参考下

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
在Oracle数据库中,哪个后台进程负责维护数据块的缓冲区缓存,并且当数据库缓冲区变满时,它会将最近最少使用的块写出到磁盘?
回答 1
已采纳
选D.DBWn这是数据库写入进程,负责将修改过的数据库缓冲区内容写入磁盘。当缓冲区变满时,DBWn会将最近最少使用的块写出到磁盘。
Oracle中的库要做dg 内网只有千兆 数据文件2T左右 ,只有一块网卡使用rman辅助实例同步数据到备库会影响业务吗?
回答 2
已采纳
会有一定影响。
在redhat6.5安装oracle 11g rac后只显示一个节点,怎么解决?
回答 4
通过crsctlcheckclusterall看看状态另外检查GIHOME的log日志看看
Oracle修改用户名会有什么风险吗?
回答 2
不建议去修改基表相关的信息,你可以选择使用数据泵的方式来达到用户名更换的目的,且没有风险。示例:impdp\'/assysdba\'directoryDATAPUMPdumpfileexpdpdate
Oracle能不能写个触发器,让数据不真实写入表?
回答 1
UPDATE,Delete看你怎么写  
Oracle acfs文件系统,能在挂载的状态下调整vol的大小么?
回答 3
已采纳
可以的,其实就是直接调整acfs了。参考HowToResizeAnACFSFilesystem/ASMVolume(ADVM)(DocID1173978.1)
oracle 双节点rac 11g 安装软件时报错 CRS-2613 CRS-4000
回答 1
主要问题是ASM实力没有运行正常,和oc4j关系不大
生产环境trc文件出现 process J000 is dead 是什么问题?期间 客户端连接提示:ORA-27102
回答 5
看看这篇文章是否有帮助:https://blog.csdn.net/as1123671649/article/details/132058817
sql优化
回答 2
执行计划看着很乱,给个sqlhc报告。另外gamsassetcard过滤之后的数据量是多少?temp、tempYe子查询返回数据量多少?
Oracle RAC 集群删除过期归档 和单实例, 是同样的操作吗?
回答 1
已采纳
一样,没有区别,值得注意的是,如有备库或者OGG之类的需要用到归档日志的,一定要检查备库同步正常,OGG复制正常才可以删除日志。如下删除语句:run{crosscheckarchivelogall;d