私は c# と .Net が初めてで、あなたの助けが必要です。
テーブル値パラメーター (id のリスト) を受け入れる DB にプロシージャを作成しました。Oracle 連想配列に相当するものを探しています。
--DB の新しいデータ型:
CREATE TYPE IDType AS TABLE
(
ID bigint
)
GO
-- DB Procedure
Create procedure TVP_PROC (@ID IDType readonly)
Declare @TVP IDType
Insert into @TVP select ID from @ID
As
Update my_tbl set id=(select ID from @TVP)
次のように実行する必要があります: exec TVP_PROC @ID //@ID は ID の alist です
.Net コード:
Public void UpdateID (List long<long> IDS )
{
Datatable datatable = new datatable ();
Datatable.columns.add (“IDS”,typeof(int64));
Foreach (int64 id in IDS)
{
Datatable.Rows.Add(id);
}
}
Var Query =hibernate.createsqlquery(“Exec TVP_PROC @ID:IDS”);
クエリ。?????????
質問:
データテーブル変数を使用し、反復ごとにIDを割り当てる以外に、それを書くための好ましい方法はありますか?
さらに重要なのは、テーブル\リスト変数を割り当てる適切な方法は何ですか? この種のデータ型に定義できるテーブル値\配列変数はありますか?