ArcSDE和SQL语句同时操作Oracle空间数据库的问题

本文介绍如何解决使用ArcSDE进行Oracle空间化操作后,因生成额外主键导致无法用SQL语句修改Oracle表的问题。通过删除objectid主键属性并允许其值为空,实现ArcSDE与SQL的兼容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用ArcSDE进行Oracle的空间化的操作后,会在Oracle表中生成shape和objectid字段。而此时是可以用arcsde操作oracle的,但是你会发现不能用sql语句进行任何修改oracle表的操作。

为什么?因为此时oracle有两个主键了,一个是刚生成的objectid,另一个是你建表时产生的主键。违反了数据库第二范式,即:主键唯一性约束。

这在数据库中是不容许发生的,有什么解决方案呢?

从根本上,当然是去除一个主键,删除掉objectid那个主键。注意:是删除它作为主键的那个代码,但是还保留着这个字段,否则arcsde没法工作了...只是这样的话还不行,还要将objectid字段的nullable值先设为可以为空,再取消掉。如图:


经过上面的设置,就可以用arcsde和sql同时操作数据库了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值