我做了一个如下所示的过程,我想获取游标值并从其他循环中提取这些值告诉我最好的方法是我的代码
CREATE OR REPLACE PROCEDURE TEST (P_EMP_ID NUMBER,
TRIGER_BY VARCHAR2)
AS
CURSOR TO_HOD
IS
SELECT EMP.EMPLOYEE_CODE,
EMP.EMP_NAME,
APR.LEFT_DT,
APR.RESIGN_TYPE
FROM FSC_APPROVAL APR, CHR_ALL_EMPLOYEE_BI_V EMP
WHERE APR.HOD_APPR = 'Y'
AND APR.ZONE_HD_APPR IS NULL
AND EMP.EMPLOYEE_ID = APR.EMP_ID;
CURSOR TO_ZONE
IS
SELECT EMP.EMPLOYEE_CODE,
EMP.EMP_NAME,
APR.LEFT_DT,
APR.RESIGN_TYPE
FROM FSC_APPROVAL APR, CHR_ALL_EMPLOYEE_BI_V EMP
WHERE APR.HOD_APPR = 'Y'
AND APR.ZONE_HD_APPR = 'Y'
AND APR.TIM_OFC_APPR IS NULL
AND EMP.EMPLOYEE_ID = APR.EMP_ID;
CUR_VAL TO_HOD%ROWTYPE;
CUR_VAL_FOR_LOOP TO_HOD%ROWTYPE;
程序从这里开始
BEGIN
IF TRIGER_BY = 'HOD'
THEN
OPEN TO_HOD;
LOOP
FETCH TO_HOD INTO CUR_VAL;
EXIT WHEN TO_HOD%NOTFOUND;
END LOOP;
ELSIF TRIGER_BY = 'ZONE'
THEN
OPEN TO_ZONE;
LOOP
FETCH TO_ZONE INTO CUR_VAL;
EXIT WHEN TO_ZONE%NOTFOUND;
END LOOP;
END IF;
在上面的代码中只需获取我的数据并放入cur_val那是%rowtype
之后我在新循环中获取这些值,但它没有意义并显示错误PLS-00456: 项目“CUR_VAL”不是游标
LOOP
***FETCH CUR_VAL INTO CUR_VAL_FOR_LOOP;***
DBMS_OUTPUT.PUT_LINE (CUR_VAL_FOR_LOOP.EMPLOYEE_CODE);
END LOOP;
END;
/
我在这条线上遇到错误FETCH CUR_VAL INTO CUR_VAL_FOR_LOOP;
请指导我如何按照我的意愿进行此过程如果您有更好的选择那么我热烈欢迎如果您对我的问题有进一步的疑问那么我将在这里向您描述