ArcMap中打开属性表提示错误ORA-01455的问题

        今天遇到一个问题,在ArcMap中打开属性表,提示错误ORA-01455。

        

        该数据中有一个长整型字段,其中有某些条数据该字段数值长度为11位。

        在ArcMap中新建要素类,指定字段的时候,短整型就是Oracle里的number(5),长整形就是number(38)。

        

        而在ArcMap中查看,限制长度是,短整型5位,长整型10位。参考以下链接。

        https://desktop.arcgis.com/en/arcmap/latest/manage-data/databases/dbms-data-types-supported.htm

        但是在数据库中,无论是插入超过10位的数据还是查看,都是没问题的。

        所以我在思考,为什么在ArcMap中读取属性表会提示ORA错误?照理说这是ArcMap层面的限制,不应该返回ORA错误。

        查阅了一些资料后,猜测ArcMap程序很有可能使用的是getInt()来获取整型字段的值,而这个函数,最长的获取单位就是10位,所以只要调用该函数,就会返回ORA错误。

        关于getint()大概示例代码如下,

        同时其实也说明了,正因为ArcMap使用的该函数,所以才有10位长度的限制,而不是一定要在软件层面再做一层限制。

        后来用Pro试了试,因为Pro是64位程序,猜测可能源码上有调整,但是报错一样,

        

         看来这部分功能的实现代码并没有改变。