第一种写法:
declare
num number;
begin
num := &请输入一个数字;
case num
when 1 then
dbms_output.put_line('优');
when 2 then
dbms_output.put_line('良');
when 3 then
dbms_output.put_line('可');
when 4 then
dbms_output.put_line('差');
else
dbms_output.put_line('没有这个等级');
end case;end;
/
第二种写法:declare
grade varchar2(4);
begin
grade := &请输入一个字母;
case num
when A then
dbms_output.put_line('优');
when B then
dbms_output.put_line('良');
when C then
dbms_output.put_line('可');
when D then
dbms_output.put_line('差');
else
dbms_output.put_line('没有这个等级');
end case;end;
/第一种写法是对的但是第二种写法是错的我是初学者不明白这个问题请各位大侠指点指点。
declare
num number;
begin
num := &请输入一个数字;
case num
when 1 then
dbms_output.put_line('优');
when 2 then
dbms_output.put_line('良');
when 3 then
dbms_output.put_line('可');
when 4 then
dbms_output.put_line('差');
else
dbms_output.put_line('没有这个等级');
end case;end;
/
第二种写法:declare
grade varchar2(4);
begin
grade := &请输入一个字母;
case num
when A then
dbms_output.put_line('优');
when B then
dbms_output.put_line('良');
when C then
dbms_output.put_line('可');
when D then
dbms_output.put_line('差');
else
dbms_output.put_line('没有这个等级');
end case;end;
/第一种写法是对的但是第二种写法是错的我是初学者不明白这个问题请各位大侠指点指点。
grade varchar2(4);
begin
grade := &请输入一个字母;
case num --应为grade
when A then --应为'A'
dbms_output.put_line('优');
when B then --应为'B'
dbms_output.put_line('良');
when C then --应为'C'
dbms_output.put_line('可');
when D then --应为'D'
dbms_output.put_line('差');
else
dbms_output.put_line('没有这个等级');
end case;end;
/
declare
grade varchar2(4);
begin
grade := &请输入一个字母;
case grade
when 'A' then dbms_output.put_line('优');
when 'B' then dbms_output.put_line('良');
when 'C' then dbms_output.put_line('可');
when 'D' then dbms_output.put_line('差');
else dbms_output.put_line('没有这个等级');
end case;
end;
在oracle数据库里面运行此代码出现如下错误:
ORA-06550: 第 5 行, 第 14 列:
PLS-00201: 必须声明标识符 'A'
ORA-06550: 第 5 行, 第 5 列:
PL/SQL: Statement ignored请再指点指点,谢谢各位啦!
declare
grade varchar2(4);
begingrade:='&请输入一个字母';
case grade
when 'A' then
dbms_output.put_line('优');
when 'B' then
dbms_output.put_line('良');
when 'C' then
dbms_output.put_line('可');
when 'D' then
dbms_output.put_line('差');
else
dbms_output.put_line('没有这个等级');
end case;end;
/红色的地方,sql*plus处理替代变量时,只是把替代变量简单地替换成在系统提示下输入的值,需要自行对数据类型进行检查。
grade:='&请输入一个字母';
晕,又抽风了~要加上引号
grade varchar2(4);
begin
grade := '&请输入一个字母';
case grade
when 'A' then
dbms_output.put_line('优');
when 'B' then
dbms_output.put_line('良');
when 'C' then
dbms_output.put_line('可');
when 'D' then
dbms_output.put_line('差');
else
dbms_output.put_line('没有这个等级');
end case;
end;
2. case num 中num变量需要定义