Oracle
 sql >> база данни >  >> RDS >> Oracle

Sqlldr- Не е намерен терминатор след прекратено и оградено поле

Да помолите вашия доставчик да коригира файла с данни може да не е опция, но в крайна сметка намерих решение, което изисква от вас леко да актуализирате контролния си файл, за да посочите вашия знак „заградено от“ за всяко поле, вместо за всички полета.

За моя случай имах проблем, при който ако полето [first_name] влезе с двойни кавички, обгръщащи псевдоним, то не се зареди. (ПР.:Джонатан "Джон"). Във файла с данни името беше показано като "Jonathon "Jon"". Така че "заградено от" хвърляше грешка, защото имаше двойни кавички около стойността и двойни кавички около част от стойността ("Jon"). Така че вместо да посоча, че стойността трябва да бъде оградена с двойни кавички, пропуснах това и просто премахнах ръчно кавичките от низа.

Load Data
APPEND
INTO TABLE MyDataTable
fields terminated by ","     ---- Noticed i omitted the "enclosed by"
TRAILING NULLCOLS
(
  column1 enclosed by '"',   --- Specified "enclosed by" here for all cols
  column2 enclosed by '"',
  FIRST_NAME "replace(substr(:FIRST_NAME,2, length(:FIRST_NAME)-2), chr(34) || chr(34), chr(34))", -- Omitted "enclosed by".  substr removes doublequotes, replace fixes double quotes showing up twice.  chr(34) is charcode for doublequote
  column4 enclosed by '"',
  column5 enclosed by '"'
)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да копирате данни от една база данни/таблица в друга база данни/таблица

  2. Как да актуализирате празен низ до oracle Clob

  3. Опит за изтриване от множество таблици с помощта на SQL

  4. Как да инсталирате perl DBD::Oracle на OSX Snow Leopard 10.6

  5. Изявлението Rownum връща различен ред от този без него