Mur*_*har 6 postgresql ddl json sqldatatypes
您好,我正在尝试将表中的列从 varchar 转换为 json,并且该表已经有一些字符串数据。我尝试使用以下命令执行此操作。
Database=# alter table table_name alter column message type json using
message::json;
Run Code Online (Sandbox Code Playgroud)
但该命令失败并出现以下错误。
ERROR: invalid input syntax for type json
DETAIL: Token "This" is invalid.
CONTEXT: JSON data, line 1: This...
Run Code Online (Sandbox Code Playgroud)
注意:消息栏有一组带有空格的单词,如下所示。
"This is a message"
Run Code Online (Sandbox Code Playgroud)
我不确定出了什么问题。提前致谢..
小智 15
您可以使用to_jsonb()而不是强制转换:
alter table table_name
alter column message type jsonb using to_jsonb(message);
Run Code Online (Sandbox Code Playgroud)
如果你确实想使用json(尽管jsonb推荐),那么将结果转换回 json 类型:
alter table table_name
alter column message type json using to_jsonb(message)::json;
Run Code Online (Sandbox Code Playgroud)
但对于不包含“真实”json 值、仅包含纯字符串的列来说,这似乎相当奇怪。