缩小oracle中的一列

缩小oracle中的一列,第1张

概述假设我有一个具有以下定义的表 create table dummy (col1 number(9) not null) 这个dummy.col1中的所有值都是7位长.现在我想使用alter命令将此列的长度从9 – 7减少. Oracle给出了错误,即要修改的列必须为空以降低精度或比例.说得通. 我想问一下是否有任何减少列大小的工作? >我无法删除列中的值. >我无法将此列中的值复制到另一列,因为它 假设我有一个具有以下定义的表

create table dummy (col1 number(9) not null)

这个dummy.col1中的所有值都是7位长.现在我想使用alter命令将此列的长度从9 – 7减少. Oracle给出了错误,即要修改的列必须为空以降低精度或比例.说得通.

我想问一下是否有任何减少列大小的工作?

>我无法删除列中的值.
>我无法将此列中的值复制到另一列,因为它有数万亿个数据.

解决方法 列大小与数据的物理存储方式无关(它们是可变长度)

例如如果存储在数字(38)中,数字(2)中的“23”将占用完全相同的空间

它纯粹是对可以存储在列中的最大数量的约束,因此您只需在列上添加约束:

ALTER table dummy ADD CONSTRAINT c1CHECK (col1 < 9999999)ENABLEVALIDATE;

如果你想让它更快一点,将VALIDATE更改为NovalIDATE显然这不会检查现有数据的有效性.

总结

以上是内存溢出为你收集整理的缩小oracle中的一列全部内容,希望文章能够帮你解决缩小oracle中的一列所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1164447.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存