sqlite AWS Data Migration Service针对JSON运算符的转换规则失败

5tmbdcev  于 2023-06-23  发布在  SQLite
关注(0)|答案(1)|浏览(106)

刚刚开始使用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
        }
    }

在这三个例子中,我都得到了与表达式错误相关的错误。我如何才能实现我正在努力的目标?

monwx1rj

monwx1rj1#

不幸的是,根据AWS docs,我没有看到它们支持JSON表达式。

相关问题