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

发布于 2024-11-26 08:50:25 字数 759 浏览 1 评论 0原文

我想使用 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”,表代码为“015”
  2. 第一行下方的行的记录类型为“3”,其中包含需要加载到brand_master 表中的品牌代码和品牌名称
  3. 第 5 行的记录类型为“1”和表代码“018”
  4. 第 5 行下方的记录类型为“3”的行,其中具有需要在模式表中加载的模式代码、模式名称和地址

根据我的理解,使用 sqlldr 需要加载此文件按照以下步骤

  1. 使用 UTL_FILE 包生成两个单独的文件
    • a)brand.txt,其中记录了品牌代码、品牌名称
    • b)pattern.txt,其中包含记录patterncode、patternname、address
  2. 记录 为brand.txt和pattern.txt编写2个单独的控制文件,以加载到数据库表中

可以是否有帮助在多个表中仅使用一个控制文件加载上述文件?

I would like to load below files into the oracle database which have multiple master detail data using the sqlldr.

Sample File :

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. 1st row have the record type "1" and table code "015"
  2. Rows below 1st row with record type "3" which have the brandcode and brandname that requires to load in brand_master table
  3. 5th row have the record type "1" and table code "018"
  4. Rows below 5th row with record type "3" which have the patterncode, pattername and address that requires to load in pattern table

As per my understanding to load this files in using sqlldr need to follow the below steps

  1. Generate the two separate files using the UTL_FILE Package
    • a) brand.txt which have the records brandcode, brandname
    • b) pattern.txt which have the records patterncode,pattername,address
  2. Write 2 separte control files for brand.txt and pattern.txt to load in database table

Can any one help to load above file with only one control file in multiple table?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

仄言 2024-12-03 08:50:25

我不相信 SQL Loader 有任何方法可以使用 015 和 018 代码。但是,如果要求如所述,那么您也许可以使用多个 INTO 子句通过确定是否存在地址来加载到适当的表中。像这样的东西:

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

I don't believe there is any way that SQL Loader can use the 015 and 018 codes. However, if the requirements are as stated then you could perhaps use multiple INTO clauses to load into the appropriate table by determining whether there is an address or not. Something like:

INTO TABLE brand_master
   WHEN address = BLANKS 
   ...
INTO TABLE pattern
   WHEN address != BLANKS 
   ...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文