刚刚开始使用AWS DMS。使用'->>'操作符编写转换规则时遇到麻烦。我试图在源代码中提取JSON字段的子组件,并将其添加为目标的列。尝试在转换表达式中直接使用它,并将其 Package 在case语句中。
第一次尝试,(在case语句中)
{
"rule-type": "transformation",
"rule-id": "3",
"rule-name": "3",
"rule-action": "add-column",
"rule-target": "column",
"object-locator": {
"schema-name": "public",
"table-name": "test"
},
"value": "client_name",
"expression": "CASE WHEN details ->>'$.name' is not null THEN details ->>'$.name' ELSE '' END",
"data-type": {
"type": "string",
"length": 50
}
}
第二次尝试,(简单选择)
{
"rule-type": "transformation",
"rule-id": "3",
"rule-name": "3",
"rule-action": "add-column",
"rule-target": "column",
"object-locator": {
"schema-name": "public",
"table-name": "test"
},
"value": "client_name",
"expression": "select $details ->> '$.name' from public.test",
"data-type": {
"type": "string",
"length": 50
}
}
第三次尝试(仅使用操作员)
{
"rule-type": "transformation",
"rule-id": "3",
"rule-name": "3",
"rule-action": "add-column",
"rule-target": "column",
"object-locator": {
"schema-name": "public",
"table-name": "test"
},
"value": "Client_name",
"expression": "$details ->> '$.name'",
"data-type": {
"type": "string",
"length": 50
}
}
在这三个例子中,我都得到了与表达式错误相关的错误。我如何才能实现我正在努力的目标?
1条答案
按热度按时间monwx1rj1#
不幸的是,根据AWS docs,我没有看到它们支持JSON表达式。