【发布时间】:2021-07-02 13:53:51
【问题描述】:
我正在尝试为 oracle 数据库创建 C# 数据生成器。虽然我遇到了一些问题。我收到 ORA-26010 错误消息:
数据库中的非空列未被加载,将导致每一行都被拒绝。
我之前的表格没有这个问题,我已经花了几个小时来寻找解决方案。
这是它在代码中的样子:
private static DataTable BuildMagazynTable(int b)
{
var magazynTable = new DataTable();
magazynTable.Columns.Add("ID");
magazynTable.Columns.Add("NAZWA_MAGAZYNU");
magazynTable.Columns.Add("MIASTO");
magazynTable.Columns.Add("ULICA");
magazynTable.Columns.Add("NR_LOKALU");
for (int i = 1; i <= b; i++)
{
var ar = magazynTable.NewRow();
ar["ID"] = null;
ar["NAZWA_MAGAZYNU"] = "Nazwa Magazynu" + i;
ar["MIASTO"] = "Miasto" + i;
ar["ULICA"] = "Ulica" + i;
ar["NR_LOKALU"] = "Nr lokalu" + i;
magazynTable.Rows.Add(ar);
}
return magazynTable;
}
还有我是如何在 oracle 数据库中创建表的:
CREATE TABLE magazyn (
id NUMBER GENERATED by default on null as IDENTITY,
Nazwa_magazynu VARCHAR2(15) NOT NULL,
miasto VARCHAR2(15) NOT NULL,
ulica VARCHAR2(15) NOT NULL,
Nr_lokalu VARCHAR2(15) NOT NULL);
ALTER TABLE magazyn ADD CONSTRAINT magazyn_pk PRIMARY KEY ( id );
我正在使用 Oracle.ManagedDataAccess 和大容量复制将数据发送到数据库。
【问题讨论】:
-
在DataTable中省略ID列是否有效?
-
ID 是一个标识列,您不应该向它传递任何值,无论是否为 Null。
-
如果我删除 ID,我仍然会得到相同的错误 - “NR_LOKALU”列上的 26010,就像以前一样。我用 ID = null 做了同样的事情;在 3 个不同的桌子上,它工作得很好。只是这个有问题。