Мне нужно загрузить плоский файл в базу данных oracle с помощью SQL * Loader.
Плоский файл содержит поле, содержащее символы новой строки в качестве допустимых данных.
Файл не является строкой, помеченной символом новой строки.Как загрузить файл данных с фиксированной шириной с помощью SQL * Loader, который не имеет разделителя строк, но имеет поля с символами новой строки?
Как изменить следующий файл управления для этого?
LOAD DATA
INFILE 'mydata.dat'
INTO TABLE emp
(field1 POSITION(1:4) INTEGER EXTERNAL,
field2 POSITION(6:15) CHAR,
big_field POSITION(17:7000) CHAR
)
Примечание: У меня нет контроля над форматом входящего файла.
Note: ... indicates that the data continues to the end of the field
example:
1234567890abcdefghijklmnopqrstuvwxyz
1234567890abcdefghijklmnopqrstuvwxyz
1234567890abcdefghijklmnopqrstuvwxyz
1234567890abcdefghijklmnopqrstuvwxyz
1234567890abcdefghijklmnopqrstuvwxyz
1234567890abcdefghijklmnopqrstuvwxyz
1234567890abcdefghijklmnopqrstuvwxyz
1234567890abcdefghijklmnopqrstuvwxyz
1234567890abcdefghijklmnopqrstuvwxyz
1234567890abcdefghijklmnopqrstuvwxyz
...
result:
field1: 1234
field2: 67890abcde
big_field: ghijklmnopqrstuvwxyz
1234567890abcdefghijklmnopqrstuvwxyz
1234567890abcdefghijklmnopqrstuvwxyz
1234567890abcdefghijklmnopqrstuvwxyz
1234567890abcdefghijklmnopqrstuvwxyz
1234567890abcdefghijklmnopqrstuvwxyz
1234567890abcdefghijklmnopqrstuvwxyz
1234567890abcdefghijklmnopqrstuvwxyz
1234567890abcdefghijklmnopqrstuvwxyz
1234567890abcdefghijklmnopqrstuvwxyz
...
Как выглядят фактические данные; в зависимости от этого есть несколько вариантов.? На стороне примечание максимальный размер поля varchar в Oracle составляет 4000 символов, поэтому у вас могут быть проблемы с вашим 'big_field' – Ben
, он идет в blob, поэтому мы хороши по длине. Кроме того, это всего лишь пример управляющего файла. – ScrappyDev
Вам нужен разделитель строк какого-либо типа даже для файлов с фиксированной длиной. Мы смогли заставить нашего провайдера изменить файл с разделителем строк. Спасибо за помощь всем! – ScrappyDev