別のテーブルから情報を取得してグローバル一時テーブル (global_temp_tableB) に挿入するために、以下のストアド プロシージャを SQL データベースのパッケージ (retrieve_user) の下に作成しました。
procedure Load_BTable (NumID IN NUMBER) AS
begin
insert into global_temp_tableB (name, age, address, country, year)
select name, age, address, country, year
from table(prepare_tableB.find_User(NumID));
commit;
end Load_LFTable;
しかし、次を使用してSQLウィンドウからプロシージャをテストして呼び出そうとしたとき:
begin
retrieve_user.Load_BTable(numid => 739);
end;
global_temp_tableB はまだ空ですが、ストアド プロシージャを呼び出す代わりに実際の INSERT ステートメントを使用すると、次のようになります。
begin
insert into global_temp_tableB (name, age, address, country, year)
select name, age, address, country, year
from table(prepare_tableB.find_User(739));
end;
希望する結果を返すことができます。したがって、ストアド プロシージャの INSERT ステートメントは機能していると思います。
しかし、ストアド プロシージャを呼び出したときに、目的の結果が返されないのはなぜでしょうか。
いつもご愛顧いただき、誠にありがとうございます。