КОПИРОВАНИЕ ИЗ .csv файла на удаленную базу данных PostgreSQL (работает на Linux сервере) - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь импортировать данные из файла .csv в базу данных PostgreSQL, размещенную на сервере Linux, используя следующую команду:

COPY areas_brasil FROM 'C:/Temp/RELATORIO_DTB_BRASIL_MUNICIPIO.csv' with delimiter '|' null 'NULL';

Но я получаю следующую ошибку :

ОШИБКА: не удалось открыть файл "C: / Temp / RELATORIO_DTB_BRASIL_MUNICIPIO.csv" для чтения: нет такого файла или каталога. СОВЕТ: COPY FROM дает команду процессу PostgreSQL сервера прочитать файл. Возможно, вам понадобится средство на стороне клиента, такое как psql \ copy.

.csv-файл находится на клиентском компьютере (работает на Windows 10), на котором у меня есть права администратора. к базе данных, размещенной на сервере (работает на Linux - Debian).

Спасибо за помощь!

1 Ответ

0 голосов
/ 12 февраля 2020

Добро пожаловать в SO.

COPY .. FROM 'path' предполагает, что файл находится на сервере. Если вы выполните sh команду COPY, не имея файла на сервере базы данных, вы можете использовать \copy или просто STDIN из psql с консоли клиента, например, в unix системы (вы должны найти cat и | эквивалент для Windows):

$ cat file.csv | psql yourdb -c "COPY areas_brasil FROM STDIN DELIMITER '|';"

Используя \COPY внутри psql, это можно сделать так:

\COPY areas_brasil FROM '/home/jones/file.csv' DELIMITER '|';

Подробнее см. answer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...