我有一个存储过程接受整数作为输入,并生成包含var1作为输出之一的输出。我试图将xyz_table加入此存储过程的输出。但问题是我需要在调用此存储过程之前提供整数值,以便我可以动态地连接到结果集。
查询看起来像这样。
SELECT *
FROM xyz_table t1
LEFT OUTER JOIN Call_Date_Rate_Proc(t1.idx) ON var1 = t1.idx
WHERE t1.idx IN (12100,78218)
但每当我运行此操作时,我都会收到错误
列idx无效
不知怎的,它无法识别这个变量。
答案 0 :(得分:1)
如果Call_Date_Rate_Proc(var1)是一个表函数(流水线或非流水线),并且您使用的是Oracle 12c,则可以使用CROSS APPLY
,OUTER APPLY
或LATERAL
联接功能:< / p>
select *
from xyz_table t1
OUTER APPLY (select * from TABLE(Call_Date_Rate_Proc(t1.idx))) t2
where t1.idx in (12100,78218);