1

我试过的更新查询:

 Update table_name
   set data='.....' || Dbms_lob.substr(data,1,20)
   where key  ='...'

可以更新,但第20位之后的所有数据也被清除了。

怎么修改sql?

4

2 回答 2

2

检查 dbms_lob.substr 上的语法。它是标准 substr 的反面,因此如果您想要数据的前 20 个字符,它将是 dbms_lob.substr(data,20,1)。或更好,

dbms_lob.substr(lob_loc=>data,amount=>20,offset=>1);

请注意,它返回一个 varchar2,因此数量 <= 32767。

于 2012-07-27T13:40:59.690 回答
0

更新 [tableName] set field=dbms_lob.substr(field, 3,1)+'abc' where field=value

它不能工作...

于 2012-07-28T02:27:56.623 回答