The following privileges are required for a load:

You must have INSERT privileges on the table to be loaded.

You must have DELETE privileges on the table to be loaded, when using the REPLACE or TRUNCATE option to empty old data from the table before loading the new data in its place.

$ sqlldr

    userid -- ORACLE username/password           

   control -- control file name                  

       log -- log file name                      

       bad -- bad file name                      

      data -- data file name                     

   discard -- discard file name                  

discardmax -- number of discards to allow          (Default all)

      skip -- number of logical records to skip    (Default 0)  跳过数据文件前几行

      load -- number of logical records to load    (Default all) 导入多少行

    errors -- number of errors to allow            (Default 50)

      rows -- number of rows in conventional path bind array or between direct path data saves

               (Default: Conventional path 64, Direct path all)

  bindsize -- size of conventional path bind array in bytes  (Default 256000)

    silent -- suppress messages during run (header,feedback,errors,discards,partitions)

    direct -- use direct path                      (Default FALSE)

   parfile -- parameter file: name of file that contains parameter specifications

   parallel -- do parallel load                     (Default FALSE)

      file -- file to allocate extents from      

skip_unusable_indexes -- disallow/allow unusable indexes or index partitions  (Default FALSE)

skip_index_maintenance -- do not maintain indexes, mark affected indexes as unusable  (Default FALSE)

commit_discontinued -- commit loaded rows when load is discontinued  (Default FALSE)

  readsize -- size of read buffer                  (Default 1048576)

external_table -- use external table for load; NOT_USED, GENERATE_ONLY, EXECUTE  (Default NOT_USED)

columnarrayrows -- number of rows for direct path column array  (Default 5000)

streamsize -- size of direct path stream buffer in bytes  (Default 256000)

multithreading -- use multithreading in direct path  

 resumable -- enable or disable resumable for current session  (Default FALSE)

resumable_name -- text string to help identify resumable statement

resumable_timeout -- wait time (in seconds) for RESUMABLE  (Default 7200)

date_cache -- size (in entries) of date conversion cache  (Default 1000)

no_index_errors -- abort load on any index errors  (Default FALSE)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

(一)文件相关

  1. BAD=[directory/][filename]

如果在控制文件中指定使用BADFILE

如果不指定也会创建bad file,默认目录为control file文件目录,文件名为数据文件名.bad

如果指定了bad但没指定目录,则默认在当前目录创建

  1. CONTROL=control_file_name   ---默认以.ctl结尾
  2. DATA=data_file_name --默认为控制文件名.dat

只有文件可以使用通配符,路径不能使用,如?or*,可以指定多个文件,用逗号分隔

如果文件有特殊字符或空格,用单引号括起

如果同时在控制文件中使用INFILE指定了数据文件,则两个地方指定的数据文件均生效; 但如果同一文件同时在这两个地方指定将产生warning

  1. DISCARD=[directory/][filename]

默认文件名与数据文件相同(如果只指定目录),但以.dsc结尾。Discard用于存储那些在控制文件中被过滤如使用when没插入到表中的记录,它与bad文件不同,它们不是错误记录

如果同时在命令行和控制文件中的infile中指定了discard file,则命令行的生效

以下是设置的细节:

If the DISCARD parameter is not specified at all, but the DISCARDMAX parameter is, then the default directory is the one in which the SQL*Loader control file resides.

If the DISCARD parameter is specified with a file name but no directory, then the directory defaults to the current directory.

If the DISCARD parameter is specified with a directory but no file name, then the specified directory is used and the default is used for the name and the extension.

If neither the DISCARD parameter nor the DISCARDMAX parameter is specified, then a discard file is not created even if there are discarded records.

If the DISCARD parameter is not specified, but the DISCARDMAX parameter is, and there are discarded records, then the discard file is created using the default name and the file is written to the same directory in which the SQL*Loader control file resides.

If multiple data files are being loaded and you are also specifying the DISCARD parameter, it is recommended that you specify only a directory for the discard file, not a file name. If you specify a file name, and a file with that name already exists, then it is either overwritten or a new version is created, depending on your operating system.

  1. DISCARDMAX=n

默认ALL。用于指定多少条discard记录后会中止导入,设置为0表示出现第一条discarded record会中止

If DISCARDMAX is specified, but the DISCARD parameter is not, then the name of the discard file is the name of the data file with an extension of .dsc.

  1. LOG=[[directory/][log_file_name]]

默认日志文件名为控制文件名,并以.log作扩展名,如果指定LOG选项则必须指定所有目录名或文件名,亦或都指定,不指定目录则默认当前目录

  1. PARFILE=file_name

$ vi daily_report.par 

USERID=scott

CONTROL=daily_report.ctl

ERRORS=9999

LOG=daily_report.log

$ sqlldr PARFILE=daily_report.par

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  • DIRECT PATH

  1. DIRECT=[TRUE | FALSE]

设置为TRUE则使用direct path,设置为FALSE则设置为conventional path

  1. COLUMNARRARYROWS=n

用于定义direct path column array的大小,这个值不会根据BINDSIZE自动计算

The COLUMNARRAYROWS parameter specifies the number of rows to allocate for direct path column arrays. The value for this parameter is not calculated by SQL*Loader. You must either specify it or accept the default.

  1. ROWS=n

Rows即导入多少条记录(bind array大小)会进行提交(不论是direct path还是conventional path)

此选项没有默认值,不指定即不使用,而BINDSIZE是有默认值的,即conventional path还是bind array满了进行提交,direct path默认不完成不提交,但因不同情况sqlldr中止情况会不同(单列了文档)

对于conventional path loads,指定bind array记录行数,最大值为65534,它会被BINDSIZE覆盖

对于direct path loads,the ROWS parameter specifies the number of rows to read from the data file(s) before a data save(这里data save可以理解为commit,只是索引状态仍为unusable状态). The actual number of rows loaded into a table on a save is approximately the value of ROWS minus the number of discarded and rejected records since the last save.

Default: Conventional path default is 64. Direct path default is all rows.

NOTE:

1)If you specify a low value for ROWS and then attempt to compress data using table compression, the compression ratio will probably be degraded. Oracle recommends that you either specify a high value or accept the default value when compressing data.

2)The ROWS parameter is ignored for direct path loads when data is loaded into an Index Organized Table (IOT) or into a table containing VARRAYs, XML columns, or LOBs. This means that the load still takes place, but no save points are done.

  1. STREAMSIZE=n

单位bytes, 默认为256000, 最小值为65536,此选项用于在使用direct path时从client发送给oracle的data stream大小(即stream buffer大小)

The number of column array rows (specified with the COLUMNARRAYROWS parameter) determines the number of rows loaded before the stream buffer is built. The optimal values for these parameters vary, depending on the system, input data types, and Oracle column data types used. When you are using optimal values for your particular configuration, the elapsed time in the SQL*Loader log file should go down.

  1. MULTITHREADING=[TRUE | FALSE]

此选项只用于direct path, 表示是否在客户端系统中使用多线程的stream导入到服务器端,默认多CPU系统(multiple-CPU systems)为TRUE,单CPU系统(single-CPU systems)为FALSE, 这时如果导入的Oracle在多核CPU系统中,要在客户端开启这个参数

  1. DIRECT_PATH_LOCK_WAIT = {TRUE | FALSE默认}

使用direct path必须锁表后才能导入,此值设置等待表锁行为

TRUE — Direct path waits until it can get a lock on the table before proceeding with the load.

FALSE — This is the default. The direct path API tries to lock the table multiple times and waits one second between attempts. The maximum number of attempts made is 30. If the table cannot be locked after 30 attempts, then the direct path API returns the error that was generated when trying to lock the table.

  1. PARALLEL=[TRUE | FALSE默认]

表示在使用direct path或是external tables时是否使用并行会话导入同一表中数据

Direct path的并行是使用多个session来对同一段对象并发导入,但它也比一般direct path有更多限制

A parallel direct path load allows multiple direct path load sessions to concurrently load the same data segments (allows intrasegment parallelism).Parallel direct path is more restrictive than direct path.

  1. PARTITION_MEMORY=n

在导入大数据量的分区表时,使用此选项对使用内存进行限制,单位KB,只用于direct path, 且数据库版本在12.1.0.2及之后

The PARTITION_MEMORY parameter lets you limit the amount of memory used when you are loading many partitions. This parameter is helpful in situations in which the number of partitions you are loading use up large amounts of memory, perhaps even exceeding available memory (this can happen especially when the data is compressed).

默认值为0,即使用PGA_AGGREGATE_TARGET作此选项值,当内存使用量接近PGA_AGGREGATE_TARGET值时,会延时分配导入分区,设置为-1将不会尝试减少内存使用,即禁用此项功能

Default: The default value is 0 (zero), which limits memory use based on the value of the PGA_AGGREGATE_TARGET initialization parameter. When memory use approaches that value, loading of some partitions is delayed. 

Once the specified limit is reached, loading of some partition rows is delayed until memory use falls below the limit.

  1. NO_INDEX_ERRORS=[TRUE | FALSE默认]

表示在使用direct path导入时是否容忍索引错误,FALSE表示导入前会将索引设置为unusable,在导入后索引仍保持unusable状态;TRUE表示如果索引报错则中止导入,恢复到导入前状态。

The NO_INDEX_ERRORS parameter determines whether indexing errors are tolerated during a direct path load.

A setting of NO_INDEX_ERRORS=FALSE means that if a direct path load results in an index becoming unusable then the rows are loaded and the index is left in an unusable state. This is the default behavior.

A setting of NO_INDEX_ERRORS=TRUE means that if a direct path load results in any indexing errors, then the load is aborted. No rows are loaded and the indexes are left as they were.

  1.  SKIP_INDEX_MAINTENANCE=[TRUE | FALSE默认]

表示在使用direct path时是否停止对索引的维护,设置为TRUE则会使用索引变为UNUSABLE状态。此参数会同时影响local和global索引

Indexes that are unique and marked Unusable are not allowed to skip index maintenance. This rule is enforced by DML operations, and enforced by the direct path load to be consistent with DML.

  1. SKIP_UNUSABLE_INDEXES=[TRUE | FALSE]

此选项可用于conventional and direct path loads.表示如果表索引处理unusable状态是否进行导入,默认值为oracle数据库的SKIP_UNUSABLE_INDEXES参数设置值,数据库此参数默认值为TRUE.

注:被标记为unusable的唯一索引不允许skip index maintenance

  1. FILE=tablespace_file

用于direct path的并行导入,指定各个concurrent session使用同一表空间下不同数据文件,以减少磁盘争用,

By varying the value of the FILE parameter for different SQL*Loader processes, data can be loaded onto a system with minimal disk contention.

  1. DATE_CACHE=n设置为0则禁用

指定用于记录的日期缓存大小,日期缓存用于存储从文本字符串到内部日期格式的转换结果。因为查找日期的成本比文本格式转换为日期格式的成本要少得多,因此这个缓存很重要,如果在数据文件中重复出现相同的日期,则使用日期缓存可以提高直接路径加载的速度。

The DATE_CACHE parameter specifies the date cache size (in entries). The date cache is used to store the results of conversions from text strings to internal date format. The cache is useful because the cost of looking up dates is much less than converting from text format to date format. If the same dates occur repeatedly in the data file, then using the date cache can improve the speed of a direct path load.

如果需要每个表都可以有自己的date cache,只在表导入date或timestamp类型时需要数据转化时才会创建date cache。它默认是开启的,默认1000个elements, 如果使用默认值在实际表导入超过1000个时间值时,此表的date cache会自动关闭;如果使用自己设置的非0值时,超过设置值不会关闭date cache. 你可以通过日志文件中的date cache统计信息(entries, hits and misses)来调优date cache大小

Note:The date cache feature is only available for direct path and external tables loads.

  1. DEFAULTS={IGNORE | IGNORE_UNSUPPORTED_EVALUATE_ONCE | IGNORE_UNSUPPORTED_EVALUATE_EVERY_ROW |

EVALUATE_ONCE | EVALUATE_EVERY_ROW}

Use the SQL*Loader DEFAULTS command to control evaluation and loading of default expressions.

用于设置导入空值时是否使用导入表列的default值

Default: EVALUATE_ONCE, unless a sequence is involved, then the default is EVALUATE_EVERY_ROW.

DEFAULTS只用于direct path导入

IGNORE — Default clauses on columns are ignored. 忽略表有DEFAULT的列,直接导入空值

IGNORE_UNSUPPORTED_EVALUATE_ONCE —Evaluate default expressions once at the start of the load. Unsupported default expressions are ignored. If the DEFAULTS parameter is not used, then default expressions are evaluated once, unless the default expression references a sequence, in which case every row is evaluated.

IGNORE_UNSUPPORTED_EVALUATE_EVERY_ROW — Evaluate default expressions in every row, ignoring unsupported default clauses.

EVALUATE_ONCE —Evaluate default expressions once at the start of the load. If the DEFAULTS parameter is not used, then default expressions are evaluated once, unless the default references a sequence, in which case every row is evaluated. An error is issued for unsupported default expression clauses. (This is the default option for this parameter.)

EVALUATE_EVERY_ROW — Evaluate default expressions in every row and issue an error for unsupported defaults.

EXAMPLE:

SQL> create table test(c0 varchar2(10), c1 number default '100');

$ vi test.ctl:

load data

infile *

truncate

into table test

fields terminated by ','

trailing nullcols

( c0 char )

begindata

1,

直接把c1插入NULL值

$ sqlldr scott/tiger t.ctl direct=true defaults=ignore

把c1插入100

$ sqlldr scott/tiger t.ctl direct=true

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  • EXTERNAL TABLE

  1. EXTERNAL_TABLE=[NOT_USED默认| GENERATE_ONLY | EXECUTE]

NOT_USED - It means the load is performed using either conventional or direct path mode.

GENERATE_ONLY - 只在log file中生成相关SQL语句,不真的导入places all the SQL statements needed to do the load using external tables, as described in the control file, in the SQL*Loader log file. These SQL statements can be edited and customized. The actual load can be done later without the use of SQL*Loader by executing these statements in SQL*Plus.

EXECUTE - attempts to execute the SQL statements that are needed to do the load using external tables. However, if any of the SQL statements returns an error, then the attempt to load stops. Statements are placed in the log file as they are executed. This means that if a SQL statement returns an error, then the remaining SQL statements required for the load will not be placed in the log file.

如果同时使用EXTERNAL_TABLE=EXECUTE与SEQUENCE选项:

If you use EXTERNAL_TABLE=EXECUTE and also use the SEQUENCE parameter in your SQL*Loader control file, then SQL*Loader creates a database sequence, loads the table using that sequence, and then deletes the sequence. The results of doing the load this way will be different than if the load were done with conventional or direct path.

使用external_table选项会把日期类型转为char类型并使用date_format_spec子句

When the EXTERNAL_TABLE parameter is specified, any datetime data types (for example, TIMESTAMP) in a SQL*Loader control file are automatically converted to a CHAR data type and use the external tables date_format_spec clause.

使用external_table选项会使用数据库的目录,如果导入时没有对应目录会尝试创建一个临时目录,如果没有创建权限且使用了EXECUTE则会报错失败,如果使用的是GENERATE_ONLY则会转为conventional或direct path方式

Note that the external table option uses directory objects in the database to indicate where all input data files are stored and to indicate where output files, such as bad files and discard files, are created. You must have READ access to the directory objects containing the data files, and you must have WRITE access to the directory objects where the output files are created. If there are no existing directory objects for the location of a data file or output file, then SQL*Loader will generate the SQL statement to create one. Therefore, when the EXECUTE option is specified, you must have the CREATE ANY DIRECTORY privilege. If you want the directory object to be deleted at the end of the load, then you must also have the DROP ANY DIRECTORY privilege.

The EXTERNAL_TABLE=EXECUTE qualifier tells SQL*Loader to create an external table that can be used to load data and then executes the INSERT statement to load the data. All files in the external table must be identified as being in a directory object.

如果多表导入,按如下步骤执行:

When using a multi-table load, SQL*Loader does the following:

  1. Creates a table in the database that describes all fields in the input data file that will be loaded into any table.
  2. Creates an INSERT statement to load this table from an external table description of the data.
  3. Executes one INSERT statement for every table in the control file.

sqlldr会按表的所有字段名来生成外部表名

To guarantee unique names in the external table, SQL*Loader uses generated names for all fields. This is because the field names may not be unique across the different tables in the control file.

注:Built-in functions and SQL strings cannot be used for object elements when you insert data into a database table from an external table.

  1. PARALLEL=[TRUE | FALSE默认]

表示在使用direct path或是external tables时是否使用并行会话导入同一表中数据

  1. DEGREE_OF_PARALLELISM=[degree-num|DEFAULT|AUTO|NONE默认]

用于设置并发度,只能用于使用external table导入方法

degree-num — 指定并发值

DEFAULT —default parallelism of the database (not the default parameter value of AUTO) is used.

AUTO — the Oracle database automatically sets the degree of parallelism for the load.

NONE — the load is not performed in parallel.

  1. TRIM=[LRTRIM | NOTRIM | LTRIM | RTRIM | LDRTRIM默认]

表示字段开始或结束的空格/tab/换行/回车是不去除,只用于external table load method,另外如果使用了trim,而字段全为空格则会插入null

NOTRIM indicates that no characters will be trimmed from the field. This setting generally yields that fastest performance.

LRTRIMLTRIM, and RTRIM are used to indicate that characters should be trimmed from the field. LRTRIM means that both leading and trailing spaces are trimmed. LTRIM means that leading spaces will be trimmed. RTRIM means trailing spaces are trimmed.

LDRTRIM is the same as NOTRIM except in the following cases:

  1. If the field is not a delimited field, then spaces will be trimmed from the right.
  2. If the field is a delimited field with OPTIONALLY ENCLOSED BY specified, and the optional enclosures are missing for a particular instance, then spaces will be trimmed from the left.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

(四)CONVENTIONAL PATH

  1. BINDSIZE=n

只用于conventional path loads,用于定义一次性导入的大小bytes, 对于conventional Path loads一次bind array导入会提交一次, 因此如果sqlldr因错误退出,表中会记录到上次bind array的数据。

The BINDSIZE parameter specifies the maximum size (in bytes) of the bind array.

A bind array is an area in memory where SQL*Loader stores data that is to be loaded. When the bind array is full, the data is transmitted to the database. The bind array size is controlled by the BINDSIZE and READSIZE parameters.

The size of the bind array given by BINDSIZE overrides the default size (which is system dependent) and any size determined by ROWS.

将BINDSIZE设置为100行记录大小为佳

In general, you gain large improvements in performance with each increase in the bind array size up to 100 rows. Increasing the bind array size to be greater than 100 rows generally delivers more modest improvements in performance. The size (in bytes) of 100 rows is typically a good value to use.

BINDSIZE与ROWS关系:

BINDSIZE表示设置bind array的最大大小,sqlldr在初始化时会决定一行需要多少bytes,用bindsize值除以一行需要的bytes,计算出行数;如果同时设置了bindsize与rows,将使用小的值

When you specify a bind array size using the command-line parameter BINDSIZE or the OPTIONS clause in the control file, you impose an upper limit on the bind array.

The bind array never exceeds that maximum.

As part of its initialization, SQL*Loader determines the size in bytes required to load a single row. If that size is too large to fit within the specified maximum, then the load terminates with an error.

SQL*Loader then multiplies that size by the number of rows for the load, whether that value was specified with the command-line parameter ROWS or the OPTIONS clause in the control file.

If that size fits within the bind array maximum, then the load continues—SQL*Loader does not try to expand the number of rows to reach the maximum bind array size. If the number of rows and the maximum bind array size are both specified, then SQL*Loader always uses the smaller value for the bind array.

  1. READSIZE=n

单位byte, 默认为1048576, 用于指定read buffer大小,用于conventional path method

In the conventional path method, the bind array is limited by the size of the read buffer. Therefore, the advantage of a larger read buffer is that more data can be read before a commit operation is required.

Restrictions

  1. If the READSIZE value specified is smaller than the BINDSIZE value, then the READSIZE value will be increased.
  2. The READSIZE parameter is used only when reading data from data files. When reading records from a control file, a value of 64 kilobytes (KB) is always used as the READSIZE.
  3. The READSIZE parameter has no effect on LOBs. The size of the LOB read buffer is fixed at 64 kilobytes (KB).
  4. The maximum size allowed is platform dependent.

  1. ROWS=n

Rows即导入多少条记录(bind array大小)会进行提交(不论是direct path还是conventional path)

此选项没有默认值,不指定即不使用,而BINDSIZE是有默认值的,即conventional path还是bind array满了进行提交,direct path默认不完成不提交,但因不同情况sqlldr中止情况会不同(单列了文档)

对于conventional path loads,指定bind array记录行数,最大值为65534

对于direct path loads,the ROWS parameter specifies the number of rows to read from the data file(s) before a data save(这里data save可以理解为commit,只是索引状态仍为unusable状态). The actual number of rows loaded into a table on a save is approximately the value of ROWS minus the number of discarded and rejected records since the last save.

Default: Conventional path default is 64. Direct path default is all rows.

NOTE:

1)If you specify a low value for ROWS and then attempt to compress data using table compression, the compression ratio will probably be degraded. Oracle recommends that you either specify a high value or accept the default value when compressing data.

2)The ROWS parameter is ignored for direct path loads when data is loaded into an Index Organized Table (IOT) or into a table containing VARRAYs, XML columns, or LOBs. This means that the load still takes place, but no save points are done.

  1. SKIP_UNUSABLE_INDEXES=[TRUE | FALSE]

此选项可用于conventional and direct path loads.表示如果表索引处理unusable状态是否进行导入,默认值为oracle数据库的SKIP_UNUSABLE_INDEXES参数设置值,数据库此参数默认值为TRUE.

注:被标记为unusable的唯一索引不允许skip index maintenance

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  • 常用
  1. ERRORS=n

默认50,用于指定最大插入错误数,超过则中止,之前插入的数据则提交,指定为0即不允许有错误

多表导入不会立即停止:

SQL*Loader maintains the consistency of records across all tables. Therefore, multitable loads do not terminate immediately if errors exceed the error limit.When SQL*Loader encounters the maximum number of errors for a multitable load, it continues to load rows to ensure that valid rows previously loaded into tables are loaded into all tables and rejected rows are filtered out of all tables.

  1. SILENT=[HEADER | FEEDBACK | ERRORS | DISCARDS | PARTITIONS | ALL]

The SILENT parameter suppresses some of the content that is written to the screen during a SQL*Loader operation.

  1. SKIP=n

指定起始忽略导入的行数,此选项可用于conventional load的所有场景, single-table的direct path loads, 以及multiple-table direct path loads when the same number of records was loaded into each table. It cannot be used for multiple-table direct path loads when a different number of records was loaded into each table. 它不能用于external table loads

If a WHEN clause is also present and the load involves secondary data, then the secondary data is skipped only if the WHEN clause succeeds for the record in the primary data file.

  1. LOAD=n

表示导入最大行数,默认导入全部。常用于测试sqlldr设置是否正确

For external tables method loads, only successfully loaded records are counted toward the total. So if there are 15 records in the input data file and records 2 and 4 are bad, then the following records are loaded into the table, for a total of 10 records - 1, 3, 5, 6, 7, 8, 9, 10, 11, and 12.

For conventional and direct path loads, both successful and unsuccessful load attempts are counted toward the total. So if there are 15 records in the input data file and records 2 and 4 are bad, then only the following 8 records are actually loaded into the table - 1, 3, 5, 6, 7, 8, 9, and 10.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

(六)其它

  1. DNFS_ENABLE=[TRUE默认|FALSE]

设置是否在导入时使用Oracle的Direct NFS特性,在读入数据文件超1GB时默认会使用Direct NFS接口,如果低于1GB则默认使用操作系统的IO接口。可以配置合下面的DNFS_READBUFFERS选项指定Direct Clinet使用的read buffers的数量,它的默认值为4.

  1. DNFS_READBUFFERS=n

  1. EMPTY_LOBS_ARE_NULL = {TRUE | FALSE默认}

可以用于命令行或是控制文件中的option中

If the SQL*Loader EMPTY_LOBS_ARE_NULL parameter is specified, then any LOB column for which there is no data available is set to NULL rather than to an empty LOB.

  1. RESUMABLE=[TRUE | FALSE]

是否开启RESUMABLE, 默认关闭

  1. RESUMABLE_NAME='text_string'

默认为'User USERNAME(USERID), Session SESSIONID, Instance INSTANCEID'

此名可通过DBA_RESUMABLE查到

  1. RESUMABLE_TIMEOUT=n

单位秒,默认7200,即2h,超时则中止导入

  1. SDF_PREFIX=string

The SDF_PREFIX parameter lets you specify a directory prefix which will be added to file names of LOBFILEs and secondary data files (SDFs) that are opened as part of a load operation.

If SDF_PREFIX is specified, then the string value must be specified as well. There is no validation or verification of the string. The value of SDF_PREFIX is prepended to the filenames used for all LOBFILEs and SDFs opened during the load. If the resulting string is not the name of as valid file, then the attempt to open that file fails and an error is reported.

If SDF_PREFIX is not specified, then file names for LOBFILEs and SDFs are assumed to be relative to the current working directory. Using SDF_PREFIX allows those files names to be relative to a different directory.

Note:The SDF_PREFIX parameter can also be specified in the OPTIONS clause in the SQL Loader control file.

Quotation marks are only required around the string if it contains characters that would confuse the command line parser (for example, a space).

The file names that are built by prepending SDF_PREFIX to the file names found in the record are passed to the operating system to open the file. The prefix can be relative to the current working directory from which SQL*Loader is being executed or it can be the start of an absolute path.

Restrictions

The SDF_PREFIX parameter should not be used if the file specifications for the LOBFILEs or SDFs contain full file names.

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐