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

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

それは動作しません...

于 2012-07-28T02:27:56.623 に答える