powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / External table - optionally enclosed by сдвигает столбцы
5 сообщений из 5, страница 1 из 1
External table - optionally enclosed by сдвигает столбцы
    #37500649
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oracle 10gR2

есть файл с разделителями "знак TAB"

Код: plaintext
1.
2.
Alvin	Tolliver	 1976 
Baer		 1234 
Mary	Dube	 1973 

(пример отсюда)
http://download.oracle.com/docs/cd/B10501_01/server.920/a96652/ch12.htm#1009713

1) External table без optionally enclosed by - все хорошо:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE TABLE SCOTT.emp_load (first_name CHAR( 15 ), last_name CHAR( 20 ), year_of_birth INT)
  ORGANIZATION EXTERNAL (TYPE ORACLE_LOADER DEFAULT DIRECTORY "FILE_DIR"
                         access parameters (
                          RECORDS DELIMITED by X'0D0A' 
    BADFILE 'test.bad' DISCARDFILE 'test.dsc' logfile 'test.log'
                         FIELDS TERMINATED by X'09' 
                         MISSING FIELD values ARE null)
                         LOCATION ('test.txt'));

FIRST_NAME      LAST_NAME            YEAR_OF_BIRTH          
--------------- -------------------- ---------------------- 
Alvin           Tolliver              1976                    
Baer                                  1234                    
Mary            Dube                  1973     


2) добавим optionally enclosed by - год съезжает на колонку влево - на место пропущенного LAST_NAME!!!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CREATE TABLE SCOTT.emp_load (first_name CHAR( 15 ), last_name CHAR( 20 ), year_of_birth INT)
  ORGANIZATION EXTERNAL (TYPE ORACLE_LOADER DEFAULT DIRECTORY "FILE_DIR"
                         access parameters (
                          RECORDS DELIMITED by X'0D0A' 
    BADFILE 'test.bad' DISCARDFILE 'test.dsc' logfile 'test.log'
                         FIELDS TERMINATED by X'09' optionally enclosed by '"'
                         MISSING FIELD values ARE null)
                         LOCATION ('test.txt'));


FIRST_NAME      LAST_NAME            YEAR_OF_BIRTH          
--------------- -------------------- ---------------------- 
Alvin           Tolliver              1976                    
Baer             1234                                         
Mary            Dube                  1973   


как бороться?
спасибо!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
External table - optionally enclosed by сдвигает столбцы
    #39266009
alex-ls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вылезло такое же дерьмо. сочетание
MISSING FIELD VALUES ARE NULL
и
OPTIONALLY ENCLOSED BY
вызывает сдвиг данных в другой столбец... к сожалению в данных есть и пустые значения и значения с кавычками. Есть решение у кого-нибудь?
...
Рейтинг: 0 / 0
External table - optionally enclosed by сдвигает столбцы
    #39266014
alex-ls в данных есть и пустые значенияи чем же, по твоему, будут "пустые значнния", если не писать missing fields are null?
...
Рейтинг: 0 / 0
External table - optionally enclosed by сдвигает столбцы
    #39266021
alex-ls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к пустой голове мысли не ...alex-ls в данных есть и пустые значенияи чем же, по твоему, будут "пустые значнния", если не писать missing fields are null?
ты такой классный, я хочу с тобой дружить
...
Рейтинг: 0 / 0
External table - optionally enclosed by сдвигает столбцы
    #39266151
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex-lsMISSING FIELD VALUES ARE NULL
и
OPTIONALLY ENCLOSED BY
вызывает сдвиг данных в другой столбец... к сожалению в данных есть и пустые значения и значения с кавычками.
Ну я бы для начала попробовал поиграть с режимами trim - возможно, явное указание "не резать бланки" позволит сохранить утерянный разделитель-табуляцию.
Вторым заходом убрал бы правило missing filed values - оно касается неполных строк, т.е. тех, в которых не хватает, собственно, полей (справа, в хвосте строки).
Третий хоп - убрать "optionally enclosed" и резать кавычки trim-ом в sql expression
Четвертый вариант - безотказный, но хлопотный - препроцессинг любой подходящей утилитой:
- замена разделителя
- приведение enclosing к единому виду
- добивание недостающих полей справа, if any
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / External table - optionally enclosed by сдвигает столбцы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]