请教各位!求教!
下面的代码for循环中,emp_row 和v_emp(emp_row.empno)这两个怎么解释呢?没有定义emp_row啊?DECLARE
CURSOR cur_emp IS 
SELECT * FROM emp ; -- 定义游标取得emp表数据
TYPE emp_index IS TABLE OF emp%ROWTYPE INDEX BY PLS_INTEGER ;-- 定义索引表数据类型为emp行结构
v_emp emp_index ; -- 定义索引表变量
BEGIN
FOR emp_row IN cur_emp LOOP -- 利用循环取得每一行记录
v_emp(emp_row.empno) := emp_row ; -- 将雇员编号作为索引表下标
END LOOP ;
DBMS_OUTPUT.put_line('雇员编号:' || v_emp(7369).empno || ',姓名:' || v_emp(7369).ename || ',职位:' || v_emp(7369).job) ;
END ;
/

解决方案 »

  1.   

    DECLARE
    CURSOR cur_emp IS 
    SELECT * FROM emp ; -- 定义游标取得emp表数据
    TYPE emp_index IS TABLE OF emp%ROWTYPE INDEX BY PLS_INTEGER ;-- 定义索引表数据类型为emp行结构
    v_emp emp_index ; -- 定义索引表变量
    BEGIN
    FOR emp_row IN cur_emp LOOP -- 利用循环取得每一行记录
    v_emp.empno := emo_row.emono;--要一个个的赋值或者fetch cur_emp into v_emp;
    v_emp(emp_row.empno) := emp_row ; -- 将雇员编号作为索引表下标
    END LOOP ;
    DBMS_OUTPUT.put_line('雇员编号:' || v_emp(7369).empno || ',姓名:' || v_emp(7369).ename || ',职位:' || v_emp(7369).job) ;
    END ;
    /