文档解释
ORA-32106: array fetch not allowed without setBuffer on all columns
Cause: The setBuffer method was not called for all column postions and the next method was called to fetch more than one row.
Action: Call the setBuffer method for all column positions if next is to to be called to fetch more than one row.
ORA-32106的错误表明你没有在所有列上都使用setBuffer方法(或者有些列上不可能使用setBuffer方法)。
官方解释
ORA-32106意味着请求的数组获取操作未设置setBuffer方法在每一列上,并且在某一列上不能调用setBuffer方法。如果你想从数据库读取一组数据,则在获取之前必须保证为每一列都调用了setBuffer方法。
常见案例
当你从Oracle数据库中读取一组行数据时,你可能会遇到这个错误。这里你必须保证所有列都使用setBuffer方法进行缓冲,以便正确提取数据。
一般处理方法及步骤
正常处理该错误的步骤为:
1.确定要抓取的列
2.为每个列调用setBuffer方法
3.执行ArrayFetch语句来检索数据
4.使用getBuffer方法检索结果
5.使用next方法移动到下一行