Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

pl/sql में अद्यतन के लिए चयन में SYS_REFCURSUR का उपयोग कैसे करें

एक sys_refcursor update . में उपयोग नहीं किया जा सकता बयान। जैसा कि नीचे दिखाया गया है, आप एक स्पष्ट कर्सर का उपयोग कर सकते हैं। इस तरह इस्तेमाल करें:

    DECLARE
    cursor a_cursor is
      SELECT mytable.VID
      FROM   mytable
      WHERE  ROWNUM <= COUNT FOR UPDATE;

    a_id number;
    begin
    OPEN a_cursor;
    loop     
      FETCH a_cursor INTO a_id;          
      exit when a_cursor%notfound; 

        UPDATE mytable SET
        ...
        WHERE  VID = a_vid;                   
    end loop;
    COMMIT;
   close a_cursor;
 end;

संपादित करें:

create or replace PROCEDURE get_rows(
                                   a_cursor OUT SYS_REFCURSOR,
                                   a_id IN VARCHAR,
                                   a_count IN NUMBER)
IS                                   
cursor a_cur is
  SELECT mytable.VID
  FROM   mytable
  WHERE  ROWNUM <= a_COUNT ;

a_id NUMBER;
cnumber number;
BEGIN 
OPEN a_cur;

 LOOP
  FETCH a_cur INTO a_id; 

  IF a_cur%notfound THEN
   cnumber := 9999;
  End if;

  exit when a_cursor%notfound; 

    UPDATE mytable SET
     ...
    WHERE  VID = a_vid;
  END loop;
  COMMIT;    
  CLOSE a_cur;

  Open a_cursor for select * from mytable;

end ;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PLS-00386:FETCH कर्सर और INTO चर के बीच पाया गया बेमेल टाइप करें

  2. Oracle का विनिर्देश या SQL का? :विदेशी कुंजी बाधाओं के साथ तालिका को छोटा करें

  3. ओरेकल में बहु-पंक्ति डालने का सबसे अच्छा तरीका?

  4. Oracle DB ऑडिट ट्रेल्स

  5. Oracle थिन ड्राइवर बनाम OCI ड्राइवर। भला - बुरा?