【问题标题】:How to change a dataype CLOB TO VARCHAR2(sql)如何将数据类型 CLOB 更改为 VARCHAR2(sql)
【发布时间】:2013-11-07 16:57:09
【问题描述】:

表:客户

ID      NAME             DATATYPE
NUMBER  VARCHAR2(100)    CLOB

我想将 DATA 列从 CLOB 更改为 `VARCHAR2(1000)

我也试过ALTER TABLE customers MODIFY DATA VARCHAR2 (1000)

ALTER TABLE customers MODIFY (DATA VARCHAR2 (1000))

还有

alter table customers  modify
(data VARCHAR2(4000))

如果数据类型不是 clob,这些通常可以工作,但我得到了 ORA-22859,因为我使用的是 oracle toad/apex。

【问题讨论】:

    标签: sql oracle ddl clob varchar2


    【解决方案1】:

    你可以试试这个:

    1. 添加一个新列作为 varchar2

      alter table my_table add (new_column varchar2(1000));

    2. 将 CLOB 名称更新到 varchar2 列;

      update my_table set new_column=dbms_lob.substr(old_column,1000,1);

    测试您的数据后

    1. 删除 CLOB 列

      alter table my_table drop column old_column

    2. 将 varchar2 列重命名为 CLOB 列名

      alter table my_table rename column new_column to old_column

    【讨论】:

    • 大声笑我也这么想,但我做不到。他们应该离开去改变clob数据类型
    • They should be away to change clob datatype..这是什么意思?
    • 这意味着将 clob 更改为 varachar2 或数字,就像您可以将 varchar2(100) 更改为 varchar2(1000) 或 vaachar2 更改为数字等一样
    • @PHPnoob:- 更新了我的答案。这有帮助吗?
    • 你想要我 add 一个新的列,而我正在尝试将现有的列 datatype 从 clob 更改为 varchar2
    猜你喜欢
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    相关资源
    最近更新 更多