返回顶部
首页 > 资讯 > 数据库 >隐藏在SQLServer字段中的超诡异字符该如何解决
  • 135
分享到

隐藏在SQLServer字段中的超诡异字符该如何解决

2024-04-02 19:04:59 135人浏览 八月长安
摘要

隐藏在sqlServer字段中的超诡异字符该如何解决,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。程序架构:B/S 开发环境:windows

隐藏在sqlServer字段中的超诡异字符该如何解决,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

程序架构:B/S 开发环境:windows XP + IIS6 + VS2003 数 据 库:SQL Server 2000 部分功能:从 SQL Server 中导出数据到 Access。 这套系统做了大半年,这个导入导出还是问题不断,我负责的这块导入导出就是夹在网 络版和单机版系统之间,只要任何一边对数据库做了改动这个导入导出就会失败。哎,烦心 的事不止这些,最近又遇到了一个非常奇怪的问题。 由于之前的导入导出使用SQL Server 支持的OpenDataSource()函数来做,而当遇到 64位系统时就会遇到不支持Microsoft.Jet.OLEDB.4.0 ,所以重新编码,技术步骤是先从SQL Server 读数据到DataTable,然后遍历这个DataTable,对每一行,将里面的数据重新组合成一条Insert 语句,然后打开Access文件链接,执行刚才生成的Insert语句,将数据插入到Access中。 我最终提交给Access执行的语句是根据SQL Server中的数据拼出来,比如SQL Server :select a, b, c from tblTemp 提交给Access执行的语句就是:复制代码 代码如下: Str1 = “Insert into” Str2 = “tblTemp(a,b,c)values(” strResult = str1 & str2 & “‘aa', 2, ‘cc' ” & “)”

这回的重大问题是在SQL Server 表的b字段中有特殊字符,此字符使我的程序无法拼出完整的字符串,拼出来的字符串strResult 有时不带最后的“)”,但奇怪的是,这个表总共有4万多条记录,只是组合个别记录才会出现这个现象。但是提交给Access执行肯定不通过,提示SQL语法错误。 我于是查询数据库的这条记录,用查询分析器查询没发现任何的特殊字符,问了同事后才知道,他说之前有过部分表中的某些字符保存了客户输入的回车换行符,我顿时大悟,对呀,回车换行符是看不见的啊,于是,想使用下面的语句查询字段中是否有回车换行符:复制代码 代码如下: select charindex(char(10), demc) from tblGC_jc_de where xh = 15641 select charindex(char(13), demc) from tblgc_jc_de where xh = 15641 select charindex(char(10) + char(13), demc) from tblgc_jc_de where xh = 15641 select charindex(char(13) + char(10), demc) from tblgc_jc_de where xh = 15641

但奇怪的是,返回都是0,也就是找不到。这就郁闷了,字段中到底存储了什么字符啊?,另一个同事教了一招,直接在企业管理器中返回该表的所有行记录,然后全选查看该字段,发现确实是多出一个字符: 不是回车换行符会是什么字符呢?在百思不解之际,突然想起,不如看看这个表物理数据,一定能查出存储在该字段的是什么字符。但是该表有44022条记录,查某一条记录的物理数据就是大海捞针,怎么办??? 我只想查询这条记录的物理数据要怎么做?能不能把这条数据放到另一个表中,这个表只有这一条记录,这不就可以查看了吗。哦,这个简单,其实我同时建立了一个临时的数据库,这个数据库只有一张表,这张表只有一条记录,就是包含上面那个有问题的记录,使用的SQL语句如下: -- TYZW 是正式库 use TYZW -- 创建一个临时数据库,然后将有问题的那条 -- 记录插入临时库。 create database tmpTYZW Go select * into tmpTYZW..tblgc_jc_de from tblgc_jc_de where xh = 15641 go 现在是时候查看一下这条记录的物理数据了,首先要在sysindexes系统表中查找出该表在物理文件中的位置,然后我们可以通过 dbcc page 命令查看物理数据:接着使用dbcc page命令查看物理数据:

现在是时候看看这条记录的物理数据了:

天啊,竟然是0,真不晓得是怎么存进去的。问题终于知道在那了,但是要如何解决呢?最简单的方法就是将这个0替换掉,于是使用下列语句测试

select replace(demc, char(0), '') as demc from tblgc_jc_de

但是不行,原因是replace函数找不到0这个字符,因为它查找是按两个字节来找的,所以直接在SQL Server上找也找不到这个字符,替换也替换不了。但是,我又想了一下,能不能使用二进制来查找和替换?看了一下资料,使用下面的SQL语句能找出0在该字段的位置:

查是能查出来了,但是我发现replace函数还是不能用,除非是替换4位,也就是0x0038。

最后实在无奈,只能直接把有这个特殊字符的地段截掉一个文字,也就是连那个38也不要了:

select

case when charindex(convert(varbinary(1),0x00),convert(varbinary(200),demc)) > 0

then substring(demc,1,len(demc)-1)

else demc

end as DEMC

from tblgc_jc_de

这就是我现在用的最终解决方案,因为我查询过,4万多条记录中只有8条有这个0在字段里面。所以就算截掉一个文字并影响程序的功能和显示。

看完上述内容,你们掌握隐藏在SQLServer字段中的超诡异字符该如何解决的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网数据库频道,感谢各位的阅读!

您可能感兴趣的文档:

--结束END--

本文标题: 隐藏在SQLServer字段中的超诡异字符该如何解决

本文链接: https://lsjlt.com/news/67519.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 隐藏在SQLServer字段中的超诡异字符该如何解决
    隐藏在SQLServer字段中的超诡异字符该如何解决,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。程序架构:B/S 开发环境:Windows ...
    99+
    2024-04-02
  • 如何在MySQL 8.0中隐藏字段
    这篇文章主要介绍了如何在MySQL 8.0中隐藏字段,编程网小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随编程网小编来看看吧!基本概念隐藏字段需要在查询中进行显式引用,否则对查询而言是不可见的。MySQL 8.0.23 开始支持隐...
    99+
    2023-06-06
  • 如何在Laravel中动态隐藏API字段
    这篇文章将为大家详细讲解有关如何在Laravel中动态隐藏API字段,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在 Laravel 中动态隐藏 API 字段我最近在 Laravel Brasil 社区看...
    99+
    2023-06-14
  • 如何在css中设置文字超过隐藏
    如何在css中设置文字超过隐藏?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。新建一个html文件,命名为test.html,用于讲解css如何设置超出部分隐藏。在test....
    99+
    2023-06-15
  • PHP中字段数据超过4113字符后的数据异常问题解决
        环境信息: 操作系统:LNMP1.6 PHP 版本:5.3.29(NTS) 达梦客户端版本:DM_V7.6.0.161客户端 PHP 模块:libphp53_dm.so...
    99+
    2024-04-02
  • 如何解决css数字文本过长被隐藏的问题
    这篇文章主要介绍了如何解决css数字文本过长被隐藏的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 css数...
    99+
    2024-04-02
  • 决ajax异步请求返回的是字符串如何解决
    这期内容当中小编将会给大家带来有关决ajax异步请求返回的是字符串如何解决,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.返回结果差异js获取后打印res.code无结果。因为返回数据格式不正确。php...
    99+
    2023-06-08
  • PHP如何计算字符串中全部字符都存在于指定字符集合中的第一段子串的长度
    这篇文章将为大家详细讲解有关PHP如何计算字符串中全部字符都存在于指定字符集合中的第一段子串的长度,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP中计算字符串中全部字符都存在于指定字符集合中的第一段子...
    99+
    2024-04-02
  • MySql中的longtext字段的返回问题如何解决
    这篇文章主要介绍了MySql中的longtext字段的返回问题如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySql中的longtext字段的返回问题如何解决文章都会有所收获,下面我们一起来看看吧。M...
    99+
    2023-07-02
  • 如何解决SqlServer类似正则表达式的字符处理问题
    小编给大家分享一下如何解决SqlServer类似正则表达式的字符处理问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!SQL S...
    99+
    2024-04-02
  • 如何在解组时将整个 json 字符串传递到嵌套结构的字段?
    在PHP中,当我们需要将整个JSON字符串传递给嵌套结构的字段时,有一种简单的方法可以实现。首先,我们需要确保我们已经将JSON字符串解码为PHP数组或对象。然后,我们可以使用json...
    99+
    2024-02-13
  • 如何解决MySQL报错:字段列表中的未知列
    当在MySQL中遇到错误"字段列表中的未知列"时,通常是由于以下原因之一引起的:1. 未正确指定列名:确保你在查询语句中正确地指定了...
    99+
    2023-10-12
    MySQL
  • 如何解决select2在bootstrap模态框中下拉框隐藏的问题
    这篇文章将为大家详细讲解有关如何解决select2在bootstrap模态框中下拉框隐藏的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。修改select2-conta...
    99+
    2024-04-02
  • 如何解决 Golang 中的错误“ORA-00911:无效字符”?
    在Golang开发过程中,我们有时会遇到"ORA-00911: 无效字符"这样的错误。这种错误通常是由于在SQL语句中使用了无效的字符而引起的。要解决这个问题,我们可以采取一些简单的方...
    99+
    2024-02-08
    sql语句 golang开发
  • 如何解决VBS中字符串连接的性能问题
    这篇文章将为大家详细讲解有关如何解决VBS中字符串连接的性能问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。当然,对于少量的字符串连接,效率并没有对程序造成多大影响,现在让我们考虑一个极端的问题:将1到...
    99+
    2023-06-08
  • 如何解决oracle插入字符串数据时字符串中有'单引号的问题
    这篇文章给大家分享的是有关如何解决oracle插入字符串数据时字符串中有'单引号的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用insert into(field...
    99+
    2024-04-02
  • spss如何解决列表中不允许存在字符串变量的问题
    这篇文章主要介绍了spss如何解决列表中不允许存在字符串变量的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。解决方法:首先打开需要进行操作的spss;然后点击页面底部的“...
    99+
    2023-06-15
  • 如何在对象具有字符串键的 Golang 中解组 JSON
    在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是Golang学习者,那么本文《如何在对象具有字符串键的 Golang 中解组 JSON》就很适合你!本篇内容主要包...
    99+
    2024-04-05
  • 如何解决Java中HashMap与String字符串互转的问题
    小编给大家分享一下如何解决Java中HashMap与String字符串互转的问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!背景:当我们有需求将HashMap转为Json格式的String时,切记不要使用HashMap的...
    99+
    2023-06-29
  • java只返回实体类中的部分字段问题如何解决
    这篇文章主要介绍了只返回实体类中的部分字段问题如何解决,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。如何只返回实体类中的部分字段在实体类上添加注解@JsonInclude(JsonInclude.Include.NON_...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作