我已经在Oracle 12c中创建了一个简单的表,如下所示:
CREATE TABLE TEST
(
ID NUMBER GENERATED ALWAYS AS IDENTITY,
TEXT VARCHAR2(2000 CHAR),
CONSTRAINT ID_PK PRIMARY KEY (ID)
);
然后我使用ODBC驱动程序将其链接到MS Access中。问题是,当我在TEXT中输入值并单击ID和TEXT时,都显示#Deleted。我的值记录在数据库中,但是我必须在MS Access中重新查询才能看到它。
我还注意到,如果将TEXT字段的数据类型更改为NUMBER,则可以正常工作。在MS Access中保存记录后,自动生成的ID和TEXT字段中的值都存在。我不必重新查询任何内容。
这仅在插入时发生。更新就可以了。
请告知。
答案 0 :(得分:0)
因此,似乎您已经找到了解决方案,但这更多地是关于其为何如此工作的解释。简而言之,如果基表使用非整数值作为主键,Access会将这些整数四舍五入为最接近的整数,然后(由于它不是数字值),Access将不再找到适用的记录。因此,在表结构中将数据类型从TEXT
更改为INTEGER
即可得到所需的结果。
或者,如果您使用查询来运行这些查询,则如果无法更改Oracle表中的键,则将Access查询类型更改为快照(在查询属性中)也将绕过此问题。但是从声音上看,这不是您如何利用数据。