pl / sql中的PLS - 00103错误

时间:2013-05-13 13:18:55

标签: plsql pls-00103

我正在写一个简单的老年人检查计划。但错误让我感到困惑。代码如下

declare
  gen char(1);
    age number(3);

begin
  gen:='&gen';
    age:=&age;

  if age>65 and gen='m'
    then
      dbms_output.put_line("senior citizen");

  elsif age>60 and gen='f'
    then
      dbms_output.put_line("senior citizen");

  else
      dbms_output.put_line(" not a senior citizen");
  endif;
end;

error at line 20:
ora 06550:line 20, column 4
pls-00103:encountered symbol ';' when expecting one of the following if

我真的不知道出了什么问题

3 个答案:

答案 0 :(得分:3)

declare
  gen char(1);
    age number(3);

begin
  gen:='&gen';
    age:=&age;

  if age>65 and gen='m'
    then
      dbms_output.put_line('senior citizen');

  elsif age>60 and gen='f'
    then
      dbms_output.put_line('senior citizen');

  else
      dbms_output.put_line(' not a senior citizen');
  end if;
end;

使用'时,您必须使用"代替dbms_output.put_line来显示字符串消息 还有一个endif,必须替换为end if
希望是有帮助的朋友。

答案 1 :(得分:1)

应该是“结束if;”,而不是“endif;”。

(是的,这与“elsif”有点不一致。有趣的旧事,语法......: - )

分享并享受。

答案 2 :(得分:0)

declare
    gen char(1)   := lower(:Gender)   ;
    age number(3) := :Age;
begin

  if ( 
    (age>65 and gen = 'm') OR (age>60 and gen ='f')
  )then
    dbms_output.put_line('senior citizen');
  else
    dbms_output.put_line(' not a senior citizen');
end if;
end;