**已关闭。**此问题为not reproducible or was caused by typos。目前不接受回答。
这个问题是由错字或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
去年关闭。
Improve this question的
在PostgreSQL中,如果我写这个查询,一切都很好:
UPDATE states
SET data = jsonb_set(data, '{test}', '"test"')
WHERE object_id = 'string'
RETURNING state_type, object_id, state_id, data
字符串
但是如果我想在.NET中使用Dapper编写类似的查询,那么我就会遇到问题:
Npgsql.PostgresException(0x80004005):42883:函数jsonb_set(jsonb,text,jsonb)不存在
下面是我的C#代码:
var sql = @"UPDATE states
SET data = jsonb_set(data, @key, CAST(@data as jsonb))
WHERE object_id = @objectId";
var result = await dbConnection.QueryFirstAsync<State>(sql, new
{
objectId = "string",
key = "{key}",
data = "test"
});
型
1条答案
按热度按时间bqujaahr1#
函数jsonb_set接受参数为(jsonb,text[],jsonb)而不是(jsonb,text,jsonb)。所以我在@key中添加了::text[]:
字符串