Oracle 尝试在plsql中获取用户输入,但不起作用
错误报告-Oracle 尝试在plsql中获取用户输入,但不起作用,oracle,plsql,sqlplus,Oracle,Plsql,Sqlplus,错误报告- ORA-06550:第3行第24列: PLS-00201:必须声明标识符“经理” ORA-06550:第3行第12列: PL/SQL:忽略项 ORA-06550:第6行第23列: PLS-00320:此表达式类型的声明不完整或 畸形的 好吧,你所做的——编辑问题并添加图像而不是代码——是错误的。不是每个人都能看到图像。你宁愿发代码 不管怎样:下面是你的代码出了什么问题 如果您不确定要做什么,请使用帮助accept使用char,而不是varchar2并且没有大小 SET SEROUTP
ORA-06550:第3行第24列:
PLS-00201:必须声明标识符“经理”
ORA-06550:第3行第12列:
PL/SQL:忽略项
ORA-06550:第6行第23列:
PLS-00320:此表达式类型的声明不完整或
畸形的
好吧,你所做的——编辑问题并添加图像而不是代码——是错误的。不是每个人都能看到图像。你宁愿发代码
不管怎样:下面是你的代码出了什么问题
如果您不确定要做什么,请使用帮助accept
使用char
,而不是varchar2
并且没有大小
SET SEROUTPUT ON;
accept designation char PROMPT 'enter designation' ;
DECLARE
v_salary_inc number;
v_desg varchar2(20) := &designation;
BEGIN
v_salary_inc := case v_desg
when 'manager' then .3
when 'lead' then .18
when 'senior engg' then .1
else .05
end;
dbms_output.put_line('your salary increase is :' || v_salary_inc);
END;
从您编写的代码开始:第3行缺少单引号。其余的似乎还可以(当然,在启用输出之后)
您刚刚从问题中删除了代码,现在要求人们手动键入。。那没有任何意义。请把你的代码和你的错误放回代码格式文本。编辑的代码仍然没有运行。请看一看。你需要知道的一切都包含在我的答案中。请看一看。
SQL> help accept
ACCEPT
------
Reads a line of input and stores it in a given substitution variable.
ACC[EPT] variable [NUM[BER] | CHAR | DATE | BINARY_FLOAT | BINARY_DOUBLE]
[FOR[MAT] format] [DEF[AULT] default] [PROMPT text | NOPR[OMPT]] [HIDE]
SQL> set serveroutput on
SQL>
SQL> ACCEPT designation char PROMPT 'enter designation: ' ;
enter designation: lead
SQL> DECLARE
2 v_salary_inc number;
3 v_desg varchar2(20) := '&designation';
4 BEGIN
5 v_salary_inc := case v_desg
6 when 'manager' then .3
7 when 'lead' then .18
8 when 'senior engg' then .1
9 else .05
10 end;
11 dbms_output.put_line('your salary increase is :' || v_salary_inc);
12 END;
13 /
your salary increase is :,18
PL/SQL procedure successfully completed.
SQL>