当前位置:首页 > 用友知识堂 > 正文内容

检测用友软件的数据库是否有特殊字符?

8年前用友知识堂1346

今天用友软件免费下载网站要给大家分享一段SQL代码,主要用于检测用友软件的数据库是否有特殊字符?例如说TAB键,空格,特殊符号等,可直接用于检测,废话不多说,直接上源SQL代码,大家自己尝试使用吧!

-----检测表中特殊字符,如tab、换行符、回车符---
------将wa_gzdata替换成要检查的表名即可  ----
------将有特殊字符的列存放在tmp_aa临时表中
go
if exists(select * from sysobjects where name='tmp_aa' and xtype='U')
drop table tmp_aa
go
CREATE  TABLE tmp_aa( a varchar(20), b varchar(20))
go
declare @tablename  varchar (50)
set @tablename='wa_gzdata'
declare my_cur cursor for
select name  from syscolumns where id = object_id(@tablename) and xtype in (167,175,239,99)--nvarchar,varchar,char,nchar型
open my_cur
declare @col_ls nvarchar(50)
fetch next from my_cur into @col_ls
while @@fetch_status=0
BEGIN
   declare @sql1 varchar(1000),@ls_where varchar(100),@ls_set varchar(100)
   declare @sql2 varchar(1000)
   declare @sql3 varchar(1000)
   --检测tab键
   select @sql1 = 'select '+@col_ls+' from '+@tablename +' where  CHARINDEX(CHAR(9),'+@col_ls+')>0'
   set @ls_where=' where  CHARINDEX(CHAR(9),'+@col_ls+')>0'
   select @sql1 = 'select '+@col_ls+' from '+@tablename +@ls_where
   EXEC(@sql1)
   --------替换tab
   if  @@ROWCOUNT>0    
   begin 
       insert into tmp_aa (a,b) values (@col_ls,'tab键')
       set @sql1='update'+@tablename +' set ' +@col_ls+'='
       set @ls_set='REPLACE('+@col_ls+',char(9),'+''''+''''+')'
       select @sql2= 'update '+ @tablename+ ' set ' +@col_ls+'='+@ls_set+@ls_where
        --print @sql2
        exec(@sql2)
   end
   set @sql1=''
   --char(10)检测换行
   select @sql1 = 'select '+@col_ls+' from '+@tablename +' where  CHARINDEX(CHAR(10),'+@col_ls+')>0'
   set @ls_where=' where  CHARINDEX(CHAR(10),'+@col_ls+')>0'
   select @sql1 = 'select '+@col_ls+' from '+@tablename +@ls_where
   --print @sql1
   EXEC(@sql1)
   if  @@ROWCOUNT>0 
   begin 
       insert into tmp_aa (a,b) values (@col_ls,'换行符')
       set @sql1='update'+@tablename +' set ' +@col_ls+'='
       set @ls_set='REPLACE('+@col_ls+',char(10),'+''''+''''+')'
       select @sql2= 'update '+ @tablename+ ' set ' +@col_ls+'='+@ls_set+@ls_where
       -- print @sql2
       exec(@sql2)
   end
   set @sql1=''
   --- --char(13)检测回车键
   select @sql1 = 'select '+@col_ls+' from '+@tablename +' where  CHARINDEX(CHAR(10),'+@col_ls+')>0'
   set @ls_where=' where  CHARINDEX(CHAR(10),'+@col_ls+')>0'
   select @sql1 = 'select '+@col_ls+' from '+@tablename +@ls_where
   --print @sql1
   EXEC(@sql1)
   if  @@ROWCOUNT>0 
   begin 
       insert into tmp_aa (a,b) values (@col_ls,'回车键')
       set @sql1='update'+@tablename +' set ' +@col_ls+'='
       set @ls_set='REPLACE('+@col_ls+',char(13),'+''''+''''+')'
       select @sql2= 'update '+ @tablename+ ' set ' +@col_ls+'='+@ls_set+@ls_where
        --print @sql2
        exec(@sql2)
   end
fetch next from my_cur into @col_ls
END
close my_cur
DEALLOCATE my_cur


微信号:yyrjlls
扫码 有偿解决 用友软件技术问题!
复制微信号

温馨提示:近期载地址失效频繁,如链接失效请点击此处查阅详情!

相关文章

在用友T3中怎么样新建一个账套的图文教程?

在用友T3中怎么样新建一个账套的图文教程?

问题现象:很多财务人员在用友财务软件免费下载网站下载了用友T3财务软件之后,参照用友T3安装教程安装好了,但是不会使用,我们提供了相关的视频教程,但又觉得不方便,特别是刚安装好在建立自己账套的时候操作...

销售业务发生代垫费用在用友T3中怎么处理

销售业务发生代垫费用在用友T3中怎么处理

前面我们给大家讲解了销售货物发生的销售支出在用友T3中怎么处理?今天要给大家讲的是销售业务发生代垫费用在用友通T3中怎么处理?销售支出和代垫费用是2个概念,大家一定要注意一下,销售支出是本公司的销售...

用友畅捷通T+的POS端怎么配置支付宝收款呢?

用友畅捷通T+的POS端怎么配置支付宝收款呢?

近日有不少用友T+的客户问,用友畅捷通T+12.1版本软件支持支付宝收款么?现在很多商户都是支持支付宝付款的,我们常见的有2种,一种是推送付款码给你,你直接在手机端支付宝确定付款就行,另外一种是让你...

用友T1商贸宝数据备份和数据恢复的图文教程

用友T1商贸宝数据备份和数据恢复的图文教程

我们经常会碰到很多“用友T1商贸宝软件的数据没了,用友T1商贸宝软件备份也没了”的电话,怎么办呢?今天用友软件免费下载网站就再指导各位使用用友T1商贸宝软件的朋友怎么备份用友T1数据,以及万一大概也许...

为什么用友T3中填制了发货单,现存量还是没有变?

为什么用友T3中填制了发货单,现存量还是没有变?

问题现象:为什么用友T3中填制了发货单,现存量还是没有变?存货木材,采购入库了200Kg,发货了30Kg。在查询库存里面的现存量时,现存量还是200Kg。原因分析:(1)现存量跟可用量,需要考虑待发数...

用友官方知识库|用友软件报错解答中心网站正式成立

   用友财务软件免费下载网站为了帮助更多的用友软件使用者解决用友产品问题,特搭建了用友官方知识库|用友软件报错解答中心: http://edu.zzerp.net/ 该网站整合了...

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。