1

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

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

我真的不知道怎么了

4

3 回答 3

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;

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

于 2013-05-14T11:04:15.963 回答
1

它应该是“end if;”,而不是“endif;”。

(是的,这与“elsif”有些不一致。有趣的老东西,语法...... :-)

分享和享受。

于 2013-05-13T13:40:10.630 回答
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;
于 2014-07-19T16:47:47.807 回答