Netezza
Netezza 錯誤記錄大小 120000 超出了 65535 字節的內部限制
我有一列 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 的文本指定為列名,但這不是我想要做的。需要任何建議或澄清嗎?
我想函式結果的數據類型與列本身
SUBSTR(PARAM, ...)
的長度相同。PARAM
由於您的select
列表中有兩個,如果 的長度PARAM
足夠大,則選擇列表中兩個值的組合長度可能超過某種內部限制。嘗試將值顯式轉換為較短的數據類型,例如
SELECT cast( substr(PARAM, (instr (PARAM , 'Name":"' )+7), (instr(PARAM, 'StepName":"'))-21) as varchar (100)) as Name, cast( substring(PARAM, (instr (PARAM , 'StepName":"'))+14, (instr(PARAM, 'StepData":"'))-(instr(PARAM, 'StepName":"'))-17) as varchar (100)) as StepName FROM Table