zoukankan      html  css  js  c++  java
  • sql ntext數據類型字符替換

    ---ntext數據類型字符替換  
    ---2011-08-21 塗聚文 深圳大運會期間,政府貼出"溫馨提示",交通管制,世界之窗周邊不充許到陽台觀看,出入憑居住證,不是身份證
    
    create table tt
    (
      sid  INT IDENTITY(1,1),
      cont ntext 
    )
    go
    
    insert into tt(cont) values(N'fd sad fdsa 塗聚文工團 締友計算機信息技術有限公司 可能性    桔柑 ')
    go
    update tt set cont='fd sad fdsa 塗聚文工團 可能性 締友計算機信息技術有限公司   桔柑 ' where sid=1
    
    --去空格
    EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'true'
    --sp_dboption 'pubs', 'select into/bulkcopy', 'true'
    GO
    DECLARE @ptrval binary(16),@i int,@k int,@f int
    select @i=datalength(cont) from tt where sid=1
    set @k=1
    while @i>1
    begin
    	select @f=CHARINDEX(SPACE(1),cont) from tt where sid=1  ---SPACE(1)
    	set @f=@f-1
    	SELECT @ptrval = TEXTPTR(cont) FROM tt WHERE sid=1
     if @f>0      
    	UPDATETEXT tt.cont @ptrval @f 1 null 
      if @k=@i
    	break
      else
    	set @k=@k+1
            continue
    end
    GO
    --sp_dboption 'pubs', 'select into/bulkcopy', 'false'
    EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'false'
    GO
    
    SELECT * FROM tt
    
    ---換英文字母
    EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'true'
    
    GO
    DECLARE @ptrval binary(16),@i int,@k int,@f int
    select @i=datalength(cont) from tt where sid=1
    set @k=1
    while @i>1
    begin
    	select @f=CHARINDEX('sad',cont) from tt where sid=1  ---SPACE(1)
    	set @f=@f-1
    	SELECT @ptrval = TEXTPTR(cont) FROM tt WHERE sid=1
     if @f>0      
    	UPDATETEXT tt.cont @ptrval @f 3 'ggg' 
      if @k=@i
    	break
      else
    	set @k=@k+1
            continue
    end
    GO
    SELECT * FROM tt
    
    ---中文字母
    EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'true'
    GO
    DECLARE @ptrval binary(16),@i int,@k int,@f int
    select @i=datalength(cont) from tt where sid=1
    set @k=1
    while @i>1
    begin
    	select @f=CHARINDEX('塗聚文',cont) from tt where sid=1  ---SPACE(1)
    	set @f=@f-1
    	SELECT @ptrval = TEXTPTR(cont) FROM tt WHERE sid=1
     if @f>0      
    	UPDATETEXT tt.cont @ptrval @f 6 '塗斯博' 
      if @k=@i
    	break
      else
    	set @k=@k+1
            continue
    end
    GO
    SELECT * FROM tt
    
    
    EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'true'
    GO
    DECLARE @ptrval binary(16),@i int,@k int,@f int,@change nvarchar(20),@newstr nvarchar(20),@len int
    set @change=N'sad' --要替換的字符
    --set @len=datalength(@change)
    set @len=len(@change)
    set @newstr=N'ggg' --替換成的字符
    select @i=datalength(cont) from tt where sid=1
    set @k=1
    while @i>1
    begin
    	select @f=CHARINDEX(@change,cont) from tt where sid=1  ---SPACE(1)
    	set @f=@f-1
    	SELECT @ptrval = TEXTPTR(cont) FROM tt WHERE sid=1
     if @f>0      
    	UPDATETEXT tt.cont @ptrval @f @len @newstr 
      if @k=@i
    	break
      else
    	set @k=@k+1
            continue
    end
    GO
    SELECT * FROM tt
    
    
    
    EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'true'
    GO
    DECLARE @ptrval binary(16),@i int,@k int,@f int,@change nvarchar(20),@newstr nvarchar(20),@len int
    set @change=N'塗聚文' --要替換的字符
    --set @len=datalength(@change) --用此會出錯
    set @len=len(@change)
    set @newstr=N'塗斯博' --替換成的字符
    select @i=datalength(cont) from tt where sid=1
    set @k=1
    while @i>1
    begin
    	select @f=CHARINDEX(@change,cont) from tt where sid=1  ---SPACE(1)
    	set @f=@f-1
    	SELECT @ptrval = TEXTPTR(cont) FROM tt WHERE sid=1
     if @f>0      
    	UPDATETEXT tt.cont @ptrval @f @len @newstr 
      if @k=@i
    	break
      else
    	set @k=@k+1
            continue
    end
    GO
    SELECT * FROM tt
    
    update tt set cont='fd sad fdsa 塗聚文工團 可能性  締友計算機信息技術有限公司  桔柑 ' where sid=1
    select datalength('塗聚文')
    select len('塗聚文')
    select datalength('sad')
    select len('sad')
    select len(SPACE(1))
    
    
    EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'true'
    DECLARE @ptrval binary(16),@i int,@k int,@f int,@change nvarchar(20),@newstr nvarchar(20),@len int
    set @change=N'塗聚文' --要替換的字符
    --set @len=datalength(@change) --用此會出錯
    set @len=len(@change)
    set @newstr=N'塗斯博' --替換成的字符
    select @i=datalength(cont) from tt where sid=1
    set @k=1
    while @i>1
    begin
    	select @f=CHARINDEX(@change,cont) from tt where sid=1  ---SPACE(1)
    	set @f=@f-1
    	SELECT @ptrval = TEXTPTR(cont) FROM tt WHERE sid=1
     if @f>0      
    	UPDATETEXT tt.cont @ptrval @f @len @newstr 
      if @k=@i
    	break
      else
    	set @k=@k+1
            continue
    end
    GO
    
    EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'true'
    DECLARE @ptrval binary(16),@i int,@k int,@f int,@change nvarchar(20),@newstr nvarchar(20),@len int
    set @change=N'塗聚文' --要替換的字符
    --set @len=datalength(@change) --用此會出錯
    set @len=len(@change)
    set @newstr=N'塗斯博' --替換成的字符
    select @i=datalength(cont) from tt where sid=1
    set @k=1
    while @i>1
    begin
    	select @f=CHARINDEX(@change,cont) from tt where sid=1  ---SPACE(1)
    	set @f=@f-1
    	SELECT @ptrval = TEXTPTR(cont) FROM tt WHERE sid=1
     if @f>0      
    	UPDATETEXT tt.cont @ptrval @f @len @newstr 
      if @k=@i
    	break
      else
    	set @k=@k+1
            continue
    end
    GO
    

    哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)成功.---Geovin Du(涂聚文)
  • 相关阅读:
    Oracle 备份与恢复介绍
    Oracle 监听器
    ORA-01041: 内部错误,hostdef 扩展名不存在
    NIO读写文件并加锁
    ActiveMQ消息生产消费流程
    金额,有效值等保留小数位处理
    JVM
    Linux架构分布式集群之基础篇
    Vue.js 开发实践:实现精巧的无限加载与分页功能
    Mysql 查看连接数,状态
  • 原文地址:https://www.cnblogs.com/geovindu/p/2147655.html
Copyright © 2011-2022 走看看