Если у меня есть следующий файл json
C:\PostgresStage>type test2.json
{"key":"Hello \"World\""}
, и я пытаюсь загрузить его в столбец json или текст, используя команду COPY, я получаю недопустимый JSON, потому что копия появляется, чтобы убрать escape-символы изфайл, как можно видеть ниже
postgres=# \d+ T1
Table "public.t1"
Column | Type | Collation | Nullable | Default | Storage | Stats target | Description
--------+------+-----------+----------+---------+----------+--------------+-------------
data | text | | | | extended | |
postgres=# delete from T1;
DELETE 1
postgres=# copy t1 from 'c:\PostgresStage\test2.json';
COPY 1
postgres=# select * from T1;
data
-------------------------
{"key":"Hello "World""}
(1 row)
postgres=# select data::jsonb from T1;
ERROR: invalid input syntax for type json
DETAIL: Token "World" is invalid.
CONTEXT: JSON data, line 1: {"key":"Hello "World...
postgres=#
Есть ли способ предотвратить это ..
Также, если у меня есть "симпатичный" JSON, такой как этот
C:\PostgresStage>type test2.json
{
"key":"Hello \"World\""
}
Это загружается как 3 ряда.Можно ли в любом случае использовать копирование для загрузки всего файла в виде одной строки.
Наконец, есть ли возможность использовать COPY для передачи параметра в функцию, а не для загрузки строки в таблицу