我正在尝试从C#向Oracle插入10000个值,并使用下面的代码。非常重要的是,我传入的数组中的值的顺序是在Oracle中维护的,但是每次运行它时,值的顺序都会发生变化。我可以更改什么来停止订单更改,或者我可以使用一种完全不同的方法来按设定顺序插入10000个值,这些方法可以轻松检索?
datalist是double类型和10000的数组。
var oc = new OracleConnection(ConnectionString);
oc.Open();
var transaction = oc.BeginTransaction();
OracleCommand command = new OracleCommand("",oc);
command.CommandText = ("INSERT INTO DEMO (DISTRIBUTIONSLICES) values (:DISTRIBUTIONSLICES)");
OracleParameter distributionslices = new OracleParameter("DISTRIBUTIONSLICES",OracleDbType.Varchar2, ParameterDirection.Input);
distributionslices.Value = datalist;
command.Parameters.Add(distributionslices);
command.ArrayBindCount = 10000;
command.ExecuteNonQuery();
非常感谢任何帮助。
答案 0 :(得分:7)
范例错误:SQL数据库表中的行通常没有可依赖的顺序。
如果您希望能够以已知顺序检索行,则需要做一些明确的事情来实现这一点,例如添加额外的一列唯一整数来定义您想要的顺序。
然后,您可以在订购列上使用ORDER BY检索行,它将按您所需的顺序为您提供行。
答案 1 :(得分:4)
以这种方式选择:
选择* 从演示 按顺序排列