ifexists(select*fromdbo.sysobjectswhereid=object_id(n'[dbo].[p_
stuff]')andobjectproperty(id,n'isprocedure')=1)dropprocedure[dbo].[p_
stuff]go
/*--
ntext
字段處理
模擬字串
處理函式
stuff 完成表中
ntext
欄位的stuff
處理 注意,表中需要有列名為:id的主鍵(或標識
字段),資料型別為int 如果沒有這個主鍵
字段,或者是其他型別,則對應的需要修改儲存過程
--鄒建2004.07--*/
/*--呼叫示例
--測試資料 createtabletb(idintidentity(1,1),content
ntext) inserttbselect'a;sd' unionallselect'a;sdfkjas2qasdfdfsg45yhjhdfg45645a' --呼叫儲存過程,將第8~9的字元替換成'中國' execp_
stuff'tb','content',8,2,'中國','' select*fromtb droptabletb--*/
createprocp_
stuff@tbnamesysname, --要
處理的表名@fdnamesysname, --text/
ntext
欄位名@startint=null, --開始位置,null表示追加資料@lengthint=null, --替換的長度@strnvarchar(4000),--要插入的字串@wherenvarchar(1000)=''--要
處理的記錄的條件asif@strisnullreturndeclare@snvarchar(4000)set@s='declare@idint,@ptrvarbinary(16),@start1int
declaretbcursorlocalforselectid,start=datalength(['+@fdname+'])/2from['+@tbname+']'+caseisnull(@where,'')when''then'' else'where'+@whereend+'
opentbfetchtbinto@id,@start1while@@fetch_status=0begin select@ptr=textptr(content) from['+@tbname+'] whereid=@id
if@startisnullor@start1<@start updatetext['+@tbname+'].['+@fdname+']@ptrnullnull@str else begin set@start1=@start-1 updatetext['+@tbname+'].['+@fdname+']@ptr@start1@length@str end fetchtbinto@id,@start1endclosetbdeallocatetb'execsp_executesql@s ,n'@startint,@lengthint,@strnvarchar(4000)' ,@start,@length,@strgo
SQL SERVER 字串函式 STUFF
說明 stuff 函式將字串插入到另乙個字串中。它從第乙個字串的開始位置刪除指定長度的字元 然後將第二個字串插入到第乙個字串的開始位置。語法 stuff character expression start length replacewith expression 引數 character exp...
字串處理函式
1 puts 向顯示器輸出字串 原型 int puts const char s 標頭檔案 include 返回值 成功返回輸出的字元數,失敗返回eof puts 函式與printf 輸出字串的區別 1.puts在輸出字串時,遇到 0 會自動終止輸出,並將 0 轉換為 n 來輸出 2.printf在...
字串處理函式
puts 函式 用來向標準輸出裝置 螢幕 寫字串並換行,其呼叫格式為 puts s 其中s為字串變數 字串陣列名或字串指標 puts 函式的作用與語printf s n s 相同,將緩衝區的字元輸出到標準輸出,遇到空字元截至,並且在末尾新增乙個換行符。gets 函式用來從標準輸入裝置 鍵盤 讀取字串...