PL/SQL, реализующий цикл while PL:00103

я пытаюсь реализовать цикл while, я думаю, что мой код в порядке.. что пошло не так с моим кодом? В чем проблема с моим синтаксисом в реализации моего цикла while? я новичок в 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;

2 ответа

Решение

Просто проблема со структурой. Хранимые процедуры не имеют ключевого слова DECLARE.

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;

Вам не нужно использовать DECLARE в хранимой процедуре. Попробуй вот так,

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;
Другие вопросы по тегам