CREATE TYPE PROD_RPT_DTL  IS object
(
    DIVISION_ID NUMBER(6),
    DIVISION_NM VARCHAR2(100), 
    DEPT_ID NUMBER(10), 
    DEPT_NM VARCHAR2(100),
    WORK_FLOOR_ID NUMBER(10),
    ...........................
)/
CREATE TYPE PROD_RPT_DTL_TABLE is TABLE OF PROD_RPT_DTL
--> 程序返回的 PROD_RPT_DTL_TABLE 类型是
PROCEDURE sp_GetAllInQtyDetailForCutting(V_PROD_RPT_DTL out PROD_RPT_DTL_TABLE);
-->现在我的程序正在执行下面的代码
DECLARE
    v_PROD_RPT_DTL PROD_RPT_DTL_TABLE:=PROD_RPT_DTL_TABLE();
    vv_PROD_RPT_DTL PROD_RPT_DTL_TABLE:=PROD_RPT_DTL_TABLE();
    WHEREClause varchar2(500);
    QUERY VARCHAR2(2000);
    CUR SYS_REFCURSOR;
BEGIN
    --calling procedure to return valued in v_PROD_RPT_DTL
    sp_GetAllInQtyDetailForCutting(v_PROD_RPT_DTL);
    WHEREClause := ' Where division_id=1'; ; 
    --> now v_PROD_RPT_DTL is a nested table and i have to apply some dynamic filter on it.
    QUERY := 'SELECT * bulk collect INTO vv_PROD_RPT_DTL FROM Table(cast(v_PROD_RPT_DTL AS PROD_RPT_DTL_TABLE))' || WHEREClause ;
    open cur for QUERY;
    .................................................
END ;
当我运行整个事情时,我遇到了错误
ORA-00904: "V_PROD_RPT_DTL": invalid identifier 
ORA-06512: at "SCHEMA.PKG_PROD_REP_MDL", line 52 
ORA-06512: at line 4  !
第 52 行是 QUERY := ......
请建议我的 PL/SQL 有什么问题。