0
DECLARE
AA NUMBER;
CURSOR S IS SELECT ENAME, SAL
FROM EMP;
CURSOR D IS SELECT ENAME, SAL
FROM EMP;
NAME EMP.ENAME%TYPE;
SALARY EMP.SAL%TYPE;
C NUMBER;
BEGIN
AA := :NUMBER_OF_EMP;
SELECT COUNT(EMPNO) INTO C FROM EMP;
OPEN S;
FOR A IN 1..AA LOOP
FETCH S INTO NAME, SALARY;
DBMS_OUTPUT.PUT_LINE('NAME : '||NAME||' SALARY :'||SALARY);
END LOOP;
CLOSE S;
DBMS_OUTPUT.PUT_LINE(' ');
OPEN D;
FOR A IN 1..AA LOOP
FETCH S INTO NAME, SALARY;
UPDATE EMP
SET SAL = SAL + 500;
DBMS_OUTPUT.PUT_LINE('NAME : '||NAME||' SALARY :'||SALARY);
END LOOP;
CLOSE D;
END;
我對光標有點混淆。在我的代碼我wana顯示僱員的名字和工資。例如,如果用戶在第一個遊標中放置3,則只會顯示3名具有(姓名和薪水)的員工。第二個遊標將執行相同的操作,但它將更改同一3名員工的工資並再次顯示。在PL/SQL中使用兩個光標
ORA-01001: invalid cursor