Как импортировать данные Json в таблицу Postgres - PullRequest
0 голосов
/ 28 июня 2018

У меня есть API, который предоставляет текстовый файл данных json с именем corporateHoliday.txt .

Данные выглядят так:

{
    "holiday_id":"1712010100000104",
    "holiday_date":"2018-12-30 00:00:00.0",
    "holiday_description":"SUNDAY",
    "holiday_status":"A"
},
{
    "holiday_id":"1712010100000103",
    "holiday_date":"2018-12-29 00:00:00.0",
    "holiday_description":"SATURDAY",
    "holiday_status":"A"
}

Мои атрибуты таблицы postgres выглядят следующим образом t_leave_holida (objectid, holiday_date, description, recstatus)

Я хочу импортировать эти данные json из txt-файла в таблицу базы данных postgres?

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Создайте массив json, мы можем вставить все записи в t_leave_holida

  insert into t_leave_holida(objectid, holiday_date,description,recstatus)
  select holiday_id,holiday_date,holiday_description,holiday_status from
  json_to_recordset(
   '[
      {
        "holiday_id":"1712010100000104",
        "holiday_date":"2018-12-30 00:00:00.0",
        "holiday_description":"SUNDAY",
        "holiday_status":"A"
      },
      {
        "holiday_id":"1712010100000103",
        "holiday_date":"2018-12-29 00:00:00.0",
        "holiday_description":"SATURDAY",
        "holiday_status":"A"
      }
    ]'
  ) as x(holiday_id bigint, holiday_date date, holiday_description text,holiday_status text);
0 голосов
/ 28 июня 2018

вы можете использовать jsonb тип и просто выбрать данные из json, как здесь:

db=# create table t_leave_holida(objectid bigint, holiday_date timestamp(1), description text,recstatus text);
db=# insert into t_leave_holida select (d->>'holiday_id')::bigint, (d->>'holiday_date')::timestamp, d->>'holiday_description', d->>'holiday_status' from (select '{
    "holiday_id":"1712010100000104",
    "holiday_date":"2018-12-30 00:00:00.0",
    "holiday_description":"SUNDAY",
    "holiday_status":"A"
}'::jsonb d) ali;
INSERT 0 1
db=# select * from t_leave_holida;
     objectid     |    holiday_date     | description | recstatus
------------------+---------------------+-------------+-----------
 1712010100000104 | 2018-12-30 00:00:00 | SUNDAY      | A
(1 row)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...