Redshift SUPER 类型:访问驼峰式大小写字段返回空结果

Vzz*_*arr 3 json amazon-web-services amazon-redshift

我正在尝试访问具有驼峰式大小写字段的 SUPER 列的字段,因此类似于:

{"FirstName": "Mario", "LastName": "Maria"}
Run Code Online (Sandbox Code Playgroud)

假设我将此字段存储在 Redshift 中作为 column my_json,然后我将使用以下命令查询它

SELECT my_json.FirstName
FROM my_table
Run Code Online (Sandbox Code Playgroud)

然后我只会得到null结果而不是真正的值。

如何处理这个用例?

Bil*_*ner 7

Second Redshift 默认所有列名称均为小写,因此 FirstName 被视为名字。enable_case_sensitive_identifier您可以通过将连接变量设置为 true 并引用所有需要大写字符的列名来启用区分大小写的列名:

SET enable_case_sensitive_identifier TO true; 
Run Code Online (Sandbox Code Playgroud)

并更改my_json.FirstNamemy_json."FirstName".

看:

https://docs.aws.amazon.com/redshift/latest/dg/r_enable_case_sensitive_identifier.html

https://docs.aws.amazon.com/redshift/latest/dg/super-configurations.html