以下语句在pl sql developer 测试出错,不知道什么回事
declare
v_ename varchar2(5);
v_sal number(6,2);
c_tax_rate constant number(3,2):=0.03;
v_tax_sal number(6,2);
begin
  select ename,sal into v_ename,v_sal from scott.emp where empno=&eno;
  v_tax_sal:=v_sal*c_tax_rate;
  dbms_output.put_line('雇员名;'||v_ename);
  dbms_output.put_line('雇员工资'||v_sal);
  dbms_output.put_line('所得税:'||v_tax_sal);
 end;

解决方案 »

  1.   

    &eno要改成'&eno',用引号括起来。
      

  2.   

    empno ename mgr     job     hiredate sal   comm    deptno
    1112 ncu 2000 30
    1113 yao 2000 20
    7369 SMITH 7902 CLERK 17-12月-80 800 20
    7499 ALLEN 7698 SALESMAN 20-2月 -81 1600 300 30
    7521 WARD 7698 SALESMAN 22-2月 -81 1250 500 30
    7566 JONES 7839 MANAGER 02-4月 -81 2975 20
    7654 MARTIN 7698 SALESMAN 28-9月 -81 1250 1400 30
    7698 BLAKE 7839 MANAGER 01-5月 -81 2850 30
    7782 CLARK 7839 MANAGER 09-6月 -81 2450 1
    7788 SCOTT 7566 MANAGER 19-4月 -87 2011 20
    7839 KING PRESIDENT 17-11月-81 5000 1
    7844 TURNER 7698 SALESMAN 08-9月 -81 1500 0 30
    7876 ADAMS 7788 CLERK 23-5月 -87 1100 20
    7900 JAMES 7698 CLERK 03-12月-81 950 30
    7902 FORD 7566 ANALYST 03-12月-81 3000 20
    7934 MILLER 7782 CLERK 23-1月 -82 1300 1
      

  3.   

    实测:你原来的代码没有问题,不用修改。
    无论在SQL*Plus中还是在PL/SQL Developer中执行,都会提示输入一个员工编号,你输入任何一个已有的员工编号
    ,如7369,该PL/SQL块都会正常执行。
      

  4.   

    您是在pl/sql 测试窗口编译的?
      

  5.   

    empno 是什么类型的?
    如果是字符串类型的,应该是‘&eno’