Oracle无法修改列长度

时间:2015-07-22 07:51:33

标签: sql oracle alter

我需要更改表wrong_ban中的列rejected_pih。此列的当前数据类型为number(9),现在我需要将其修改为number。这是我使用的代码:

alter table
   rejected_pih
modify
(
   WRONG_BAN number
);

问题是列类型没有更改,但没有任何错误消息,即使日志表示此表已成功更改:table REJECTED_PIH altered.。但是如果我将表重命名为另一个名称(例如Rejected_PIH_2),则可以更改该列。请帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

这是一个简单的脚本,用于演示您的语句是否有效:

create table rejected_pih (WRONG_BAN number(9));
select data_type, data_precision from user_tab_columns where table_name = 'REJECTED_PIH';

DATA_TYPE                                        DATA_PRECISION
------------------------------------------------ --------------
NUMBER                                           9

alter table  rejected_pih modify (WRONG_BAN number);
select data_type, data_precision from user_tab_columns where table_name = 'REJECTED_PIH';

DATA_TYPE                                        DATA_PRECISION
------------------------------------------------ --------------
NUMBER                                            

如果你检查IDE中的定义,那么在此之前刷新元数据(可能成为问题)。