Plsql 问题定义:我想写一个pl/SQL块来输入三个主题的标记,并想显示相同主题的结果(百分比)

Plsql 问题定义:我想写一个pl/SQL块来输入三个主题的标记,并想显示相同主题的结果(百分比),plsql,Plsql,ORA-06550:第11行,第20列:PLS-00103:遇到符号“”几乎到处都缺少。DBMS\u输出。PUT\u行需要字符串作为参数,因此应将所有这些字母括在单引号中 这至少包括: DECLARE sub1 NUMBER; sub2 NUMBER; sub3 NUMBER; percent REAL; BEGIN sub1 := :subject1; sub2 := :subject2; sub3 := :subje

ORA-06550:第11行,第20列:PLS-00103:遇到符号“”几乎到处都缺少。
DBMS\u输出。PUT\u行
需要字符串作为参数,因此应将所有这些字母括在单引号中

这至少包括:

DECLARE
   sub1      NUMBER;
   sub2      NUMBER;
   sub3      NUMBER;
   percent   REAL;
BEGIN
   sub1 := :subject1;
   sub2 := :subject2;
   sub3 := :subject3;
   percent := (sub1 + sub2 + sub3) / 3;

   IF (    percent >= 0
       AND percent < 35)
   THEN
      DBMS_OUTPUT.put_line ('F');
   ELSIF (    percent >= 35
          AND percent < 50)
   THEN
      DBMS_OUTPUT.put_line ('d');
   ELSIF (    percent >= 50
          AND percent < 65)
   THEN
      DBMS_OUTPUT.put_line ('c');
   ELSIF (    percent >= 65
          AND percent < 80)
   THEN
      DBMS_OUTPUT.put_line ('b');
   ELSIF (percent >= 80)
   THEN
      DBMS_OUTPUT.put_line ('a');
   END IF;
END;
声明
sub1号;
sub2号;
sub3数;
真实百分比;
开始
sub1:=:subject1;
sub2:=:subject2;
sub3:=:subject3;
百分比:=(sub1+sub2+sub3)/3;
如果(百分比>=0
和百分比<35)
然后
DBMS_OUTPUT.put_行('F');
ELSIF(百分比>=35
和百分比<50)
然后
DBMS_OUTPUT.put_行('d');
ELSIF(百分比>=50
和百分比<65)
然后
DBMS_OUTPUT.put_行('c');
ELSIF(百分比>=65
和百分比<80)
然后
DBMS_OUTPUT.put_行('b');
ELSIF(百分比>=80)
然后
DBMS_OUTPUT.put_行('a');
如果结束;
结束;

您的代码中有许多语法错误,请查看下面我更正的代码,并比较您的代码,这样您就可以了解缺少关键字的地方了

    declare
    sub1 number;
    sub2 number;
    sub3 number;
    percent number;
    begin
/*    sub1:= :Subject1;
    sub2:= :Subject2;
    sub3:= :Subject3;*/
    sub1:= 40;
    sub2:= 76;
    sub3:= 84;
    percent:= (sub1+sub2+sub3)/3;
    if (percent between 0 and 34) then
        dbms_output.put_line('F');
    elsif (percent between 35 and 49) then
        dbms_output.put_line('d');
    elsif (percent between 50 and 64) then
        dbms_output.put_line('c');
    elsif (percent between 65 and 79) then
        dbms_output.put_line('b');
    else
        dbms_output.put_line('a');
    end if;
    end;

如果(百分数>=0和百分数)非常感谢,亲爱的WilsonI已经添加了f(百分数>=0和百分数
    declare
    sub1 number;
    sub2 number;
    sub3 number;
    percent number;
    begin
/*    sub1:= :Subject1;
    sub2:= :Subject2;
    sub3:= :Subject3;*/
    sub1:= 40;
    sub2:= 76;
    sub3:= 84;
    percent:= (sub1+sub2+sub3)/3;
    if (percent between 0 and 34) then
        dbms_output.put_line('F');
    elsif (percent between 35 and 49) then
        dbms_output.put_line('d');
    elsif (percent between 50 and 64) then
        dbms_output.put_line('c');
    elsif (percent between 65 and 79) then
        dbms_output.put_line('b');
    else
        dbms_output.put_line('a');
    end if;
    end;