日期:2014-05-17 浏览次数:20964 次
CREATE OR PROCEDURE DF_ID IS
V_SUBG3EFID NUMBER;
CURSOR CUR IS(
SELECT NAME FROM TEST T);
BEGIN
FOR CUR_RESULT IN CUR LOOP
BEGIN
SELECT ID
INTO V_SUBID
FROM STUDENT
WHERE ROWNUM = 1
AND NAME1 = CUR_RESULT.NAME;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;
UPDATE TEST T SET T.OID = V_SUBID WHERE T.NAME1 = CUR_RESULT.NAME;
END LOOP;
COMMIT;
END DF_ID;
------解决方案--------------------
--或者
CREATE OR PROCEDURE DF_ID IS
V_SUBG3EFID NUMBER;
CURSOR CUR IS(
SELECT NAME FROM TEST T);
BEGIN
FOR CUR_RESULT IN CUR LOOP
BEGIN
SELECT ID
INTO V_SUBID
FROM STUDENT
WHERE ROWNUM = 1
AND NAME1 = CUR_RESULT.NAME;
EXCEPTION
WHEN NO_DATA_FOUND THEN
GO TO LABLE1;
END;
UPDATE TEST T SET T.OID = V_SUBID WHERE T.NAME1 = CUR_RESULT.NAME;
<<LABLE1>>
END LOOP;
COMMIT;
END DF_ID;