Oracle 尝试删除数字列时出现ORA-12899值太大错误
我试图使用以下语句从Oracle中的表中删除一列:Oracle 尝试删除数字列时出现ORA-12899值太大错误,oracle,Oracle,我试图使用以下语句从Oracle中的表中删除一列: ALTER TABLE "MY_TABLE" DROP COLUMN "ENABLED"; 但我得到了这个错误: ORA-12899: value too large for column "MY_TABLE"."ENABLED" (actual: 184, maximum: 22) 该列定义为 "ENABLED" NUMBER(1,0) DEFAULT NULL NOT NULL ENABLE, 并且它在所有行中只有0或1的值 有人能告
ALTER TABLE "MY_TABLE" DROP COLUMN "ENABLED";
但我得到了这个错误:
ORA-12899: value too large for column "MY_TABLE"."ENABLED" (actual: 184, maximum: 22)
该列定义为
"ENABLED" NUMBER(1,0) DEFAULT NULL NOT NULL ENABLE,
并且它在所有行中只有0或1的值
有人能告诉我为什么会出现此错误以及如何删除列吗?您可能有一些编码不正确的行,您可能需要尝试触发器: -创建一个表
新的\u我的\u表
,其结构与我的\u表
相同,但不包含“ENABLED”
列
-将一个插入到新的\u我的\u表(col1,col2…)中,从我的\u表中选择(col1,col2…)
-将我的表格重命名为我的旧表格
-将新的\u我的\u表重命名为我的\u表
-删除我的表\u OLD
您可以尝试先将其设置为未使用,然后删除未使用的列。有关更多信息,请参阅。有关调试,您可以尝试:从MY_表中选择*,其中启用了not in(0,1)选择not in(0,1)不返回任何行。该列没有限制,只是用作一个简单的标记。请编辑您的问题,并为my_table
添加完整的create table
语句。您可能遇到错误17325413?请先尝试将其设置为未使用,然后删除未使用的列。查看更多信息