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 有什么问题。