我有一列 PARAM,其中包含如下所示的 JSON 数据:
JSON:{"Name":"RES_InformationalIssues","StepName":"Page_1","StepData":"f601e9fe-d68a-4ed7-bbaa-f40c9cbc4d12=General Product Information","SessionId":"ab04f2c4-ddge-4555-c792-01d9518e7148"}
我希望有多个列(名称、StepName、StepData、SessionID),其中包含它们的数据。
SELECT substr(PARAM, (instr (PARAM , 'Name":"' )+7), (instr(PARAM, 'StepName":"'))-21) as Name, substring(PARAM, (instr (PARAM , 'StepName":"'))+14, (instr(PARAM, 'StepData":"'))-(instr(PARAM, 'StepName":"'))-17) as StepName FROM Table
由于我更改了名称,因此该查询无法完全正确地工作,但我认为您明白了。当我对这些列中的任何一个运行查询时,我得到了我正在寻找的数据。但是当它们像我上面那样一起运行时,我得到了错误:
错误 [HY000] 错误:记录大小 120000 超出了 65535 字节的内部限制
感觉这意味着我不应该将 PARAM 的文本指定为列名,但这不是我想要做的。需要任何建议或澄清吗?