2015-06-04 62 views
0

將值放入索引我無法將v_emp的值存入我的emp_table。 這完全是在這條線去錯了:PL/SQL無法通過表

emp_table(counter) := v_emp; 

,我得到的錯誤是:

無效的使用類型名稱的類型名稱的

我什麼也看不見問題是..

CREATE OR REPLACE PROCEDURE laatste_emp IS 
    v_emp employees%ROWTYPE; 
    TYPE emp_table is table of 
    employees%ROWTYPE INDEX BY PLS_INTEGER; 
    counter NUMBER := 0; 
BEGIN 
    select * into v_emp 
    from employees 
    where hire_date = 
    (select max(hire_date) from employees); 
    dbms_output.put_line(v_emp.employee_id || ' ' || v_emp.last_name || ' ' || v_emp.hire_date); 
EXCEPTION 
    WHEN TOO_MANY_ROWS THEN 
     FOR i in 100 .. 206 LOOP 
      select * into v_emp 
      from employees 
      where employee_id = i 
      and hire_date = (select max(hire_date) from employees); 
      IF SQL%FOUND THEN 
       emp_table(counter) := v_emp; 
       counter := counter + 1; 
      END IF; 
     END LOOP; 
END; 
/

回答

0

您的TYPE emp_table is table of employees%ROWTYPE INDEX BY PLS_INTEGER;只聲明res是一個類型,而不是你可以寫入的實際變量。您需要添加變量太多:

TYPE emp_table_type is table of employees%ROWTYPE INDEX BY PLS_INTEGER; 
emp_table emp_table_type; 

請注意我說「_type」後綴到您的定義。