Oracle数据库专享工具:SQL*Loader
2008-09-09
eNet&Ciweek
下面,我们来看看具体如何使用这个Oracle数据库系统为我们准备的好帮手。
一般SQL*Loader模块至少需要两个文件,才可以使用。
一是数据文件。数据文件,顾名思义,就是我们需要导入的数据集合。对于Oracle系统来说,其可以支持多个格式的数据文件,如逗号分隔符或者TAB键分隔符或者分号分隔符等文本文件,也支持固定宽度的文本文件等等。不过在实际应用中,用的最多的还是逗号分隔的文本文件。
二是控制文件。控制文件其起的作用就是建立数据文件与Oralce数据表字段之间的一一对应关系。简单的说,把数据文件中的某个内容放在Oracle数据表中的那个字段上,这就是控制文件所起的主要作用。
另外还有一个文件,也非常有用,叫做坏文件。如果我们在命令行工具中,指定了这个坏文件,则导入过程中,一些导入不成功的记录,则会被保存在这个坏文件中。所以,对于数据库管理员来说,这个文件有时候往往比数据导入日志文件更加的实用。所以,笔者建议,若企业对于数据导入的准确性要求比较高的画,则在使用SQL*Loader导入数据的时候,最好能够指定这个坏文件。这对于我们后续核对导入数据的准确性,具有很大的实用价值。
为了更好的使用这个导入工具,笔者有如下建议:
1、在制作数据文件的时候,需要注意原有数据表的限制。也就使说,数据文件中的记录必须符合数据表的一些约束条件,否则,不符合条件的数据将无法被导入。如需要考虑数据类型是否相符、字段长度有没有超过限制、有没有违反主键、外键的约束等等。只有符合这些约束的记录,才能够被成功的导入。否则的话,数据将无法被成功装载。为了避免这种情况,笔者建议再利用这个工具的时候,要指定“坏文件”。只有如此,数据库才能够再导入的过程中,把一些失败的记录写到我们指定的文件中,如此,我们就可以通过调整,然后把这些不符合规则的数据也装入到数据库中去。
2、前台应用程序在设计基础数据导入功能的时候,最好直接采用这个模块。因为这个模块跟Oracle数据库集成的比较好,能够最大限度的保障导入数据的准确性。而且,还可以节省很多前台的程序代码。不过有点值得可惜的是,SQL*Loader模块,现在是Oracle数据库独享的应用模块。也就是说,只有在Oracle数据库平台上的应用程序,才可以直接调用。若一个应用程序支持多个数据库平台的时候,则再设计这个数据导入功能的时候,需要注意了,这不像SQL语句那样的通用。
3、在数据导入之前,最好先最好相关的数据备份。无论是采用图形化的数据导入工具,还是采用命令行的数据导入工具,有一个基本的原则,大家必须遵守,就使在成批导入数据之前,必须先作好数据库的备份。如此可以把数据导入错误的影响降至到最低。
4、严格限制数据导入的权限。虽然可以在后台数据库中限制SQL*Loader应用模块的使用权限,不过,最好还是能够在前台应用程序中加以控制。如在前台应用程序中,让其只有系统管理员才能够访问这个基础数据导入窗口等等。因为数据库的访问权限,在前台实现的话,比较灵活。而在后台固定死了的话,前台系统权限设计往往会失去灵活性。这是我们在数据库设计与前台应用程序设计的时候,需要尽量避免的。
您对本文或本站有任何意见,请在下方提交,谢谢!