sql плюс вывод не приходит в правильном формате CSV, если мы используем colsep, - PullRequest
0 голосов
/ 24 апреля 2020

Проблема, с которой я сталкиваюсь, заключается в том, что даже данные в файле CSV также разделяются, если значение состоит из , (запятая)

Я использую сценарий оболочки, подключаемый к oracle с использованием sql плюс и буферизация данных в CSV-файле

В CSV colsep , (запятая) работает нормально для разделения столбцов, но данные также разделяются.

, например, если значение названия компании (Южный текстиль, LICO). В этом случае даже текстиль SOuttheren находится в одном столбце, а LICO перемещается в другой столбец, а оставшиеся данные изменяются после разделения запятой.

Пожалуйста помогите мне в приведенном ниже коде, который я использовал в моем сценарии:

set feedback off trimspool on;
set pagesize 50000
set serveroutput on
set underline off
set termout off
set feedback off
set colsep " , "
set HEADING ON
set tab off
set trimspool on
set linesize 2000
set trimout on;
column company_name format a10

Ответы [ 2 ]

0 голосов
/ 26 апреля 2020

SQLPlus имеет формат CSV. Просто сделайте

Установите разметку CSV на

0 голосов
/ 24 апреля 2020
set colsep " , "

Лучше не окружать разделитель пробелами, потому что синтаксический анализатор должен рассматривать эти пробелы как часть поля (см. RF C 4180 ).

Если ваши поля содержат ,, можно использовать другой разделитель (например, ; или |), но правильный способ - окружить эти поля " (возможно, параметром для генератора). Если само поле имеет " внутри, его следует экранировать другим ".

...