このコードで何が起こっているのかよくわかりません。理解したいので、試してみましたが、理解するのではなく暗記しているようです。
create or replace type t_num_table as table of number INDEX BY BINARY_INTEGER;
create or replace PROCEDURE pro_return_table
(DEP_ID IN NUMBER,
emp_tab1 OUT t_num_table,
emp_tab2 OUT t_num_table
) as
emp_id number;
cursor emp_cursor is select employee_id from employees where department_id = DEP_ID;
begin
emp_tab1 := t_num_table();
emp_tab2 := t_num_table();
OPEN emp_cursor;
FETCH emp_cursor INTO emp_id;
emp_tab1.extend;
emp_tab1(emp_tab1.count) := emp_id;
emp_tab2.extend;
emp_tab2(emp_tab2.count) := emp_id+2;
WHILE (emp_cursor%FOUND)
LOOP
FETCH emp_cursor INTO emp_id;
emp_tab1.extend;
emp_tab1(emp_tab1.count) := emp_id;
emp_tab2.extend;
emp_tab2(emp_tab2.count) := emp_id+2;
END LOOP;
CLOSE emp_cursor;
end;
最初の行もわかりません () を t_num_table の後に置くことの意味、 emp_tab1 から emp_tab2 に移動するとき、なぜ彼は 2 移動するのか、この関数は何を返す必要がありますか。助けてください、私はとても出発しました。