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;