尝试使用获取ORA-22905的select语句查询数据:无法访问非嵌套表项中的行

时间:2018-02-21 12:06:47

标签: oracle plsql

我正在使用套餐" EXCELTABLE"从excel文件中读取数据,我使用的查询工作正常,但问题是每当我尝试在存储过程中的for循环中使用相同的包时,它会给出错误" ORA-22905:无法访问来自非嵌套表项的行"。

以下是我使用的选择查询: -

String.join(delimiter, elements);

1 个答案:

答案 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看起来要简单得多,正如上面的开发人员所建议的那样。