- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据导入的问题汇总
数据导入的问题汇总
从6月28号第一次向数据库导入黑龙江数据,到现在7月20号对数据库的导入,出现了一些问题,一部分是数据本身的问题,比如说插入的列值过大;一部分是属于程序本身的问题。以下是测试时操作数据库发生的一些问题:
(一)执行SQL*Loader时出现的错误
1. 导入的*.csv文件中数据不正确
a. 列后面添加大量空格,导致列值过大无法导入数据库
如下图,项目名称和项目类型数据库定义的字符串程度是30和20,而事实上导入的字符串程度是57和23,当然会出现列值过大的问题
b. 列值错位
L列的值占了两个列,M列为空,导致后面的列值错误。
c. 列值违反唯一约束
数据库定义的是某列是主键,键值是不可以重复的,而导入的相应的列值出现重复。
d. 列值的类型不符合
如下图B列对应的是资产编号,误填了其他列值。
以上列举的只是几个典型的例子。具体的需执行SQL*Loader文件后查看日志文件。
(二)追加地市盘点工单的时,追加的效率很低,而且部分数据没有导入。针对这个问题,统计抽取部分数据追加的时间和结果,如下表:
地市名称 增量 数据导入前
ets_item_info的count值 数据导入后
ets_item_info的count值 所需时间
备注 大庆(31974) 0 0 31974 5分钟 完整导入数据 哈尔滨(106438) 106438 31974 34516 3小时 数据没有导完,实际导入2542条数据 齐齐哈尔 44447 34516 68975 近2个小时 数据没有完全导入 从上表可以看出两个很明显的问题,一个是追加效率很低,一个是数据没有完全导入。针对这两个问题,做了如下考虑:
1. 可能的是数据太多没有执行完毕,于是采取了逐步增量(追加数据由少到多)的方式去证实这一猜测。下表是统计的结果。
地市名称 增量 数据导入前
ets_item_info
的count值 数据导入后
ets_item_info
的count值 所需时间 备注 大庆 50 0 50 30秒内 哈尔滨 100 50 150 30秒内 齐齐哈尔 150 150 300 30秒内 大兴安岭 500 300 800 30秒内 佳木斯 2000 800 2800 一分钟以内 七台河(12790)
牡丹江(31620)
省本部(14858)
绥化(28572)
伊春(10) 87850 2800 62930 两个小时整 数据没有导完,正确导入完成应该是90650条数据 上表的数据反映了一个问题,当数据导入的量过大的时候,确实存在部分数据没有导入成功,而且效率也很低。这个问题不得不让操作者考虑,是什么原因让这些数据没有导入成功呢?于是引申出以下2、3、4的可能。
2. 执行某一条资产的时候,因不满足条件故被滤掉。
方案一:取一条ets_item_info表没有的ets_fa_assets表有的资产,而且是日志表ams_item_job_log没有出错的资产,把这条资产的tag_number拿到程序中运行,看是否成功向ets_item_info表导入数据。
操作步骤:
a. 取出一条上述的资产,select * from ets_fa_assets a where a.tag_number not in (select b.barcode from ets_item_info b where a.tag_munber=b.barcode) and townum=1;将这条资产拿到日志文件查看,确保它是一条正确的资产。例如:tag_number=4423
b. 拿到这条资产看ets_fa_assets_bak表有没有.通过查询是有的。
c. 在CURSOR ASS_INFO_REC后面添加一个限制条件,and efa.tag_number=’ 4423;查询出来返回一条记录。
d. 在以下检查资产的函数中逐个排查,检查都没有问题。检查都通过(过程如下),可以执行SYN_ITEM_INFO(ASS_REC)这个函数,这张表是往ets_item_info表插入数据的。
检查专业匹配关系
IF NOT CHECK_ITEM_CATEGORY(ASS_REC) THEN G_SYN_FLAG := OU_FA_IMPORT_SN_PKG.G_SYN_FLAG_N; G_SYN_MSG := OU_FA_IMPORT_SN_PKG.G_MSG_NO_ITEM_CATEGORY; CREATE_SYN_LOG(ASS_REC); GOTO SKIP_IMPORT;
文档评论(0)