我们有时候如果在数据管理模块中,Oracle数据源,一旦我们修改了表结构,然后想尝试再次编辑修改的表结构时,会提示“索引超出了数组界限。”或者“发生一个或多个错误。”。
根据反编译Oracle官方的驱动源码得出的结果是ODA缓存了查询结果的结构,一旦结构变化 ,将受到影响。解决的办法就是不缓存结构(或者修改源码使得出错时重新获取新的结构,但是,我没这样去操作)。不缓存结构要在连接串里面指定:Metadata Pooling=false 以关闭结构缓存池。但是,这样肯定会导致查询性能下降,不过,目前我们也是这样使用的。