Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.tools -> [Newbie] help :PL/SQL cursor

[Newbie] help :PL/SQL cursor

From: Sebastien FERRANDEZ <sferrandez_at_wineandco.com>
Date: 2000/05/23
Message-ID: <392AA0A0.6E41BB0F@wineandco.com>#1/1

I get the following message

ORA-01403: no data found (the fetch line) ORA-06512: at line 21

I told myself that the cursor was empty but when I write : EXIT WHEN Mon_curseur%ROWCOUNT=10 ;
as the exit condition from my loop, it works !!! The type of the variables in which the results of the cursor is fetched are OK.

DECLARE  I_IDENTIF VARCHAR2(80);
 I_PRIX NUMBER(18,2);  I_CAT VARCHAR2(128);
 I_OID NUMBER(38);
 LOCAL_LIV FLOAT(126);
 LOCAL_PRICE NUMBER(18,2);
 ARRONDI NUMBER(18,2);  CURSOR Mon_curseur IS SELECT PRICE,PROD_ID,OID,CATEGORIE FROM PRODUCT;

BEGIN  OPEN Mon_curseur;

 LOOP
  FETCH Mon_curseur INTO I_PRIX,I_IDENTIF,I_OID,I_CAT;

  SELECT WINE_UNITES_LIV_PRIX INTO LOCAL_LIV FROM WINEANDCO_UNITES_LIV WHERE OID=I_OID AND WINE_UNITES_LIV_CATEGORIE IS NULL AND WINE_UNITES_LIV_LINE=1;   IF (I_CAT<>'X') THEN

       ARRONDI := ROUND (((1+(LOCAL_LIV/100))*1.196),4);   ELSE
       ARRONDI := ROUND ((1+(LOCAL_LIV/100)),4);   END IF;   LOCAL_PRICE := ROUND ((I_PRIX*ARRONDI),2);   UPDATE PRODUCT SET PRICE_ENTIER=(LOCAL_PRICE*100) WHERE PROD_ID=I_IDENTIF;
  COMMIT;   EXIT WHEN Mon_curseur%NOTFOUND ; -- THE BONE OF CONTENTION !!!!

 END LOOP;   CLOSE Mon_curseur;

END;
/ Received on Tue May 23 2000 - 00:00:00 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US