


摘 要: 在跨数据库产品进行批量数据迁移时,有时会遇到一些数据记录因某个字段的数据最后一个字节或最后两个字节数据为不可见字符而无法迁移的情况,如果此类数据记录较多的话,将给数据迁移工作造成极大困扰和障碍。在本文中,作者采用“凑整法”实现了对此类批量数据迁移问题的解决,并通过两个典型的数据库产品进行了验证。
关键词: 批量数据迁移;不可见字符;凑整法
中图分类号: TP311 文献标识码: B DOI:10.3969/j.issn.1003-6970.2020.06.035
本文著录格式:张雨萌.“凑整法”在跨数据库产品批量数据迁移过程中的应用[J]. 软件,2020,41(06):169170+207
【Abstract】: In the process of batch data migration across database products, sometimes some data records cannot be migrated because the last one byte or last two bytes of data of a field are invisible characters. If there are many records of such data, it will cause great troubles and obstacles to the data migration.In this paper, the author solves the problem of this kind of batch data migration by means of “rounding up” method and verifies it through two typical database products.
【Key words】: Batch data migration; Invisible characters; “rounding up” method
0 引言
在生產实践过程中,有时会在数据库中出现 某字段存在“不完整”数据的情况。而这些“不完整”数据的由来,基本上是由于应用程序在没有校验长度的情况下,将超出数据表字段长度的输入 数据插入数据表,导致输入数据被数据库截断。如果被截断的数据属于英文字符,截断只影响该条数据记录的准确性;而如果是中文汉字被截断,该字 段会因字符集不同而在最后一位或者最后两位出现不可见字符,不仅准确性受影响,此类“不完整”数据记录也无法同“完整”数据记录同步批量迁 移到其他数据库产品中。“不完整”数据样例如表1所示。
其中,0X表示16进制,而CA、E6、B5为对应汉字在16进制下的数据。
1 凑整法
1.1 定义
令“+”为字符串追加操作,“A”+“B”=“AB”;
令“–”为字符串删除操作,“ABA”–“A”=“B”;
令“I”为字符串“ ?”,即“空格”+“空格”+“?”,其中“空格”和“?”都为英文半角字符;
令“←”为字段赋值操作,X←“A”的含义为将“A”赋值给字段X;……p>