Question

im trying to implement an while loop i think my code is okay.. what went wrong with my code? what is the problem with my syntax in implementing my while loop? i'm new with PL/SQL

CREATE OR REPLACE
    PROCEDURE "WHILELOOPTEST" (LIMITLOOP IN NUMBER)
    AS
    BEGIN
    DECLARE MYCOUNTER NUMBER :=0;
        WHILE MYCOUNTER < LIMITLOOP  
    LOOP
     MYCOUNTER:= MYCOUNTER + 1;
    DBMS_OUTPUT.PUT_LINE('Hello World' || MYCOUNTER);
    END LOOP;
    END;
Was it helpful?

Solution

Just a problem with structure. Stored procedures don't have DECLARE keyword.

CREATE OR REPLACE
PROCEDURE "WHILELOOPTEST"(
    LIMITLOOP IN NUMBER)
AS
  MYCOUNTER NUMBER :=0;
BEGIN
  WHILE MYCOUNTER < LIMITLOOP
  LOOP
    MYCOUNTER:= MYCOUNTER + 1;
    DBMS_OUTPUT.PUT_LINE('Hello World' || MYCOUNTER);
  END LOOP;
END;

OTHER TIPS

You don't need to use DECLARE in a stored procedure. Try like this,

CREATE OR REPLACE
PROCEDURE WHILELOOPTEST(
          LIMITLOOP IN NUMBER)
AS 
     MYCOUNTER NUMBER :=0;
BEGIN
     WHILE MYCOUNTER < LIMITLOOP  
     LOOP
          MYCOUNTER:= MYCOUNTER + 1;
          DBMS_OUTPUT.PUT_LINE('Hello World' || MYCOUNTER);
     END LOOP;
END;
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top