INVALID_ARRAY_INDEX_IN_ELEMENT_AT错误类
该指数< indexValue >
是界外。的数组< arraySize >
元素。使用try_element_at
容忍在无效索引访问元素,返回NULL。如果必要的设置< ansiConfig >
“假”绕过这个错误。
解释
indexValue
超出了边界定义的数组元素的element_at (arrayExpr indexValue),或英语教学(arrayExpr indexValue)表达式。
之间的值必须是-arraySize
和arraySize
(不包括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砖运行时>集火花。sql。ansi。启用=假;>选择element_at(数组(“一个”,“b”,“c”),指数)从值(1),(4)作为T(指数);一个零>集火花。sql。ansi。启用=真正的;