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: 列类型与引用的列类型不兼容tablenullsql
名称 是否为空? 类型
----------------------------------------- -------- -------------
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: 列类型与引用的列类型不兼容tablenullsql
另外还有表也有SID属性引用此表的
把引用先停掉
删掉sid 把sid0改为sid
删掉后 记着 处理完了 再 把外键加上
问你一个问题!!
SQL> desc emp_test
名称 是否为空? 类型
----------------------------------------- -------- -------------------------
EMPNO NOT NULL NUMBER(4)
ENAME NOT NULL VARCHAR2(20)
SAL NUMBER(6)
HIREDATE DATE
再
SQL> select constraint_name,constraint_type,table_name
2 from user_constraints
3 where table_name='emp_test';未选定行为什么显示为未选择行呢??
问你一个问题!!
表为,里面有非空约束啦
SQL> desc emp_test
名称 是否为空? 类型
----------------------------------------- -------- -------------------------
EMPNO NOT NULL NUMBER(4)
ENAME NOT NULL VARCHAR2(20)
SAL NUMBER(6)
HIREDATE DATE
再
SQL> select constraint_name,constraint_type,table_name
2 from user_constraints
3 where table_name='emp_test';未选定行为什么显示为未选择行呢??这样我都查不出外键名了!!
yes!!谢谢,为什么会这样呢??不是在oracle中默认都会自转大写的吗?除了用双引号标注的,这里用的是'',我觉得应该到数据库中的时候这里面的符号自动转为大写了!