【问题标题】:SQL copy column AND change data typeSQL 复制列并更改数据类型
【发布时间】:2012-07-19 12:25:23
【问题描述】:

我有一个已经填充的表格。

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

但是这个数据库是由第三方托管的,表空间有限。

我知道命令:

ALTER TABLE myTable MODIFY my_data CLOB

但是我在漫长的等待后收到错误:

ORA-01652: unable to extend temp segment by 128 in tablespace

增加表空间不是一种选择。

有什么解决办法吗?

我是否可以创建一个数据类型为 CLOB 的新列,然后从 my_data (LONG) 复制和转换数据而不耗尽表空间?我可以关闭撤消功能吗?

非常感谢

【问题讨论】:

    标签: sql types clob type-conversion tablespace


    【解决方案1】:

    我会说最好的选择是使用新数据类型创建一个新列,根据旧列更新它,然后删除旧列,但是由于您遇到空间问题,这可能不是一个选项。

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

    【讨论】:

    • 这就是我想要做的,但是第一列的数据类型是 LONG,第二列是 CLOB 我如何在复制时在两者之间进行转换?
    • 取决于你的数据库引擎,如果 sql server 你可以更新表 set column2 = cast(column1 as data_type) where...
    猜你喜欢
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    • 2011-05-17
    • 1970-01-01
    • 2016-10-22
    相关资源
    最近更新 更多