Plsql 如何使用光标插入行?

Plsql 如何使用光标插入行?,plsql,Plsql,我想知道如何使用游标。我可以不用它,但我想让它与众不同。你不需要游标或PL/SQL。一个简单的插入到。。。选择…将更有效,我知道,但在这种情况下,我想使用数字3的循环从光标插入最高的3个余额。然后只需选择三个最高值。请告诉我如何操作?我已经在你的其他问题中告诉过你: DECLARE CUSTID ACCOUNT.CUST_ID%TYPE; ANO ACCOUNT.A_NO%TYPE; TYP ACCOUNT.TYPE%TYPE;

我想知道如何使用游标。我可以不用它,但我想让它与众不同。

你不需要游标或PL/SQL。一个简单的
插入到。。。选择…
将更有效,我知道,但在这种情况下,我想使用数字3的循环从光标插入最高的3个余额。然后只需选择三个最高值。请告诉我如何操作?我已经在你的其他问题中告诉过你:
    DECLARE
         CUSTID ACCOUNT.CUST_ID%TYPE;
         ANO ACCOUNT.A_NO%TYPE;
         TYP ACCOUNT.TYPE%TYPE;
         BALANC ACCOUNT.BALANCE%TYPE;
         STATU ACCOUNT.STATUS%TYPE;
         CURSOR S2 IS SELECT CUST_ID , A_NO , TYPE , BALANCE, STATUS FROM ACCOUNT WHERE STATUS = 'locked' ORDER BY BALANCE desc;
    BEGIN
OPEN S2;
FOR A IN 1..3 LOOP
        FETCH S2 INTO CUSTID ,ANO , TYP, BALANC, STATU ;
            INSERT INTO ACC_LOCKED (A_NO, CUST_ID, TYPE, BALANCE, STATUS)
            SELECT  CUST_ID ,A_NO , TYPE , BALANCE, STATUS FROM ACCOUNT     WHERE STATUS = 'locked' ORDER BY BALANCE desc;
     END LOOP;
     CLOSE S2;
 END;




ORA-00001: unique constraint (PK_ACC_LOCKED) violated