2015-07-22 35 views
0

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

alter table 
    rejected_pih 
modify 
(
    WRONG_BAN number 
); 

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

+1

是什么让你觉得它没有奏效?我已经尝试了以下,它是成功的。你使用的是什么版本的oracle? create table dg_test(var1 number(9)); desc dg_test; alter table dg_test modify(var1 number); desc dg_test; – davegreen100

+0

我更改后检查了表格细节,我看到类型没有改变。是的,我还创建了一个与我的表具有相同细节的表格,然后尝试更改我的新表格,并成功更改。我放弃旧的rejected_pih表,然后将新的重命名为rejected_pih,但该列再次自动更改为数字(9)。看起来很奇怪。 –

+0

@KingGoeks,你可以在这里发布你的尝试的输出,因为它应该工作。 –

回答

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定义之前(这可能是问题)刷新百达元。