C# で UDT(オブジェクト) のテーブルである Oracle OUTPUT パラメータを定義および取得する方法を理解しようとしています。
具体的には、C#、.NET 4.0、および Oracle.ManagedDataAccess を使用しています。
この特定の問題の正しい例を見つけることができないようですが、戻り値の型が単純な OracleDBType であり、UDT オブジェクトのテーブルではない、さまざまな同様の提案と解決策を見つけました。
次の例を想定します。
create or replace TYPE tsv
as
object ( valuedate date, value binary_double, code number );
create or replace TYPE tsv_array
as table of tsv;
create or replace procedure sp_example (p_values OUT tsv_array , p_id IN Varchar2 )
is
l_values tsv_array;
begin
...
select field1, field2, field3
bulk collect
into l_values
from table(some_stuff);
p_values := l_values;
end;
いくつかの例に基づいて OacleDbType.Object が役立つかもしれないと考えましたが、私が使用しているものである Oracle.ManagedDataAccess の一部ではないようです。
誰かが私がどうするかについて私を啓発するのを手伝ってもらえますか;
1 - 出力パラメータを適切に定義します (例: new OracleParameter("p_values", OracleDbType.?,...)
2 - 出力パラメーターの UDT の返されたテーブルにアクセス/処理する
あなたの助けに感謝します!