如何加载包含多个主详细数据的文件?

时间:2011-07-26 08:43:20

标签: oracle10g sql-loader

我想使用sqlldr将下面的文件加载到具有多个主要详细数据的oracle数据库中。

示例文件:

1 015
3 brnadcode1 brandname1
3 brnadcode2 brandname2
3 brnadcode3 brandname3
1 018
3 patterncode1 pattername1 address1
3 patterncode2 pattername2 address2
3 patterncode3 pattername3 address3
  1. 第1行的记录类型为“1”,表格代码为“015”
  2. 第一行以下记录类型为“3”的行,其中包含需要在brand_master表中加载的品牌代码和品牌名称
  3. 第5行的记录类型为“1”,表格代码为“018”
  4. 第5行以下记录类型为“3”的行,其中包含需要在模式表中加载的模式代码,模式名称和地址
  5. 根据我的理解,使用sqlldr加载这些文件需要遵循以下步骤

    1. 使用UTL_FILE包生成两个单独的文件
      • a)brand.txt,其中包含品牌代码,品牌名称
      • b)pattern.txt,其中包含记录模式代码,模式名称,地址
    2. 为brand.txt写入2个separte控制文件,并在数据库表中加载pattern.txt
    3. 任何人都可以在多个表中只有一个控制文件来帮助加载上面的文件吗?

1 个答案:

答案 0 :(得分:0)

我不相信SQL Loader可以使用015和018代码。但是,如果要求如上所述,那么您可以使用多个INTO子句通过确定是否存在地址来加载到相应的表中。类似的东西:

INTO TABLE brand_master
   WHEN address = BLANKS 
   ...
INTO TABLE pattern
   WHEN address != BLANKS 
   ...