文档解释
ORA-39765: stream must be reset before used in a column array conversion
Cause: The stream was completely loaded, but has not been reset yet.
Action: Reset loaded streams after load returns OCI_SUCCESS, OCI_NO_DATA, or OCI_NEED_DATA. The stream can then be used in a column array to stream conversion.
ORA-39765:在进行列数组转换之前,必须先重置流。
官方解释
当使用OCILobRead2读取到一组数据并尝试将其转换为列数组时,ORACLE会发出ORA-39765错误。这是因为OCILobRead2返回的流在处理完成后没有被重置,而如果流没有重置,就无法将其转换为列数组。
常见案例
通常,ORA-39765错误发生在调用OCILobRead2从大对象日志中读取数据,然后尝试将其转换为列数组时。此定序集将在程序中存储可以转换为列数组的多个值。
一般处理方法及步骤
正确处理ORA-39765错误的方法是,在调用OCILobRead2之后,调用OCILobReset将流重新设置为初始位置。也就是说,你应该在你处理流之前设置重置它,最后你应该再次重置它。这样,在你尝试将流转换为列数组之前,你就可以确保没有处理进度。