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>