博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ACCESS模糊查询出现"内存溢出"原因是日文片假名
阅读量:6398 次
发布时间:2019-06-23

本文共 844 字,大约阅读时间需要 2 分钟。

这个方法我也没试过。

 

今天在日常维护一个网站时,发现该网站的留言程序没有经过严格的验证过滤,导致了将近十万条垃圾数据。而其中又不乏重要信息,需要清理数据,以及增加更为严格的验证措施。 

而通过在数据库中直接删除又不太科学,会误删很多重要信息。

 

通过 模糊查询语句: 

select * from Feedback where Comments like '%http%' 

  结果:

 “内存溢出” 

经过不断的搜索,找出了问题的主要原因: 

asp 中用 LIKE 关键字查询日文符号就会出错,比如说Chr(-23075),提示内存溢出。

如果数据表中的数据包含日文或者一些特殊非简体汉字符号,也会出现内存溢出的错误。

 

而网上说,上述问题已经得到微软动力营的微软工程师确认,为产品的 BUG,无法解决。唯一的办法就是将整个数据库中的数据编码为ANSI 文本格式,然后保存。显示的时候再DECODE。 

无解,只有按上面所说,进行字段转换保存到另外一个新字段中,然后再进行清理操作。面对这个超标数据真是困难。 

EncodeString 函数进行字符转义

 

Function EncodeString(strWords)

    Dim i As Long

    Dim strEncodeWords

    For i = 1 To Len(strWords)

        strEncodeWords = strEncodeWords & CStr(Asc(Mid(strWords, i, 1))) & ","

    Next     

    EncodeString = strEncodeWords

End Function 

 

这样经过转义后,在模糊搜索时,将关键字进行转义一下 

 

delete * from Feedback where Comments_new like '%&EncodeString("http")&%' 

转载于:https://www.cnblogs.com/yybk/archive/2012/03/25/2416719.html

你可能感兴趣的文章
Revit二次开发示例:DesignOptions
查看>>
Entity Framework 系统约定配置
查看>>
优秀设计:纹理在网页设计中的20个应用示例
查看>>
C++ 关键字 explicit, export, mutable
查看>>
生成指定范围的一组随机数并求平均值
查看>>
android语音识别方法
查看>>
【c++】虚函数描写叙述符override
查看>>
File Operations in Android NDK(转)
查看>>
如何将kux格式的视频转换成我们常用的MP4格式
查看>>
[sublime系列文章] sublime text 3插件配置说明
查看>>
学习 PixiJS — 碰撞检测
查看>>
Vue 基础篇
查看>>
JavaScript:函数防抖与函数节流
查看>>
关于区间贪心的补全
查看>>
架构设计步骤
查看>>
自定义元素探秘及构建可复用组件最佳实践
查看>>
区块链是一个公共数据库,要放在一个块内
查看>>
Jenkins 用户文档(目录)
查看>>
系统常见指标
查看>>
使用crond构建linux定时任务及日志查看
查看>>