我正在尝试在 IN 子句中将一组输入值用于我的过程,作为游标 where 子句的一部分。我知道以前有人问过这个问题,但是我还没有看到如何使我的语法正确编译。
在封装规范中,类型为
TYPE t_brth_dt IS TABLE OF sourceTable.stdt_brth_dt%TYPE INDEX BY PLS_INTEGER;
sourceTable.std_brth_dt
是表中的日期列。
我的光标的简化版本在包体中是 -
cursor DataCursor_Sort( p_brth_dt in t_brth_dt) is
SELECT *
FROM sourceTable
WHERE a.brth_dt IN (select column_value
from table(p_brth_dt))
当我尝试编译它时,我收到以下错误。
- [1]:(错误):PLS-00382:表达式类型错误
- [2]:(错误): PL/SQL: ORA-22905: 无法访问非嵌套表项中的行
我知道这看起来与其他问题相似,但我不明白语法错误是什么。