Ошибка вставки столбца Postgres JSONB: неверный синтаксис ввода для типа json входная строка неожиданно закончилась

#json #dbeaver

Вопрос:

Я пытаюсь создать строку вручную с помощью DBeaver, и я ввожу следующее в столбец jsonb:

 {"US":"0.880","PA":"0.028","KY":"0.025"}
 

Я проверил, что это допустимый JSON на https://jsonformatter.curiousconcept.com/#

Тем не менее, это то, что я получаю:

введите описание изображения здесь

Любое понимание будет оценено по достоинству…

Я даже попытался окружить объект одинарными кавычками, такими как:

 '{"US":"0.880","PA":"0.028","KY":"0.025"}'
 

Но получил сообщение об ошибке о том, что ‘ является недопустимым токеном…

Я писал сценарий nodejs для вставки объекта, построенного в формате json, в столбец, но я получал ту же ошибку, поэтому решил попробовать вручную, и я даже не могу вставить вышеуказанные данные…

Комментарии:

1. Пожалуйста, добавьте детали к вопросу, это хорошо работает на Postgres: select '{"US":"0.880","PA":"0.028","KY":"0.025"}'::jsonb; . (Используя PostgreSQL 12.6 (Ubuntu 12.6-0ubuntu0.20.10.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 10.2.0-13ubuntu1) 10.2.0, 64-bit ).

2. Я добавляю объект вручную через DBEAVER (СУБД) в столбец… разве это не должно сработать?

3. Проверьте файл журнала сервера, чтобы узнать, что он был отправлен.

4. Согласитесь с @jjanes: Это может быть больше проблемой с DBEAVER, чем с самим PostgreSQL.

Ответ №1:

Я могу без проблем вставить эти данные в столбец jsonb в DBeaver через пользовательский интерфейс.

Но у нас есть проблема с вводом в столбец json(не jsonb) в таблице, в которой нет первичного ключа. Может быть, это ваше дело https://github.com/dbeaver/dbeaver/issues/11704 ?

Или вы можете показать таблицу DDL?

вставить jsonb

Комментарии:

1. Эй, спасибо, что проверили. Я в основном двигался дальше. Я до сих пор не знаю, почему это не сработало. Однако это работает, если я вставляю его с помощью SQL-запроса. То, что я делал, — это использовал функцию «создать столбец» в разделе «просмотр данных таблицы».