Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过ODBC访问-Oracle默认不工作_Oracle_Ms Access_Odbc_Default_Constraints - Fatal编程技术网

通过ODBC访问-Oracle默认不工作

通过ODBC访问-Oracle默认不工作,oracle,ms-access,odbc,default,constraints,Oracle,Ms Access,Odbc,Default,Constraints,我们通过ODBC使用MS Access作为Oracle表的前端,它一直运行良好。 但是我们尝试在Oracle表中使用默认约束。当我们在Access中打开链接表时,可以很好地看到现有数据,但是当我们尝试添加一行时,如果没有在具有Oracle默认值(期望使用默认值)的列中键入任何值,我们会在每个列中看到#已删除,并且该行不会添加到表中。有什么想法吗?如果有帮助,我可以提供更多详细信息,请告诉我。如果您使用网格视图作为数据输入,我认为Access可能会显式地尝试插入一个空字符串作为该值。尝试为inse

我们通过ODBC使用MS Access作为Oracle表的前端,它一直运行良好。
但是我们尝试在Oracle表中使用默认约束。当我们在Access中打开链接表时,可以很好地看到现有数据,但是当我们尝试添加一行时,如果没有在具有Oracle默认值(期望使用默认值)的列中键入任何值,我们会在每个列中看到#已删除,并且该行不会添加到表中。有什么想法吗?如果有帮助,我可以提供更多详细信息,请告诉我。

如果您使用网格视图作为数据输入,我认为Access可能会显式地尝试插入一个空字符串作为该值。尝试为insert编写普通SQL语句,看看会发生什么

我希望底层SQL是这样的(假设为name=“John”、balance=“0.0”设置了默认值)

通过栅格视图:

insert into customers (cust_id, name, balance) values (1, "Bob", 50.25);
如果其中一个是空的:

insert into customers (cust_id, name, balance) values (2, "", 0);
但是,通过SQL:

insert into customers (cust_id, name) values (3, "Pete");
insert into customers (cust_id) values (4);

我假设SQL示例使用未设置列的默认值,但网格视图从UI提供空值,这将阻止使用默认值。

如果您使用网格视图作为数据输入,我认为Access可能会显式尝试插入空字符串作为该值。尝试为insert编写普通SQL语句,看看会发生什么

我希望底层SQL是这样的(假设为name=“John”、balance=“0.0”设置了默认值)

通过栅格视图:

insert into customers (cust_id, name, balance) values (1, "Bob", 50.25);
如果其中一个是空的:

insert into customers (cust_id, name, balance) values (2, "", 0);
但是,通过SQL:

insert into customers (cust_id, name) values (3, "Pete");
insert into customers (cust_id) values (4);

我假设SQL示例使用未设置列的默认值,但网格视图从UI中提供空白值,这将阻止使用默认值。

不知道Oracle,但要使用SQL Server实现这一点,您的表中需要一个时间戳字段。

不知道Oracle,但是,要使用SQL Server实现这一点,表中需要一个时间戳字段