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