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

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

9年前用友知识堂1429

今天用友软件免费下载网站要给大家分享一段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
扫码 有偿解决 用友软件技术问题!
复制微信号

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

相关文章

用友T1商贸宝提示:初始化系统失败,怎么解决?

用友T1商贸宝提示:初始化系统失败,怎么解决?

用友财务软件免费下载网站小编经常碰到使用用友T1免费版进销存软件的朋友咨询这样一个问题:刚刚安装好的用友T1商贸宝进销存软件,双击登录点下一步时提示“初始化系统失败”,或者一直正常使用的软件,突然有...

银行结算方式有那些?用友软件如何增加银行结算方式?

  在用友财务软件中,填制银行存款科目的相关凭证时,经常要填写结算方式,那么一般的银行结算方式有那些呢?用友财务软件教程网站给大家做了一下总结,一般情况下银行结算方式分为9种,基本上是通用...

用友T3固定资产制单时带出可抵扣税科目的设置方法图文教程?

用友T3固定资产制单时带出可抵扣税科目的设置方法图文教程?

问题现象:应该是从2014年开始固定资产购入可以抵扣进项税了,那么在用友T3财务软件中固定资产也加入了这一个可抵扣税额的设置,现在的问题是设置了科目后在填制凭证的时候带不出来?下面就看用友软件教程网给...

畅捷通T+提示:HTTP 错误 401 - 未授权: 由于凭据无效,访问被拒绝

畅捷通T+提示:HTTP 错误 401 - 未授权: 由于凭据无效,访问被拒绝

继各大HTTP错误之后,今天用友财务软件免费下载网站站长又收到一个奇怪的HTTP错误提示截图,打开畅捷通T+软件时提示401 - 未授权: 由于凭据无效,访问被拒绝,如下图所示:远程查看了一下,主要...

用友畅捷通T+软件中出纳管理模块的期初余额怎么录入的图文教程

用友畅捷通T+软件中出纳管理模块的期初余额怎么录入的图文教程

今天用友软件免费下载网站要给大家分享的是:用友畅捷通T+软件中出纳管理模块的期初余额怎么录入的图文教程。大家都知道,启用了出纳管理模块以后,期初数据是需要到“初始化”-“现金银行期初...

用友T3恢复账套报错:已备份数据库磁盘上结构版本为611,恢复不了怎么办?

用友T3恢复账套报错:已备份数据库磁盘上结构版本为611,恢复不了怎么办?

今天有一个使用用友T3财务软件的会计咨询,他使用的用友T3软件在恢复账套的时候报错,恢复不进去,提示为已备份数据库磁盘上结构版本为611,详细提示如下:[Microsoft][ODBC SQL ser...

发表评论

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