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启用=真正的;