




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
通用固定长度编码格式的字符串查找算法的实现字符串的查找是数据库应用中必不可少的操作,而且每种数据库产品(ORACLE、DB2、SYBASE、MS SQL SERVER、MYSQL等等)也都提供了对应的字符串处理函数,比如DB2的LOCATE函数。但在实际的工作中,还是会遇到一些特殊情况的处理,这使得直接使用字符串查找函数,得到的结果可能是错误的,比如本文中提到的固定长度编码格式的字符串的查找。值得注意的是,本文提出的算法可以稍加修改即移植到其它关系数据库系统或者前端开发工具中。在实际数据库应用系统中,会经常遇到有些数据表中的一些字段,实际上是采用了某些固定格式的编码规则,比如在本人工作单位中的OLTP数据库中,有一个出口流水表TB_OUTLISTGW中的ROADCOMB字段、ROADSSTARTSTATION字段、ROADSSTARTSTATION字段中都是经过固定长度编码格式的数据,ROADCOMB记录了在广东省高速公路上行驶的车辆所经过的所有高速公路的组合,采用16进制编码,每两位表示一条高速公路的16进制编码,比如11代表10进制的17,即广惠高速公路。举个例子来说,要统计哪些流水是经过了广惠高速公路(实际上需求比这复杂得多)。大家都会给出以下的SQL 语句(DB2格式)SELECT *FROM DEVELOP.TB_OUTLISTGWWHERE LOCATE(ROADCOMB,11)0FETCH FIRST 100 ROW ONLYWITH UR;但实际上,这条语句是有一定问题的,ROADCOMB是每两位的16进制数据代表了一条路段,查找的时候需要每两个字符跟目标路段匹配一次,而不是每个字符+后面的字符跟目标字符串逐次进行匹配,本人采取的是以下的做法,建立了一个固定长度编码格式的字符串匹配通用函数,大家可以用其它关系数据库系统的SQL语法格式来翻译过去,这样就可以在其它数据库系统使用了。以下是笔者用万能数据库查询分析器的中文版本DB 查询分析器来创建并调用 这个通用的固定长度编码格式的字符串查找函数的过程。(具体方法详见我的博文DB 查询分析器 6.03 方便地创建DB2自定义函数) DROP FUNCTION DEVELOP.F_LOCATE_FIXED$-通用的固定长度编码格式的字符串查找函数CREATE FUNCTION DEVELOP.F_LOCATE_FIXED(IN V_SRC VARCHAR(4096),IN V_DES VARCHAR(4096)RETURNS INTEGERLANGUAGE SQLDETERMINISTIC NO EXTERNAL ACTIONCONTAINS SQLBEGIN ATOMICDECLARE v_resultINTEGERDEFAULT 0;DECLARE str_roadVARCHAR(4096); DECLARE v_len_srcINTEGER;DECLARE v_len_desINTEGER;DECLARE v_pos_srcINTEGER DEFAULT 1; SET v_len_des=LENGTH(TRIM(V_DES);SET v_len_src=LENGTH(TRIM(V_SRC);SET v_result=0;AUTHLOOP:WHILE v_pos_src+v_len_src0FETCH FIRST 100 ROW ONLYWITH UR;$图1 SQL 语句执行前图2 SQL 语句执行后(一)图3 SQL 语句执行后(二)values DEVELOP.F_LOCATE_FIXED(11,4F0A0B0D231154533F01)的返回结果图4 SQL 语句执行后(三)values DEVELOP.F_LOCATE_FIXED(11,01100110011001100110011001100110)的返回结果在字符串01100110011001100110011001100110中查找子串11,关系数据库系统正常匹配会返回1;但实际情况字符串是2位一组,按照某种编码规则来编码,这种情况下进行固定2位长度进行匹配则会失败,应该返回0 。values DEVELOP.F_LOCATE_FIXED
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030工业视觉检测算法在质量管控中的落地难点分析报告
- 2025-2030工业自动化领域抗干扰封装晶体振荡器市场容量测算报告
- 2025-2030工业级无人机避障系统技术升级与特殊场景应用测试报告
- 2025-2030工业级封装晶体振荡器极端环境适应性测试标准研究
- 2025-2030工业级3D打印设备在汽车制造中的应用趋势研究报告
- 2025-2030工业相机图像传感器灵敏度提升技术路线报告
- 数字化建筑质量追溯系统创新创业项目商业计划书
- 森林户外戏剧创新创业项目商业计划书
- 智慧银行客户服务创新创业项目商业计划书
- 水产面条及面食产品创新创业项目商业计划书
- 神经内科质控汇报
- 安徽省2024年普通高中学业水平合格性考试地理试卷(含答案)
- 2025年吉林省时事政治考试试卷带解析及参考答案(考试直接用)
- DLT5210.1-2021电力建设施工质量验收规程第1部分-土建工程
- 新解读《CB-T 73-1999船用钢质直梯》新解读
- 幼小衔接幼师管理制度
- 《医疗质量安全核心制度落实情况监测指标(2025年版)》全面解读
- 热敏灸应用的个案护理
- T/CCAS 007-2019水泥产能核定标准
- 生鸡肉买卖合同协议书
- 《水利工程生产安全重大事故隐患清单指南》解读与培训
评论
0/150
提交评论