第一种写法:
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;
/第一种写法是对的但是第二种写法是错的我是初学者不明白这个问题请各位大侠指点指点。
解决方案 »
- oracle递归问题
- 求助!急!oralce816升级到oracle817时要求输入oracle例程的“内部口令”,是什么?
- 有人能帮忙提供一个sqlca.h的原代码吗,谢谢!
- 为什么出现ORA-00001: 违反唯一约束条件
- 哪里有oracle 9i 或 10i 下载???
- 在solaris上安装oracle9i 如何设置内核参数呀
- 在线等,如何打开监听,为何报the listener supports no services
- 请教关于job的工作机制的问题?
- 在EXP数据库时,含有CLOB字段的表备份不出来,具体报下面的错误!
- 定时任务 循环批次执行
- 在线急等--把查询出来的结果集竖向转横向
- 事件日志文件已满
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变量需要定义