n_MonthSalary NUMBER(18,2)
   Salary 字段在表里也是NUMBER(18,2)   SELECT Salary INTO n_MonthSalary FROM EmployeeSalary WHERE id = id;
这句话在存储过程中就报错,单拿出来执行就没问题,报 "实际返回的行数走出请求的行数".我表里肯定就一条记录。
单步调试,一到这个地方就报,我快疯了。
那位大哥帮忙给解决一下。谢谢啦。

解决方案 »

  1.   

    先这么试一下。
    create table t1(f1 number(18,2));
    然后在存储过程中insert into t1 SELECT Salary FROM EmployeeSalary WHERE id = id;
    看看t1表中究竟有多少条记录。
      

  2.   

    诡异,,,怀疑是数据得问题。select into 要成功,必须保证有且仅有一条记录。
      

  3.   

    朗拿度,这样定义:
       n_MonthSalary EmployeeSalary.Salary%TYPE;
    试试看
      

  4.   

    问题已解决。
    SELECT Salary INTO n_MonthSalary FROM EmployeeSalary WHERE id = p_id;