Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103783952
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-21 15:48:48

作者: 罗仙辉/周军 出处: 
 

三、数据导入方法
按着数据方案,确定了收集职责及收集期限,最后收集数据、整理(验证)提交,在各方确认数据后,那就要开始着手导入数据。Oracle 系统从数据库、应用两个层面提供多种方案给您选择数据导入的方式。下面以资产数据为例举例说明。
固定资产数据有两种导入方法,一种是通过成批增加接口,另一种是手工在系统录入。
1)手工录入数据
如果选择手工录入系统,你除了全手工的通过应用界面一条条录入外,你还可以选用一些工具,诸如dataload、loadrunner 协助你快速完成导入的工作。

你选择手工导入数据的好处是你可以直观的输入数据,可以在输入的同时检查错误,也很方便的修改一些默认数据,例如根据资产类别自动弹出的折旧方法及剩余使用寿命(这些在通过接口表的方法中,如果导入的是旧资产,也必需在界面上修改)。当然手工录入数据只建议数据量相对较小的数据项目上进行,例如税率数据,如果数据量在千级别以上,还是建议使用通过成批增加接口导入数据。
2)成批增加接口导入
Oracle 一个很重要的功能是在每一个模块中都预备了一个或者数个接口表,以方便模块与模块之间、系统与系统之前进行数据的移植操作。例如,资产的一个很重要的接口表是“成批增加”(FA_MASS_ADDITIONS);同样Oracle 提供了很多方法导入数据到接口表中。SQL*Loader就是其中数据库层次的一个软件,其外还有ADI、API:

a) ADI
应用桌面集成 (ADI) 是一个第三方工具,可用于于实际的帐务处理及报表输出。但我们可以使用他来导入一些财务数据。例如日记帐、资产明细及会计科目,通常我们会先创建一个基于EXCEL的模板,如下图,然后按这些模板格式收集数据,然后直接联接系统一步完成资产的接口及添加动作。ADI简单易用,安全性高,有很好的数据验证功能。 ADI导入功能通常仅用于财务模块中的总帐及资产模块。 

b) SQL*Loader
SQL*Loader 是个直接把外部数据文件插入数据库表的工具,速度非常快,仅需要少量的编程就可以进行数据的导入,他包含数据文件、控制文件及命令语法三部分内容。
命令举例:sqlldr userid=internal/oracle control=test.ctl

splldr 是命令提示符,userid后面需要输入数据库存取用户名及密码,control 是你的控制文件名,详细参数信息请查阅相关文档。
数据文件举例:
2003-09-23 | 1 | 04490896 | 347.76 | -
2003-09-28 | 2 | 10256837 | 349.40 | -
2003-09-12 | 3 | 09956875 | 532.30 | -
2003-09-26 | 4 | 10256871 | 581.30 | -

数据仅需要简单的通过特定的分隔符(|)告诉系统哪些是数据。

Ctl控制文件:

LOAD DATA
INFILE '/prod/prodappl/fa/11.5.0/bin/数据文件名.txt'
INTO TABLE FA. FA_MASS_ADDITIONS
FIELDS TERMINATED BY "|"
TRAILING NULLCOLS
(mass_addition_id RECNUM,
Asset_number NULLIF rec_id_no =BLANKS ,
Tag_number NULLIF column1 =BLANKS,
Description NULLIF column2 =BLANKS,
Asset_category_id NULLIF column3 =BLANKS,
……
Asset_id NULLIF columnX =BLANKS)


控制文件包括了数据文件路径和文件名,还定义了导入的表名,分隔符及数据文件各列如何正确导入系统表的各段。SQL*Loader 通常用于有临时表的数据导入工作,对数据的准确性需要其他手段进一步的校验。
c) API
Oracel还提供了部分接口程序(Application Programming Interface ,API)。API允许你通过PL/SQL直接导入数据,而对用户透明化接口表。在新版本的资产系统中,Oracel 提供了标准的Additions API 允许用户直接调用FA_ADDITION_PUB.DO_ADDITION产生资产数据。有兴趣可以上metalink查找文档:Note:206473.1 进行研究。
以上几种方法,由上往下,技术要求越高,由下往上,越容易操作。但不代表一定要选用这种或者说选择简易操作的,显然要ORACLE对所有的数据表去做API接口是不可能的。应根据数据的整体情况进行选择合适的方法进行处理。 

四、数据验证

即使我们在数据导入前经过仔细核对,并在导入测试中进行严格设计,但仍旧不能够保证所导入的数据是完全正确的,这就要求我们对导入数据进行验证。常用的输入数据复核校验方法有打印输出核对法、屏幕核对法和二次输入核对法等。

 
在实施处理中,利用打印输出进行数据验证是一种常用方法,通过系统“导出”功能,把导入到系统的数据,打印成纸质文档,然后分发给相关人员核对,并可做为档案永久保存。
屏幕核对法主要是对于数量量小,数据存储相对分散的数据进行对累加合计数,核对余额,核对借、贷方的金额,核对凭证和帐簿等来发现错误。
二次输入法是采用相应的软件进行测试,录入过程分三个步骤:一次录入,两次录入,每次录入数据后保存退出;最后就是对碰,目的就是检测前两次录入的数据是否一致,如果一致,就通过;如果不一致,会提示出错的地方,工作看上去是繁复了,却可以省略了人工检查这一步,这通常需要特殊的条件,例如临时表、严格的程序逻辑。
 
选用什么方法验证也要因数据而异,但只要做到能够核对数据准确无误,能够让你放心的数据导入确认报告中放心签下您的名字,那就是可以的了。
 
阅读(235) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~