SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » PostgreSQL » postgresql чтение файла (Plpgsql)
icon5.gif  postgresql чтение файла [сообщение #2306] Sun, 21 May 2023 08:12 Переход к следующему сообщению
dbalor в настоящее время не в онлайне  dbalor
Сообщений: 12
Зарегистрирован: May 2023
Junior Member
есть csv файл, в функции pgplsql прочитать этот файл и создать на его основе таблицу(заголовок csv файла), и затем заполнить эту таблицу данными из этого csv файла.

Как это сделать средствами plpgsql ? Если нельзя то какими средствами можно это реализовать в PostgreSQL ?
Re: postgresql чтение файла [сообщение #2308 является ответом на сообщение #2306] Sun, 21 May 2023 13:06 Переход к предыдущему сообщениюПереход к следующему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 368
Зарегистрирован: June 2022
Senior Member
Import CSV File Into PostgreSQL Table - обычно так.

Но в хранимках, там не DELIMTER, а позиционный параметр типа $1, насколько помню.
Re: postgresql чтение файла [сообщение #2310 является ответом на сообщение #2308] Sun, 21 May 2023 15:00 Переход к предыдущему сообщениюПереход к следующему сообщению
dbalor в настоящее время не в онлайне  dbalor
Сообщений: 12
Зарегистрирован: May 2023
Junior Member
Наверное я не совсем понятно описал задачу.
Вопрос в том что надо сделать как бы динамически, т.е. мы не знаем заранее количество столбцов таблицы и их типы и имена, а надо создать таблицу
c таким же именем что и csv, а название колонок таблицы взять из заголовка csv файла.
Функция принимает как параметр путь к csv файлу

[Обновления: Sun, 21 May 2023 15:01]

Известить модератора

Re: postgresql чтение файла [сообщение #2313 является ответом на сообщение #2310] Mon, 22 May 2023 09:56 Переход к предыдущему сообщениюПереход к следующему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 368
Зарегистрирован: June 2022
Senior Member
Не уверен, что это можно сделать через copy. Особенно автоматическое определение типов полей.
Re: postgresql чтение файла [сообщение #2325 является ответом на сообщение #2313] Mon, 22 May 2023 21:29 Переход к предыдущему сообщениюПереход к следующему сообщению
dbalor в настоящее время не в онлайне  dbalor
Сообщений: 12
Зарегистрирован: May 2023
Junior Member
Через что это можно сделать средствами PostgreSQL?
У меня есть мысль для всех полей сделать тип varchar.
Вопрос в том какими средствами postgresql прочитать заголовок csv в строку либо массив?
Re: postgresql чтение файла [сообщение #2365 является ответом на сообщение #2325] Wed, 24 May 2023 12:14 Переход к предыдущему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 368
Зарегистрирован: June 2022
Senior Member
pg_read_file()

pg_read_file() is a system function for reading the contents of a text file on the local filesystem.

Но мне кажется, что это задача не для субд. Проще написать какую-то утилиту для импорта.
Предыдущая тема: Вопрос по бэкапам
Следующая тема: SQL миграции в Postgres
Переход к форуму:
  


Текущее время: Sun Dec 22 11:18:33 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00757 секунд