件名にはconfusingdocsという多数の質問がありますが、これまでのところ運がありません。ODP.NET文字列の配列をOracleのストアドプロシージャに渡す方法は?
次のPL/SQLストアド・プロシージャがあります。タイプListcar
は、以下である
PROCEDURE PS_test(
Liste1 Listcar,
Liste2 Listcar,
P_CURS_MESSAGE out CURSOR_REF_TYP
)
:
TYPEのListcarがVARCHAR2のVARRAY(100)(50)です。値の割り当てで、次のエラーで
string[] list = { "name1", "name1" };
OracleParameter oParam = (OracleParameter)myOracleCommand.CreateParameter();
oParam.ParameterName = "Liste1";
oParam.UdtTypeName = "LISTCAR";
oParam.Value = list;
oParam.Direction = ParameterDirection.Input;
myOracleCommand.Parameters.Add(oParam);
:ここ
は、私がこれまでにしようとしているものです ArrayBindSizeによりを設定するには、型varchr2を使用しようとしたValue does not fall within the expected range.
ので、しかし、これまで運がなかった。
インターフェイスIOracleArrayTypeFactory
はどこかで役割を果たすかもしれませんが、どうでしょうか?
パフォーマンスを向上させるため、関連配列はVARRAYよりも優先されます。関連する配列を含むパフォーマンス関連のウォークスルーがいくつかあります。http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/dotnet/OptimizePerfODPNET/OptimizePerfODPNET.htmまた、VARRAYはユーザー定義型なので、これらを使用すると、一般的な.NETのUDTを使用する方法がわかります。http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/dotnet/userdefinedtypes/userDefinedTypes.htm –