Oracle< - > SQL Server报告ORA-22905问题

时间:2014-02-11 20:41:48

标签: oracle visual-studio-2012 ssrs-2008-r2

ORA-22905: cannot access rows from a non-nested table item

调用Oracle中定义的函数时:

Function cd_dupe_ck (vdate in Varchar2)  
Return cd_dupckrow_t Pipelined  

类型:

Type cd_dupckrow_t Is Table Of cd_dupckrow;  
Type cd_dupckrow Is Object ( [some columns] );  

使用常量从报表开发工具(VS2012)调用时,它可以正常工作。 但是当尝试非平凡的情况(使用参数)时,它会得到22905错误。 例如

Select  * From  Table ( cd_dupe_ck( &date_p ) ) <<< FAILS  

但是

Select  * From  Table ( cd_dupe_ck( '20140101' ) ) <<< works fine  

理想的解决方案是找到一种按值传递参数的方法,但我会满足于它的工作。 报告中的@date_p参数将映射到数据集中的&amp; date_p。

1 个答案:

答案 0 :(得分:0)

正如我在上面的评论中所说,事实证明答案很简单,但意外 尝试在Crystal Reports和Jasper中复制问题后,让它在两者中都能正常工作,我很困惑为什么它只能使用表函数的常量参数。

当我想出另一份使用表格功能的报告时,我发现自己从未尝过一个

Select col1,col2,col3, etc.  

格式在我的选择上,只有Select *
在枚举表函数中的所有列时,它可以正常工作。