SUPER 配置 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

SUPER 配置

当您使用 Amazon Redshift SUPER 数据类型和 PartiQL 时,请注意 SUPER 配置的以下注意事项。

宽松和严格的 SUPER 模式

当您查询 SUPER 数据时,路径表达式可能不匹配实际的 SUPER 数据结构。当您尝试访问对象或数组元素的不存在成员时,如果您的查询在默认宽松模式下运行,Amazon Redshift 将返回 NULL 值。如果您在严格模式下运行查询,Amazon Redshift 将返回错误。可以将以下会话参数设置为打开或关闭宽松模式。

以下示例使用会话参数启用宽松模式。

SET navigate_super_null_on_error=ON; --default lax mode for navigation SET cast_super_null_on_error=ON; --default lax mode for casting SET parse_super_null_on_error=OFF; --default strict mode for ingestion

访问具有大写或混合大小写字段名称或属性的 JSON 字段

如果 JSON 字段为大写或混合大小写,则必须配置以下设置以查询数据。

SET enable_case_sensitive_identifier to TRUE; -- Accessing JSON fields with uppercase and mixed-case names SELECT json_table.data."ITEMS"."Name", json_table.data."price" FROM (SELECT json_parse('{"ITEMS":{"Name":"TV"}, "price": 345}') AS data) AS json_table; Name | price ------+------- "TV" | 345 (1 row) RESET enable_case_sensitive_identifier; -- After resetting the above configuration, the following query accessing JSON fields with uppercase and mixed-case names should return null (if in lax mode). SELECT json_table.data."ITEMS"."Name", json_table.data."price" FROM (SELECT json_parse('{"ITEMS":{"Name":"TV"}, "price": 345}') AS data) AS json_table; name | price ------+------- | 345 (1 row)