【发布时间】:2021-02-16 18:44:10
【问题描述】:
我正在尝试根据参与者的年龄显示姓名和类别
CREATE OR REPLACE PROCEDURE categorie AS
v_age NUMBER := 1;
part_info participant%ROWTYPE;
BEGIN
SELECT *
INTO part_info
FROM Participant
WHERE age > v_age;
FOR i IN part_info
IF(part_info.age<=18) THEN
DBMS_OUTPUT.PUT_LINE('NAME: ' || part_info.nomParticipant || 'CATEGORIE : JUNIOR');
ELSIF(part_info.age>=50) THEN
DBMS_OUTPUT.PUT_LINE('NAME: ' || part_info.nomParticipant || 'CATEGORIE : SENIOR');
ELSE
DBMS_OUTPUT.PUT_LINE('NAME: ' || part_info.nomParticipant || 'CATEGORIE : MIDDLE');
END IF;
END LOOP;
END;
我错过了什么?
错误是“警告:过程创建时出现编译错误。”
【问题讨论】:
-
发布错误会很有帮助,这样我们就不必猜测了。如果我不得不猜测,看起来你的琴弦没有正确闭合。我假设您希望在
CATEGORIE之前和JUNIOR|SENIOR|MIDDLE之后使用开放单引号,并且它们之间没有单引号。 -
哦,是的,我在修复之前错过了单引号,但同样的错误“警告:过程创建时出现编译错误。”
-
在
SQL*Plus中,键入show errors以显示错误。或查询user_errors。 -
你不能循环遍历
part_info,因为它不是游标。 -
是的,这是一个循环问题,谢谢大家的帮助。
标签: oracle plsql database-cursor