Внешняя таблица, как удалить символ новой строки в конце каждой строки - PullRequest
0 голосов
/ 22 февраля 2019

У меня проблема с загрузкой строк из файла, дело в том, что когда я использую Внешнюю таблицу, подобную этой

create table table_name
(
  id VARCHAR2(60)
)
organization external
(
  type ORACLE_LOADER
  default directory DIRECTORY
  access parameters 
  (
    RECORDS DELIMITED BY NEWLINE CHARACTERSET EE8MSWIN1250 nobadfile nodiscardfile
    FIELDS TERMINATED BY ";" OPTIONALLY ENCLOSED BY '\"' LDRTRIM
    REJECT ROWS WITH ALL NULL FIELDS
    (
      ID VARCHAR2(60)
    )
  )
  location ('tmp.txt')
)
reject limit 0;

, все мои строки имеют байт newLine в конце строки, единственное, что работаетпосле загрузки данных из файла обновите все строки, используя

update table_name
set id = translate (id, 'x'||CHR(10)||CHR(13), 'x');

Как я могу сделать это автоматически?

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

while может иметь разделитель строк как \ n или \ r \ n .. Вы можете проверить это, открыв файл в notepad ++ или любом другом редакторе поддержки и нажав Показать все символы

на основе не как данныхв жизни вы можете создать внешнюю таблицу как

 RECORDS DELIMITED BY '\r\n'  or
 RECORDS DELIMITED BY '\n'  etx
0 голосов
/ 22 февраля 2019

Проверьте, какие именно символы новой строки находятся в вашем файле, а затем точно определите разделитель записей.

Пример

 records delimited by '\r\n'

Вероятная причина вашей проблемы заключается в том, что символ новой строки несовместимс вашей операционной системой - к какой теме вы также можете обратиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...