Oracle 在过程中使用rowtype时出现值过多错误

Oracle 在过程中使用rowtype时出现值过多错误,oracle,plsql,Oracle,Plsql,我认为select语句中的3个值与表中的列数不匹配。什么是表列?这意味着员工id不是唯一的。我建议检查您的数据并在该列上添加主键(如果适用)。 CREATE OR replace PACKAGE emp_pkg AS PROCEDURE find_emp1( c_id IN employees.employee_id%TYPE); END emp_pkg; / CREATE OR replace PACKAGE BODY emp_pkg AS PROCEDURE

我认为select语句中的3个值与表中的列数不匹配。什么是表列?

这意味着员工id不是唯一的。我建议检查您的数据并在该列上添加主键(如果适用)。
CREATE OR replace PACKAGE emp_pkg 
AS 
  PROCEDURE find_emp1( 
    c_id IN employees.employee_id%TYPE); 
END emp_pkg; 

/ 
CREATE OR replace PACKAGE BODY emp_pkg 
AS 
  PROCEDURE Find_emp1(c_id IN employees.employee_id%TYPE) 
  IS 
    v_row employees%ROWTYPE; 
  BEGIN 
      SELECT first_name, 
             employee_id, 
             hire_date 
      INTO   v_row 
      FROM   employees 
      WHERE  employee_id = c_id; 

      dbms_output.Put_line('ID:' 
                           || v_row.employee_id); 

      dbms_output.Put_line('NAME:' 
                           ||v_row.first_name); 

      dbms_output.Put_line('HIRE_DATE:' 
                           || v_row.hire_date); 
  END find_emp1; 
END emp_pkg; 

/