プロシージャは、別のプロシージャを呼び出して数値のコレクションを渡すことです。私はテーブル内のすべてのレコードを処理したいが、第2のプロシージャで処理された行の数を一度に制限する。呼び出されたプロシージャに渡される行数を制限する方法
以下は私のコードです。
create or replace procedure proc1
is
emp_id dbms_sql.number_table;
begin
select employee_id bulk collect into emp_id from employees;
PROC2(EMP_ID);
end;
/
create or replace
procedure proc2(vin_emp_id dbms_sql.number_table)
is
begin
null;
END ;
どのようにしてその制限を定義したいのですか?すべてのレコードを処理するまで、処理するか、またはループしたい唯一のレコードですか? – BriteSponge
proc2のすべてのレコードをループしたいが、proc2で処理されるレコードの数を1回に制限したい。 – PTK
'プロシージャproc1を作成または置換する は です。emp_id dbms_sql.number_table; カーソルc_empはemployeesからemployee_idを選択します。 v_limi番号:= 100; begin open c_emp; ループ フェッチc_emp emp_idに大量収集v_limit; PROC2(EMP_ID); emp_id.count