Проблема в том, что когда я помещаю более двух двойных кавычек в столбец NAME (проверьте код ниже), то sqlldr завершается неудачей.
В файле data.txt первые 3 записи терпят неудачу, поскольку столбец NAME (вторая позиция в записи) содержит более 2 двойных кавычек.
Пожалуйста помогите. Я думаю, что некоторые функции мне нужно поместить в контрольный файл для столбца NAME.
Вы можете запустить приведенный ниже код и проверить, что первые 3 записи потерпят неудачу и последняя запись будет вставлена, я хочу вставить все записи с двойной кавычкой или без нее:
--table creation
create table employee
(
name varchar2(4000)
);
--control file
load data
infile '/tmp/swetabh/data.txt'
into table employee
truncate
fields terminated by "," OPTIONALLY ENCLOSED by '"' TRAILING NULLCOLS
(
name
)
--data.txt (SEE ALL RECORDS ARE HAVING MORE THAN 2 DOUBLE QUOTE AND WANT TO INSERT DATA TO THE TABLE WITH OR WITHOUT DOUBLE QUOTE)
""start with double quote "
"end with double quote ""
"double quote " in the middle "
-bash-4.1 $ sqlldr userid = xxx / xxx @ xxxx control = / tmp / swetabh / control.txt log = / tmp / swetabh / control.log bad = / tmp / swetabh / bad.txt readsize = 2000000000 bindsize = 2000000000