このプロシージャには、address_table out pkg.address_tab_type があります。
create or replace
procedure hr.p_get_address
(
in_pid in number,
address_table out pkg.address_tab_type
)
as
address_row pkg.address_rec_type;
cursor address_cursor is
select
addr.pid, addr.street, addr.city
from
hr.address addr
where
pid = in_pid;
begin
row_count := 0;
open address_cursor;
loop
fetch address_cursor into address_row;
exit when address_cursor%NOTFOUND;
row_count := row_count + 1;
address_table(row_count) := address_row;
end loop;
close address_cursor;
end p_get_address;
私の pkg はカスタム address_rec_type と address_tab_type を宣言します:
create or replace
package hr.pkg as
type address_rec_type is
record
(
pid address.pid%type,
street address.street%type,
city address.city%type
);
type address_tab_type is
table of address_rec_type index by binary_integer;
end hr.pkg;
SQL Developerでストアドプロシージャを実行すると、すべての作業ファイルが. だから、私の手続き。動作します。このプロシージャを呼び出して、C# (ASP.NET) で address_table を取得する必要があります。私はodp.netを使用しています。refCursor でプロシージャを呼び出すことができ、正常に動作します。ユーザー定義型の出力パラメータを使用してプロシージャを呼び出すにはどうすればよいですか?