麻煩的 text欄位

2021-09-05 15:56:32 字數 1660 閱讀 3305

很多別的字段可以用的他不可以用,支援text欄位處理的僅有下面的函式和語句可以與 ntext、text 或 image 資料一起使用,麻煩啊麻煩,所以在此列出這些差別之處,方便日後使用。

函式          語句

datalength    readtext

patindex      set textsize

substring     updatetext

textptr       writetext

textvalid

1:替換

--建立資料測試環境

create table #tb(aa text)

insert into #tb select 'abc123abc123,asd'

--定義替換的字串

declare @s_str varchar(8000),@d_str varchar(8000)

select @s_str='123' --要替換的字串

,@d_str='000' --替換成的字串

--字串替換處理

declare @p varbinary(16),@postion int,@rplen int

select @p=textptr(aa),@rplen=len(@s_str),@postion=charindex(@s_str,aa)-1 from #tb

while @postion>0

begin

updatetext #tb.aa @p @postion @rplen @d_str

select @postion=charindex(@s_str,aa)-1 from #tb

end--顯示結果

select * from #tb

--刪除資料測試環境

drop table #tb

/****************全部替換************************/

declare @ptrval binary(16)

select @ptrval = textptr(aa)  from  #tb  where aa like '%資料2%'

if @ptrval is not null        -- 一定要加上此句,否則若找不到資料下一句就會報錯

updatetext #tb.aa @ptrval 0 null '資料3'

/****************在字段尾新增**********************************/

--定義新增的的字串

declare @s_str varchar(8000)

select @s_str='*c'   --要新增的字串

--字串新增處理

declare @p varbinary(16),@postion int,@rplen int

select @p=textptr(detail) from test where id='001'

updatetext test.detail @p null null @s_str

總結:1:text欄位型別不能直接用replace函式來替換,必須用updatetext

2:字段比較不能用 where 字段 = 『某資料』,可以用like來代替

3:updatetext時,若@ptrval值為空會出錯,需注意。

Mysql 中的Text欄位的範圍

mysql中text 最大長度為65,535 2的16次方 1 字元的text列。如果你覺得text長度不夠,可以選擇 mediumtext最大長度為16,777,215。longtext最大長度為4,294,967,295 需要弄清楚的是text 和 char varchar blob這幾種型別的...

MySQL中TEXT與BLOB欄位型別的區別

一 型別。blob是乙個二進位製大物件,可以容納可變數量的資料。有4種 blob型別 tinyblob blob mediumblob和longblob。它們只是可容納值的最大長度不同。有4種text型別 tinytext text mediumtext和longtext。這些對應4種blob型別,...

MySQL中TEXT與BLOB欄位型別的區別

這篇文章主要介紹了mysql中text與blob欄位型別的區別,本文總結了6大區別,需要的朋友可以參考下 在mysql中有兩個字段型別容易讓人感覺混淆,那就是text與blob,特別是自己寫部落格程式的博主不知道改為自己的部落格正文本段選擇text還是blob型別。下面給出幾點區別 一 主要差別 t...