oracle可否直接改表字段数据类型?
来源:百度知道 编辑:UC知道 时间:2024/09/21 23:17:36
我不是同进修改两个,刚刚粘语句的时候,没粘好. 这个字段也不是主键也不是非空字段. 另外rjiang2008所说的,先改成long,再改成clob的方法也不行. 直接改数据类型,不管改成什么类型都不行. 我有另外一种方法,就是新建一个clob类型的临时字段,然后把原字段的数据拿过来,然后再删除原字段,再把临时字段名改成原子段名,但是这样就需求五条语句, 所有这些操作只为了修改字段类型到clob, 有没有可能把这些操作整成一条SQL语句.
好像不能直接转,要把varchar2类型先转成long
SQL> desc test;
Name Type Nullable Default Comments
---- ------------ -------- ------- --------
COL VARCHAR2(10) Y
SQL> alter table test modify col long;
Table altered
SQL> desc test;
Name Type Nullable Default Comments
---- ---- -------- ------- --------
COL LONG Y
SQL> alter table test modify col clob;
Table altered
SQL> desc test;
Name Type Nullable Default Comments
---- ---- -------- ------- --------
COL CLOB Y
--补充
楼主上面那做法。好像没办法一条语句完成
增加字段--update---删原来字段---改字段名
只能一步步的做
还有刚才先改long在改clob字段没成功,我估计是
这张表现有数据不能做类型转换的原因吧。
可以先创建张表备份表在原数据放到这表中,然后再修改原表
字段类型,最后在把数据导入原表
试试看吧
不行 lz别瞎忙活了 必须要三条以上的语句 除非你的表里没有数据才能修改字段类型
不同同时修改2个表,你可以一个一个修改,并且如果所修改的列是主键列的话,需要先移除主键然后才能修改数据类型!
不同同时修改2个表