在调用SQL*Loader可执行程序时,允许在命令行中给出许多运行时参数。通常在参数文件中指定在各作业中值均相同的那些参数,然后再使用命令行启动SQL*Loader作业,或交互式启动,或者作为有计划的批作业启动。在命令行上指定专门的运行时参数以及控制文件名和位置。
另外,还可使用控制文件的OPTIONS子句在控制文件中指定运行时参数。在调用SQL*Loader时可
以指定许多参数,但如果这些参数要经常重复使用,最好是使用OPTIONS子句在控制文件中指定它们。特别是在SQL*Loader命令行很长、超出了操作系统的最大命令行长度时,使用OPTIONS子句非常方便。
注解 在命令行上指定的参数值将覆盖控制文件内的参数值。
•USERID
USERID参数指定数据库中有权进行数据装载的用户的用户名和密码:
USERID = samalapati/sammyyi
•CONTROL
CONTROL参数为SQL*Loader会话指定控制文件名。控制文件可以包含所有装载参数的说明。当然,也可以使用手动命令装载数据,不过使用控制文件提供了更大的灵活性且允许装载过程自动化。
CONTROL = '/path/finance.ctl'
•DATA
DATA参数指的就是输入数据文件。默认文件扩展名为.dat。请注意,数据不必在一个独立的文件内。如果愿意,可将数据放在控制文件装载说明的末尾。
DATA = '/path/finance.dat'
•BINDSIZE和ROWS
可使用两个参数BINDSIZE和ROWS来指定一个传统的路径绑定数组。传统路径方式中SQL*Loader并不将数据逐行插入到表行,而是一次插入一组行,这组行称为绑定数组,根据BINDSIZE或ROWS参数设置大小。
BINDSIZE参数以字节设置绑定数组大小。在我的系统上,默认绑定大小为256000字节。
BINDSIZE = 512000
RONS参数不对绑定数组中的字节数设置任何限制。它只是对每个绑定数组中的行数施加限制,SQL*Loader将ROWS中的这个值乘以表中每行的估计大小。在我的系统上,传统方法下的默认行数为64。
ROWS = 64000
注解 如果既指定BINDSIZE参数又指定ROWS参数,则SQL*Loader对绑定变量使用两个值中较小的那个。
•DIRECT
如果指定DIRECT=true,则SOL*Loader使用直接路径方法而不是传统方法进行装载。此参数的默认值为DIRECT=false,表示传统方法为默认方法。
•ERRORS
ERRORS参数指定SOL*Loader作业终止前可出现的错误的最大数目。在大多数系统上其默认为50.如果不允许出错,应该将这个参数设置为0:
ERRORS = 0
•LOAD
使用LOAD参数,可设置装入表的逻辑记录的最大数目。默认是装载输入数据文件中的所有记录
LOAD = 10000
•LOG
LOG参数指定日志文件名。正如将要看到的那样,SQL*Loader日志文件提供了关于SQL*Loader会话的大量信息。
LOG = '/path/financeload.log'
•BAD
BAD参数指定坏丈件(bad file)的名字和位置。如果任何记录由于格式错误而被拒绝,SQL*Loader将把该记泉写到坏文件中。例如,一个字段可能会超过指定的长度,从而被SQL*Loader拒绝。请注意,除了被SQL*Loader拒绝的记录外,其他记录也可能被数据库拒绝.例如,如果试图用重复的主键值插入行,则数据库将会拒绝插入。这些记录也是坏文件的成分。如果不明确指定一个坏文件,Oracle将创建一个,并且使用以控制文件名为前綴的默认文件名。
BAD = '/path/financeload.bad'
•SILENT
默认SQL*Loader在屏幕上显示装载作业进度的反馈消息。可用SILENT参数关闭这种显示。SILENT参数有几个选项。例如,可用ALL选项关闭所有类型的消息:
SILENT = ALL
•DISCARD和DISCARDMAX
废弃文件(discardfile)包含装载中由于不满足控制文件中给出的记录选择条件而拒绝的所有记录。默认没有废弃文件。Oracle只在有废弃记录、并且在控制文件中明确指定废弃文件时才创建此文件。用DISCARD参数指定废弃文件名和位置。
DISCARD = '/path/finance.dsc'
默认SQL*Loader对记录数目不作任何限制。因此,所有逻辑记录都可以被废弃。使用DISCARDMAX参数,可对被废弃的记录数目设置限制。
提示 坏文件和废弃文件包含的记录都是原格式的.因此,很容易编辑这些文件,并且使用它们装载第一次未装载成功的数据,特别是在大型装载中更是如此.
•PARALLEL
PARALLEL参数指出,在应用直接路径装载方法时,SQL*Loader是否能运行多个会话
sqlldr USERID=salapati/sammyy1 CONTROL=load1.ctl DIRECT=true PARALLEL=true
•RESUMABLE
使用RESUMABLE参数,可打开Oracle的Resumable Space Allocation(可恢复空间分配)功能。这样如果某个作业在装载数据时遇到空间问题,此装载作业只是挂起而不会出错。你可以安排关于作业挂起的通知,并分配更多的空间,使此作业可以继续执行而不失败。RESUMABLE参数的默认值为false,表示禁用Resumable Space Allocation。设置RESUMABLE=true可启用此特性。
•RESUMABLE_NAME
在使用Resumable Space Allocation特性时,RESUMABLE_NAME参数允许标出一个特定的可恢复的装载作业。默认名为用户名、会话ID和实例ID的组合。
RESUMABLE_NAME = finance1_load
•RESUMABLE_TIMEOUT
RESUMABLE_TIMEOUT参数只能在RESUMABLE参数设置为true时设置。这里的超时(timeout)指的是一个操作遇到弓空间有关的问题时可挂起的最长时间。如果与空间有关的问题在此时间内没有解决, 则操作将失败。默认为7200秒。
RESUMABLE_TIMEOUT = 3600
•SKIP
SKIP参数在SQL*Loader作业已经提交了某些行,却由于某些错误不能完成时非常有用。SKIP参数允
许在第二次执行SQL*Loader作业时跳过输入文件中指定数目的记录。可供选择的办法是删节表并从头开始SQL*Loader作业,如果有大量的行已经装载到数据库表,这并不是一种好办法。
SKIP = 235550
这个例子假定第一个作业在成功装载235549个记录后失败。可在装载日志文件中找到这个信息,或者直接查询表得到这个信息。




