2016-12-21 6 views
0

Я новичок .... просто хочу знать, почему этот следующий скрипт дает ошибку при compiling.your ответы будут полезныИспользование BULK COLLECT с пунктом LIMIT

create or replace procedure fetch_employee 
is 
    cursor test_departments_cur 
    is 
     select * from test_departments; 

    Type test_departments_aat is 
    table of test_departments_cur%ROWTYPE 
    INDEX BY PLS_INTEGER; 

    l_test_departments test_departments_aat; 

Begin 
    open test_departments_cur; 
    loop 
    fetch test_departments_cur 
    bulk collect into l_test_departments limit 10; 

    exit when l_test_departments.count=0; 

    for i in 1..l_test_departments.count 
    loop 
    dbms_output.put_line(l_test_departments(i)); 
    end loop; 
    dbms_output.put_line('============================================='); 
    end loop; 

    close test_departments_cur; 
end fetch_employee; 

Его показывает ошибку: Error(23,5): PLS-00306: wrong number or types of arguments in call to 'PUT_LINE'

in 
dbms_output.put_line(l_test_departments(i)); 

Пожалуйста, ответьте

ответ

0

«l_test_departments» представляет собой массив типа «test_departments_aat», который проводит запись. Как его тип «test_departments_cur% ROWTYPE», поэтому доступ к значению курсора, вы должны передать столбец курсора следующим образом:

dbms_output.put_line(l_test_departments(i).<column_name>); 

Надеются, что это помогает.

Смежные вопросы