Я пытался экспортировать данные из Mongo в Oracle. Раньше я подходил.
Step 1 : Export the data to CS file usign mongoExport command.
Step 2 : Read the data through a java code, do the necessary data transformation.
Step 3 : Insert the data to Oracle
Проблема заключается в том, что, когда в любом из разделов комментариев есть новый символ строки ('\n'), данные переходят к следующей строке, а java-чтение не обрабатывает документ.
Для этого есть открытая ошибка с 10gen, JIRA. Кто-то столкнулся с проблемой. Есть ли обходной путь для этого?
Как и во многих нюансах форматирования в CSV, не существует согласованного "стандарта" для обработки встроенных символов новой строки в поле CSV.
Общей реализацией является RFC-4180: формат Common Format и MIME для файлов с разделителями-запятыми (CSV), который предлагает:
6) Fields containing line breaks (CRLF), double quotes, and commas
should be enclosed in double-quotes.
For example:
"aaa","b CRLF
bb","ccc" CRLF
zzz,yyy,xxx
Это формат, который в настоящее время использует mongoexport
. Если вы используете синтаксический анализатор CSV, совместимый с RFC-4180 (например, SuperCSV, как предлагается @evanchooly), он должен обрабатывать цитированные новые строки, как ожидалось.
Если вам нужна альтернатива формату, используемому mongoexport
или требуется больше гибкости в вашем выходе, вы всегда можете написать собственный сценарий экспорта.
Вы пытаетесь разобрать csv вручную? Если да, посмотрите http://opencsv.sourceforge.net/ или http://supercsv.sourceforge.net/ и посмотрите, помогают ли они.