我正在使用套餐" EXCELTABLE"从excel文件中读取数据,我使用的查询工作正常,但问题是每当我尝试在存储过程中的for循环中使用相同的包时,它会给出错误" ORA-22905:无法访问来自非嵌套表项的行"。
以下是我使用的选择查询: -
String.join(delimiter, elements);
答案 0 :(得分:1)
ExcelTable developer says that it's a known issue(请参阅注释),以及它们提供的解决方法是使用动态sql:
OPEN my_refcursor FOR 'SELECT ...' USING <bind variables>
您可以阅读有关基础ORA-22905错误on this related question的更多信息。基本问题是EXCELTABLE.GETROWS()返回一个流水线的ANYDATASET,它不是嵌套表; Oracle文档将其描述为&#34; opaque类型之一;数据库不知道这些类型的内部结构&#34;。我认为您应该能够使用the ANYDATASET API访问各个元素,但使用动态refcursor看起来要简单得多,正如上面的开发人员所建议的那样。