Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle SQLLDR-使用参数文件指定多个日志、dsc和坏文件_Oracle_Sql Loader - Fatal编程技术网

Oracle SQLLDR-使用参数文件指定多个日志、dsc和坏文件

Oracle SQLLDR-使用参数文件指定多个日志、dsc和坏文件,oracle,sql-loader,Oracle,Sql Loader,我不知道如何处理这种情况,使用Oracle SQLLDR将文件加载到单个表中。 我有多个填充,我可以加载没有问题。但是,我希望在我的参数文件中为每个日志文件、坏文件指定单独的日志文件,并放弃目录/文件。这可能吗?我试着在参数文件中列出它们,文件名之间留有空格,但这似乎不起作用。我在任何地方都找不到如何做到这一点的说明或示例 我使用命令包含参数文件: sqlldr user/password@pdbxxxxx PARFILE=/directory/parameter_file.par 我的参数文

我不知道如何处理这种情况,使用Oracle SQLLDR将文件加载到单个表中。 我有多个填充,我可以加载没有问题。但是,我希望在我的参数文件中为每个日志文件、坏文件指定单独的日志文件,并放弃目录/文件。这可能吗?我试着在参数文件中列出它们,文件名之间留有空格,但这似乎不起作用。我在任何地方都找不到如何做到这一点的说明或示例

我使用命令包含参数文件:

sqlldr user/password@pdbxxxxx PARFILE=/directory/parameter_file.par
我的参数文件示例:

    CONTROL=/directory/control_file.ctl
    LOG=/directory/log_file.log
    BAD=/directory/bad_file.bad
    DISCARD=/directory/discard_file.dsc
    DISCARDMAX=100000000
    DATA=/directory/data_file-01.csv
    DIRECT=FALSE
load data
infile '/directory/data_file-01.csv'
infile '/directory/data_file-02.csv'
infile '/directory/data_file-03.csv'
APPEND INTO TABLE my_table
                fields terminated by "," optionally enclosed by '"'
                TRAILING NULLCOLS
  (
        col1 CHAR
    ,   col2 CHAR                  
    ,   col3 CHAR
)
我的控制文件示例:

    CONTROL=/directory/control_file.ctl
    LOG=/directory/log_file.log
    BAD=/directory/bad_file.bad
    DISCARD=/directory/discard_file.dsc
    DISCARDMAX=100000000
    DATA=/directory/data_file-01.csv
    DIRECT=FALSE
load data
infile '/directory/data_file-01.csv'
infile '/directory/data_file-02.csv'
infile '/directory/data_file-03.csv'
APPEND INTO TABLE my_table
                fields terminated by "," optionally enclosed by '"'
                TRAILING NULLCOLS
  (
        col1 CHAR
    ,   col2 CHAR                  
    ,   col3 CHAR
)
看起来像,如文档中所述

摘录:

要在一次SQL*加载器运行中从多个数据文件加载数据,请对每个数据文件使用infle子句

还可以为每个数据文件指定单独的丢弃文件和坏文件。在这种情况下,必须在每个数据文件名之后立即声明单独的坏文件和丢弃文件

举几个例子:

INFILE  mydat1.dat  BADFILE  mydat1.bad  DISCARDFILE mydat1.dis 
INFILE  mydat2.dat 
INFILE  mydat3.dat  DISCARDFILE  mydat3.dis 

谢谢这需要编辑控制文件,对吗?我一直在寻找一种解决方案,可以将这些规范添加到参数文件中。我认为您不能,除非您动态创建一个控制文件。这将需要一个操作系统级别的脚本,使用您选择的编程语言。