Внешняя таблица - файл сброса не создан должным образом - PullRequest
2 голосов
/ 17 июня 2011

У меня есть внешняя таблица со следующим определением.

create table app_doctor (
      doc_no             number(9),
      age                number(3),
      eor                char(3 char)
) 
organization external 
(     type oracle_loader
      default directory "DOC"
      access parameters
      ( 
        records delimited by newline
        **load when (eor = "EOR")**
        string sizes are in characters
        logfile 'doc.log'
        badfile 'doc.bad'
        discardfile 'doc.dsc'
        fields 
        ( 
          doc_no position     (1:9) integer external(9),
          age position        (10:12) integer external(3),
          eor position        (13:15) char(3)
        )
      )
      location('HOSP_DOC.txt')
)
reject limit unlimited
parallel 5;

Я передаю 100 записей, из которых 50 действительны, 20 недействительны и 30 не удовлетворяют условию WHEN, но я вижу только4 или 5 записей в моем файле сброса.

Ответы [ 2 ]

0 голосов
/ 19 декабря 2014

согласно документации oracle

В предложении DISCARDFILE указан файл, в который записываются записи, которые не соответствуют условию в предложении LOAD WHEN .

0 голосов
/ 08 марта 2013

Использование следующего определения внешней таблицы:

create table app_doctor (
      doc_no             number(9),
      age                number(3),
      eor                char(3 char)
) 
organization external 
(     type oracle_loader
      default directory "DOC"
      access parameters
      ( 
        records delimited by newline
        **load when (eor = "EOR")**
        string sizes are in characters
        logfile 'doc.log'
        badfile 'doc.bad'
        discardfile 'doc.dsc'
        fields 
        ( 
          doc_no position     (1:9) integer external(9),
          age position        (10:12) integer external(3),
          eor position        (13:15) char(3)
        )
      )
      location('HOSP_DOC.txt')
)
reject limit unlimited
parallel 5;

И следующий файл тестовых данных:

123456789021EOR
123456789021EOR
123456789021EOR
123456789021EOR
123456789021FER
123456789021FER
123456789021FER
asdfasfa9021ABC
asdfasfa9021ABC
asdfasfa9021ABCasdfasdas
123456789021ABC
123456789021FER
123456789021EOR
123456789021EOR
123456789021EOR
123456789021ABC
123456789021ABC
123456789021ABC

Я получаю 7 действительных записей, возвращенных при запуске

select * from app_doctor;

Мой файл сброса содержит все 11 неверных записей, а файл журнала doc.log содержит правильную информацию о том, что произошло во время выполнения:

  LOG file opened at 03/08/13 11:33:56

Field Definitions for table APP_DOCTOR
  Record format DELIMITED BY NEWLINE
  Data in file has same endianness as the platform
  Rows with all null fields are accepted
  Load when (EOR = EOR)

  Fields in Data Source: 

    DOC_NO                          Integer external (9)
      Record position (1, 9)
      Trim whitespace same as SQL Loader
    AGE                             Integer external (3)
      Record position (10, 12)
      Trim whitespace same as SQL Loader
    EOR                             CHAR (3)
      Record position (13, 15)
      Trim whitespace same as SQL Loader


 LOG file opened at 03/08/13 11:33:56

Field Definitions for table APP_DOCTOR
  Record format DELIMITED BY NEWLINE
  Data in file has same endianness as the platform
  Rows with all null fields are accepted
  Load when (EOR = EOR)

  Fields in Data Source: 

    DOC_NO                          Integer external (9)
      Record position (1, 9)
      Trim whitespace same as SQL Loader
    AGE                             Integer external (3)
      Record position (10, 12)
      Trim whitespace same as SQL Loader
    EOR                             CHAR (3)
      Record position (13, 15)
      Trim whitespace same as SQL Loader
KUP-04102: record 5 discarded from file /apps/oracle/doc/HOSP_DOC.txt
KUP-04102: record 6 discarded from file /apps/oracle/doc/HOSP_DOC.txt
KUP-04102: record 7 discarded from file /apps/oracle/doc/HOSP_DOC.txt
KUP-04102: record 8 discarded from file /apps/oracle/doc/HOSP_DOC.txt
KUP-04102: record 9 discarded from file /apps/oracle/doc/HOSP_DOC.txt
KUP-04102: record 10 discarded from file /apps/oracle/doc/HOSP_DOC.txt
KUP-04102: record 11 discarded from file /apps/oracle/doc/HOSP_DOC.txt
KUP-04102: record 12 discarded from file /apps/oracle/doc/HOSP_DOC.txt
KUP-04102: record 16 discarded from file /apps/oracle/doc/HOSP_DOC.txt
KUP-04102: record 17 discarded from file /apps/oracle/doc/HOSP_DOC.txt
KUP-04102: record 18 discarded from file /apps/oracle/doc/HOSP_DOC.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...