小编典典

如何将dataype CLOB更改为VARCHAR2(sql)

sql

表:客户

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,所以我得到了。


阅读 189

收藏
2021-03-23

共1个答案

小编典典

您可以尝试以下方法:

  1. 添加一个新列作为varchar2

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

  1. 将UPDATE CLOB名称更新为varchar2列;

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

经过 测试数据

  1. DROP CLOB列

alter table my_table drop column old_column

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

alter table my_table rename column new_column to old_column

2021-03-23