Top.Mail.Ru
Ответы

Postgresql. Ошибка импорта файла. Не могу загрузить таблицу.

Не могу загрузить табличные данные в posgres. Пробовал и копи и импорт. Пишет:ERROR: не удалось открыть файл "C:\Users\rst\Desktop\1СУчёба\SQL\Практический проект LEGO\Lego\lego\inventories.csv" для чтения: No such file or directory
HINT: COPY FROM указывает серверному процессу PostgreSQL прочитать данные из файла. Возможно, на самом деле вам нужно клиентское средство, например, \copy в psql.

ОШИБКА: не удалось открыть файл "C:\Users\rst\Desktop\1СУчёба\SQL\Практический проект LEGO\Lego\lego\inventories.csv" для чтения: No such file or directory
SQL state: 58P01
Уж я и разрешения окткырывал к файлу и всё равно не могу импортировать

По дате
По Рейтингу
Аватар пользователя
Новичок
11мес

Для начала, перемести файл в корень диска - чтобы никаких русских букв, пробелов и прочих проблемных символов в пути / имени файла не было.

Аватар пользователя
Ученик
1мес

"Уж я и разрешения окткырывал к файлу и всё равно не могу импортировать"
Можно узнать, как Вы это сделали?

Та же проблема, и никак не могу решить как загрузить в БД гору CSV-файлов.
Нашёл аналогичный вопрос на другом форуме ( https://www.cyberforum.ru/postgresql/thread3203899.html )
Но пока не решаемо.

Аватар пользователя
Мудрец
11мес

Вот что говорит по этому поводу документация

COPY перемещает данные между таблицами PostgreSQL и обычными файлами в файловой системе.
COPY TO копирует содержимое таблицы в файл, а COPY FROM — из файла в таблицу (добавляет
данные к тем, что уже содержались в таблице). COPY TO может также скопировать результаты
запроса SELECT.
Если указывается список столбцов, COPY TO копирует в файл только данные указанных столбцов,
а COPY FROM вставляет каждое поле из файла в соответствующий ему по порядку столбец из
указанного списка. В случае отсутствия в этом списке каких-либо столбцов таблицы при COPY FROM
они получают значения по умолчанию.
COPY с именем файла указывает серверу PostgreSQL читать или записывать непосредственно этот
файл. Заданный файл должен быть доступен пользователю PostgreSQL (тому пользователю, от
имени которого работает сервер), и путь к файлу должен задаваться с точки зрения сервера.
Когда указывается параметр PROGRAM, сервер выполняет заданную команду и читает данные
из стандартного вывода программы, либо записывает их в стандартный ввод. Команда должна
определяться с точки зрения сервера и быть доступной для исполнения пользователю PostgreSQL.
Когда указывается STDIN или STDOUT, данные передаются через соединение клиента с сервером.

Обратите внимание: "путь к файлу должен задаваться с точки зрения сервера". Если ваш сервер не на локалхосте, то путь "C:\Users\rst\Desktop\1СУчёба\SQL\Практический проект LEGO\Lego\lego\inventories.csv" должен существовать на той же машине, что и сервер.