我正在写一个简单的老年人检查计划。但错误让我感到困惑。代码如下
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
我真的不知道出了什么问题
答案 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;