Синтаксический анализ поля Oracle External Tables в среде Linux
Stackruers!
У меня проблема с экземпляром Oracle Database 11g, где у меня есть данные сопоставления внешней таблицы из внешнего файла.
Вот мой код, который работает на виртуальной машине под управлением Windows Server 2008 R2 x64:
CREATE TABLE ABC (
NAMECREDORPART1 CHAR(50 CHAR),
NAMECREDORPART2 CHAR(50 CHAR),
NAMECREDORPART3 CHAR(50 CHAR),
ADDRESSCREDORPART1 CHAR(50 CHAR),
(...)
)
ORGANIZATION EXTERNAL (
TYPE ORACLE_LOADER
DEFAULT DIRECTORY FILES
ACCESS PARAMETERS (
records delimited by '\n' CHARACTERSET 'WE8ISO8859P15'
LOAD WHEN (documento != blanks)
FIELDS
MISSING FIELD VALUES ARE NULL
REJECT ROWS WITH ALL NULL FIELDS (
NAMECREDORPART1 position(1:49) char(50),
NAMECREDORPART2 position(50:99) char(50),
NAMECREDORPART3 position(100:149) char(50),
ADDRESSCREDORPART1 position(150:199) char(50),
(...)
)
)
LOCATION ('abc.mtf')
)
PARALLEL
NOMONITORING
REJECT LIMIT UNLIMITED;
Этот код приводит к загрузке / сопоставлению следующих данных в этой таблице ABC:Это именно то, как я хочу, чтобы мои данные были загружены!:D
К сожалению, моя производственная среда - Oracle Database 11g (той же версии), работающая на платформе Linux. Это приводит к странному поведению, когда я использую этот же код для загрузки того же файла (abc.mtf): поля заполняются пробелами. Я не знаю, почему это происходит, поскольку это не происходит на моей виртуальной машине Windows Server 2008.
Вот скриншот этих же данных в среде Linux:
Может ли кто-нибудь помочь мне получить тот же вывод в среде Linux, что и в Windows? Заранее спасибо за помощь!
1 ответ
Может ли проблема заключаться в том, что раздел "записи, разделенные" не учитывает различные комбинации символов в конце строки? NEWLINE по умолчанию должен позаботиться об этом.