日期:2014-05-17  浏览次数:20981 次

大牛来急救,关于表中字段类型的修改出错啦!!
SQL> desc students
 名称                                      是否为空? 类型
 ----------------------------------------- -------- -------------
 SID                                       NOT NULL VARCHAR2(5)
 FNAME                                              VARCHAR2(20)
 LNAME                                     NOT NULL VARCHAR2(20)
 MINIT                                              CHAR(1)
 PHONES                                             CHAR(12)
 ADDRESS                                            VARCHAR2(24)

上面是我得表,SID的类型为varchar想将其修改为number,SID是这个表的主键,另外还有表也有SID属性引用此表的,我该怎么写???
下面的方法出错:

SQL> alter table students modify sid number(10);
alter table students modify sid number(10)
                            *
第 1 行出现错误:
ORA-02267: 列类型与引用的列类型不兼容
table null sql

------解决方案--------------------
新建一个过度的列 sid0number(10),把sid的值复制到此列
另外还有表也有SID属性引用此表的
把引用先停掉
删掉sid 把sid0改为sid