SQL复制列并更改数据类型

SQL复制列并更改数据类型,sql,types,clob,type-conversion,tablespace,Sql,Types,Clob,Type Conversion,Tablespace,我有一个已经填充的表 我需要将一列的数据类型从LONG更改为CLOB 但是,该数据库由第三方托管,表空间有限 我知道命令: ALTER TABLE myTable MODIFY my_data CLOB 但是,经过长时间等待后,我收到了错误: ORA-01652: unable to extend temp segment by 128 in tablespace 增加表空间不是一个选项 有什么解决办法吗 我是否可以创建一个数据类型为CLOB的新列,然后从my_data(LONG)中复制和转

我有一个已经填充的表

我需要将一列的数据类型从LONG更改为CLOB

但是,该数据库由第三方托管,表空间有限

我知道命令:

ALTER TABLE myTable MODIFY my_data CLOB
但是,经过长时间等待后,我收到了错误:

ORA-01652: unable to extend temp segment by 128 in tablespace
增加表空间不是一个选项

有什么解决办法吗

我是否可以创建一个数据类型为CLOB的新列,然后从my_data(LONG)中复制和转换数据,而无需拖动表空间?我可以关掉撤销来帮忙吗


非常感谢

我想说的是,最好的选择是使用新数据类型创建一个新列,根据旧列进行更新,然后删除旧列,但由于存在空间问题,这可能不是一个选择


或者你可以试着在一系列的浴场中这样做。例如,将10000行数据移动到新列,然后将这10000行的旧值设置为null,以释放一些空间

我认为最好的选择是使用新的数据类型创建一个新列,根据旧列进行更新,然后删除旧列,但由于存在空间问题,这可能不是一个选择


或者你可以试着在一系列的浴场中这样做。例如,将10000行数据移动到新列,然后将这10000行的旧值设置为null,以释放一些空间

这就是我想做的,但是第一列数据类型很长,第二列是CLOB。复制时如何在这两列之间转换?取决于您的数据库引擎,如果sql server可以执行更新表集column2=cast(column1作为数据类型),其中…这就是我想做的,但是,第一列数据类型很长,第二列是CLOB。复制时如何在这两列之间转换?取决于您的数据库引擎,如果sql server可以执行更新表集column2=cast(column1作为数据类型),其中。。。