|
最初由 rollingpig 发布
[B]9i有数据也是可以的
1。确认你的现存数据的最大设置
如 varchar2
select max(length(col_name)) from t_name
2.alter table t_name modify ( col_name varchar2(??))
只要??不超过现有数据的MAX就OK了。 [/B]
rollingpig, 我刚在9.2.0.1.0试了下,好象不行噢,结果如下:
SQL> desc csm_temp1
名称 是否为空? 类型
----------------------------------------- -------- ------------------
ALTERDTLID NUMBER(10)
PRICEID NUMBER(10)
GOODSID NUMBER(10)
TOPRICE NUMBER(20,10)
PRICEUNIT VARCHAR2(10)
SQL> select max(length(ALTERDTLID)) from csm_temp1;
MAX(LENGTH(ALTERDTLID))
-----------------------
6
SQL> alter table csm_temp1 modify ALTERDTLID number(7);
alter table csm_temp1 modify ALTERDTLID number(7)
*
ERROR 位于第 1 行:
ORA-01440: 要减小精确度或标度,则要修改的列必须为空 (empty) |
|