2017-01-26 9 views
1

Мне удалось использовать PSQL в Windows для экспорта SQL-запроса непосредственно в файл CSV, и все работает отлично, пока я не переопределяю имена столбцов с псевдонимами (используя AS).PSQL для CSV с псевдонимом столбца приводит к поврежденному файлу

Но как только я использовать псевдоним столбца и т.д .:

\copy (SELECT project AS "ID" FROM mydb.mytable WHERE project > 15 ORDER BY project) TO 'C:/FILES/user/test_SQL2CSV.csv' DELIMITER ',' CSV HEADER 

меня неожиданное поведение с файлом CSV.

  • В Excel: CSV-поврежден и пустой
  • В блокноте: данные присутствуют, но без разделителей или пробелов (в реальном времени, например ID27282930 ...)
  • В Notepad ++: данные хорошо организованы в колонке

(например

ID 
27 
28 
29 
30 
... 

)

Есть ли что-нибудь, чтобы экспортированный файл мог быть прочитан непосредственно в Excel (как это происходит, когда я не использую псевдонимы)?

+0

Ок, нашел этот вопрос, по-видимому, Excel интерпретирует файл, начиная с ID, как некоторый SYLK формат CSV вместо ... переименований псевдонима столбца в, например, MyID исправил проблему:/Ссылка здесь: https://annalear.ca/2010/06/10/why-excel-thinks-your-csv-is-a-sylk/ – sc28

ответ

1

После проверки различных конфигураций запроса я нашел проблему. По-видимому, Excel интерпретирует файл, начинающийся с «ID», как некоторый формат SYLK, а не CSV ... Переименование псевдонима столбца, например. «MyID» исправил проблему.

Ссылка здесь: annalear.ca/2010/06/10/why-excel-thinks-your-csv-is-a-sylk

+0

Да, это наш старый друг, Excel. Обратите внимание, что только эти два символа 'ID' вызовут это« повреждение »; цитируемый вариант (то есть, где файл/заголовок начинается с '' ID ", ...'), может быть прочитан Excel. Если вам удастся заставить цитату в заголовках (я никогда не пробовал это в команде 'COPY' PostgreSQL). – pozs

+0

Хороший совет, может помочь в будущем, но главная проблема заключалась не в том, чтобы сохранить этот конкретный ярлык, а в том, чтобы работать с псевдонимами. Просто неудача с этой особенностью excel: ') Спасибо в любом случае! – sc28