oracle 10g 表字段类型的修改 如把某字段varchar2(200)改为Long类型,
只要记录中有数据,就不允许转换,有方法直接转换吗?本人的意思是直接把字段类型由varchar2改为Long的方法,
如果是新增一个字段再间接转换就不需要了,
意在探讨,我觉得这点Oracle设置有点不合理,如果是生产系统,记录上亿,
要借助一个间接字段来达到转换目的话,这种效率觉得无法忍让,
望各位指点,谢谢!
只要记录中有数据,就不允许转换,有方法直接转换吗?本人的意思是直接把字段类型由varchar2改为Long的方法,
如果是新增一个字段再间接转换就不需要了,
意在探讨,我觉得这点Oracle设置有点不合理,如果是生产系统,记录上亿,
要借助一个间接字段来达到转换目的话,这种效率觉得无法忍让,
望各位指点,谢谢!
许多限制所以能不用尽量不用
Table created
SQL> insert into t1 values('asdfasdfsadasdfasfdasdfsdafsadfasdfsadfasdfasdfjljasldfjsdaf');
1 row inserted
SQ
SQL> commit;
Commit complete
SQL> create table t2(id long);
Table createdSQL> insert into t2 select id from t1;
1 row inserted
SQL> commit;
Commit complete
SQL> select * from t2;
ID
--------------------------------------------------------------------------------
asdfasdfsadasdfasfdasdfsdafsadfasdfsadfasdfasdfjljasldfjsdaf
SQL> 可以直接转换,但是varchar2有字符个数限制,好像是4000吧,不确认
以目前的oracel还做不到但用一楼的做法重新建表再导入
我觉得是比直接在表里新建字段再update效率高的