INVALID_ARRAY_INDEX_IN_ELEMENT_AT錯誤類

SQLSTATE: 22003

該指數< indexValue >是界外。的數組< arraySize >元素。使用try_element_at容忍在無效索引訪問元素,返回NULL。如果必要的設置< ansiConfig >“假”繞過這個錯誤。

參數

  • indexValue:請求的索引數組。

  • arraySize:數組的基數。

  • ansiConfig:配置設置來改變ANSI模式。

解釋

indexValue超出了邊界定義的數組元素的element_at (arrayExpr indexValue),或英語教學(arrayExpr indexValue)表達式。

之間的值必須是-arraySizearraySize(不包括0

緩解

這個錯誤的減排取決於原因:

  • 比預期小數組的基數?

    修複輸入數組並重新運行查詢。

  • indexValue計算錯誤了嗎?

    調整indexValue並重新運行查詢。

  • 你期望得到什麼值返回元素索引的基數以外?

    如果你能改變表達式,使用try_element_at (arrayExpr indexValue)容忍引用綁定。

    如果你不能改變表達式,作為最後的手段,暫時設置ansiConfig容忍引用綁定。

例子

——一個INVALID_ARRAY_INDEX_IN_ELEMENT_AT錯誤因為不匹配的索引>選擇element_at(數組(“一個”,“b”,“c”),指數)(1),(4)作為T(指數);(INVALID_ARRAY_INDEX_IN_ELEMENT_AT]指數4界限數組3元素如果必要的“ANSI_MODE”繞過錯誤——增加aray大小的索引>選擇element_at(數組(“一個”,“b”,“c”,' d '),指數)(1),(4)作為T(指數);一個d——調整索引匹配的數組>選擇element_at(數組(“一個”,“b”,“c”),指數)(1),(3)作為T(指數);一個c——基於容忍與調整綁定數組索引的索引>選擇try_element_at(數組(“一個”,“b”,“c”),指數)(1),(4)作為T(指數);一個——容忍的綁定通過設置ansiConfig磚SQL>ANSI_MODE=;>選擇element_at(數組(“一個”,“b”,“c”),指數)(1),(4)作為T(指數);一個>ANSI_MODE=真正的;——容忍的綁定通過設置ansiConfig磚運行時>火花sqlansi啟用=;>選擇element_at(數組(“一個”,“b”,“c”),指數)(1),(4)作為T(指數);一個>火花sqlansi啟用=真正的;