Sql 如何将CLOB变量数据分配给Varchar2列

Sql 如何将CLOB变量数据分配给Varchar2列,sql,oracle,Sql,Oracle,如何将具有长度为4708个字符的CLOB数据类型的table1 column1中的数据插入到具有varchar24000的table2 column2中 提前谢谢你。好吧,4708到4000是不行的。所以你需要修剪它 insert into table2 (column2) select dbms_lob.substr( column1, 4000, 1 ) from table1 在oracle

如何将具有长度为4708个字符的CLOB数据类型的table1 column1中的数据插入到具有varchar24000的table2 column2中


提前谢谢你。

好吧,4708到4000是不行的。所以你需要修剪它

insert into table2 (column2)
select dbms_lob.substr( column1, 4000, 1 )
from table1

在oracle<12中,没有其他选择,您必须按照@APC的说法将clob削减到4000

在oracle 12++中,可以使用扩展数据类型。并将varchar的最大长度限制从4000更改为32767。从标准切换到扩展是单向操作

在此之后,您可以执行从一个表到另一个表的简单插入