【问题标题】:PL/SQL Display Data From a Table with a ConditionPL/SQL 显示带有条件的表中的数据
【发布时间】: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


【解决方案1】:

首先,代码中缺少打开LOOP,因此会引发错误。因此,您似乎想使用游标而不是单独使用 SELECT 语句,然后在 LOOP 中将 part_info 限定符替换为 i

SQL> SET SERVEROUTPUT ON
SQL> CREATE OR REPLACE PROCEDURE categorie AS
     v_age  INT := 1;

     CURSOR part_info IS
     SELECT *      
       FROM Participant
      WHERE age > v_age;
BEGIN
   FOR i IN part_info
   LOOP     
        IF   i.age  <= 18  THEN
             DBMS_OUTPUT.PUT_LINE('NAME: ' || i.nomParticipant  || '  CATEGORIE :  JUNIOR');      
        ELSIF i.age >= 50 THEN
             DBMS_OUTPUT.PUT_LINE('NAME: ' || i.nomParticipant  || '  CATEGORIE :  SENIOR');
        ELSE
             DBMS_OUTPUT.PUT_LINE('NAME: ' || i.nomParticipant  || '  CATEGORIE :  MIDDLE');
        END IF;
   END LOOP;     
END;
/

【讨论】:

  • 不客气@EriicButDrunk 很高兴为您提供帮助
猜你喜欢
  • 2014-11-26
  • 1970-01-01
  • 1970-01-01
  • 2017-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-13
  • 1970-01-01
相关资源
最近更新 更多