我正在尝试使用COPY命令将csv文件导入postgres中的表。我有一列是json数据类型的问题。我尝试使用美元($$ ... $$)docu_4.1.2.2来转义csv中的json数据。 这是csv的第一行:
3f382d8c-bd27-4092-bd9c-8b50e24df7ec;370038757|PRIMARY_RESIDENTIAL;$${"CustomerData": "{}", "PersonModule": "{}"}$$
这是用于导入的命令:
psql -c "COPY table(id, name, details) FROM '/path/table.csv' DELIMITER ';' ENCODING 'UTF-8' CSV;"
这是我得到的错误:
ERROR: invalid input syntax for type json
DETAIL: Token "$" is invalid.
CONTEXT: JSON data, line 1: $...
COPY table, line 1, column details: "$${CustomerData: {}, PersonModule: {}}$$"
如何使用COPY
转义/导入json值?我应该放弃使用pg_loader
之类的东西吗?谢谢
答案 0 :(得分:0)
如果无法导入JSON数据,请尝试以下设置-即使对非常复杂的数据,这也对我有用:
COPY "your_schema_name.yor_table_name" (your, column_names, here)
FROM STDIN
WITH CSV DELIMITER E'\t' QUOTE '\b' ESCAPE '\';
--here rows data
\.