oracle可否直接改表字段数据类型?

来源:百度知道 编辑:UC知道 时间:2024/09/21 23:17:36
oracle可否直接改表字段数据类型,我想把varchar改成clob类型,alter table PRO_CODE_STANDARD modify CONTENT_UBB clob;这条语句没有问题吧!可是运行时却不成功,有什么好的解决办法吗?
我不是同进修改两个,刚刚粘语句的时候,没粘好. 这个字段也不是主键也不是非空字段. 另外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个表