我是 c# 和 .Net 的新手,我需要你的帮助。
我在 DB 中创建了一个接受表值参数(id 列表)的过程,并且我正在寻找适合 Oracle Associative Array 的等价物。
--数据库中的新数据类型:
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 is alist of id's
.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 之外,还有其他首选方法来编写它吗?
更重要的是,分配 table\list 变量的适当方法是什么?是否有任何表值\数组变量可以定义为这种数据类型?