SingleStore中JSON_KEYS函数返回类型适配问题咨询
SingleStore JSON_KEYS 类型适配解决方案
问题本质
SingleStore 中 JSON_KEYS 函数返回的是 JSON 类型的数组,而原生 ARRAY(VARCHAR)/ARRAY(INT) 属于数据库原生数组类型,二者分属不同类型体系,无法直接隐式转换——这就是编译报错的核心原因。若声明为 JSON 类型仍报错,大概率是赋值语法存在问题。
具体解决方法
- 赋值给原生 ARRAY 类型
需要用JSON_TO_ARRAY函数显式将 JSON 数组转换为对应类型的原生数组:
- 若 JSON 键为字符串类型:
DECLARE items_keys ARRAY(VARCHAR(255)); SET items_keys = JSON_TO_ARRAY(JSON_KEYS(weighted_items_json), 'VARCHAR(255)');
- 若 JSON 键为整数类型:
DECLARE items_keys ARRAY(INT); SET items_keys = JSON_TO_ARRAY(JSON_KEYS(weighted_items_json), 'INT');
- 赋值给 JSON 类型变量
直接赋值即可,确保变量声明和赋值语法正确:
DECLARE items_keys JSON; SET items_keys = JSON_KEYS(weighted_items_json);
补充说明
JSON_TO_ARRAY 是 SingleStore 专门用于 JSON 数组与原生数组互转的函数,第二个参数需指定目标数组的元素类型,要与 JSON 键的实际类型匹配。
内容的提问来源于stack exchange,提问作者Lukas Pistelak
相关产品推荐
相关产品推荐

