我有一个列(URL),其URL值包含varchar2(4000)数据类型。那里的一些值超过了4000个字符,那么有没有办法让我只将超过4000个字符的列中的那些值替换为用同一列中的子字符串替换原始值?
答案 0 :(得分:2)
您可以找到超过4000个字符的列,
select userid, length(description)
from Users
where length(description) > 4000;
所以您可以在CTL文件中自行完成分辨率,如下所示,
description "SUBSTR(:description, 1, 4000)",
如果您不想丢失数据,则可以使用CLOB
数据类型而不是varchar2(4000)
答案 1 :(得分:2)
Varchar最多支持4,000个字符;每个函数输出(如SUBSTR)都是一个varchar,因此不能容纳超过4,000个字符的字符串。你将使用clob;但一个clob是一个lobobject;所以,它会很慢。
您可以在创建表时添加2列并使用PL / SQL块作为varchar,PL / SQL中最多可以包含32,767个字符。